Imaginary (imaginary_xs_s)
Returns the imaginary part of complex numbers.
Design
The mathematical representation of the implementation is given in (71).
In (71):
\(x[n]\) is the input values.
\(y[n]\) is the output values.
A block diagram representation of the implementation is given in Figure 60:.
Figure 60: Imaginary implementation.
Interface
<?xml version="1.0"?>
<componentspec>
<port name="input" producer="false" protocol="complex_short_timed_sample-prot"/>
<port name="output" producer="true" protocol="short_timed_sample-prot"/>
</componentspec>
Ports
Inputs:
input: Primary input samples port.Protocol:
complex_short_timed_sample-protOptional:
False
Outputs:
output: Primary output samples port.Protocol:
short_timed_sample-protOptional:
False
Opcode handling
The imaginary value is only found for values in a sample opcode message. All other opcodes messages received are passed through this component without any effect.
Properties
None.
Parameters
Example application
<?xml version="1.0"?>
<application done="file_write">
<instance component="ocpi.core.file_read" connect="imaginary_xs_s">
<property name="filename" value="input.bin"/>
</instance>
<instance component="ocpi.comp.sdr.math.imaginary_xs_s" 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 imaginary_xs_s are:
None.
Testing
Component testing not completed.