Complex Combiner (complex_combiner_s_xs)
Combines two real inputs to create a complex output.
Design
The mathematical representation of the implementation is given in (118).
In (118):
\(x[n]\) is the input values which are mapped to the real axis.
\(y[n]\) is the input values which are mapped to the imaginary axis.
\(z[n]\) is the output values.
Figure 398: Complex combiner implementation.
Interface
<?xml version="1.0"?>
<componentspec>
<property name="input_real_opcode_passthrough" type="bool" writable="false" parameter="true" default="true"
description="When true, opcodes from the real port are passed to the output. When false, opcodes from the imaginary port are
passed to the output."/>
<port name="input_real" producer="false" protocol="short_timed_sample-prot"/>
<port name="input_imaginary" producer="false" protocol="short_timed_sample-prot"/>
<port name="output" producer="true" protocol="complex_short_timed_sample-prot"/>
</componentspec>
Ports
Inputs:
input_real: Input samples port for values mapped to the real axis.Protocol:
short_timed_sample-protOptional:
False
input_imaginary: Input samples port for values mapped to the imaginary axis.Protocol:
short_timed_sample-protOptional:
False
Outputs:
output: Primary output samples port.Protocol:
complex_short_timed_sample-protOptional:
False
Properties
input_real_opcode_passthrough: When true, opcodes from the real port are passed to the output. When false, opcodes from the imaginary port are passed to the output.Type:
boolAccess:
Parameter:
TrueWritable:
FalseInitial:
FalseVolatile:
False
Default value:
true
Implementations
Example Application
<?xml version="1.0"?>
<application done="file_write">
<instance component="ocpi.core.file_read" connect="complex_combiner_s_xs" to="input_real">
<property name="filename" value="input_real.bin"/>
</instance>
<instance component="ocpi.core.file_read" connect="complex_combiner_s_xs" to="input_imaginary">
<property name="filename" value="input_imaginary.bin"/>
</instance>
<instance component="ocpi.comp.sdr.math.complex_combiner_s_xs" connect="file_write"/>
<instance component="ocpi.core.file_write">
<property name="filename" value="output.bin"/>
</instance>
</application>
Dependencies
The dependencies to other elements in OpenCPI are:
There is also a dependency on:
ieee.std_logic_1164
ieee.numeric_std
Limitations
Limitations of complex_combiner_s_cs’s use are:
None.
Testing
Tested platforms: None
Component testing not completed.