FFT Shift (fft_shift_f)

Shift the output fft array center frequency to the middle of the array. Component primarily used to center FFT array but could be used for any input array. Array size determined by inout message size.

Function

The first half and seond half of the array are swapped.

The mathematical representation of the component function is given in (8).

(8)\[ \begin{align}\begin{aligned} n = \text {size of array}\\ y[0:n/2] = x[n/2+1:n]\\ y[n/2+1:n] = x[0:n/2]\end{aligned}\end{align} \]

In (8):

  • \(x[n]\) is the input values.

  • \(y[n]\) is the output values.

  • Skeleton, etc.,

A block diagram representation of the component function is given in Figure 223:.

Skeleton alternative text.

Figure 223: Caption text.

Interface

<?xml version="1.0"?>
<componentspec>
  <port name="input" producer="false" protocol="float_timed_sample-prot"/>
  <port name="output" producer="true" protocol="float_timed_sample-prot"/>
</componentspec>

Opcode Handling

All opcodes, other than samples, received are passed to output unmodified.

Properties

None.

Ports

Inputs:

  • input: Primary input samples port.

    • Protocol: float_timed_sample-prot

    • Optional: False

Outputs:

  • output: Primary output samples port.

    • Protocol: float_timed_sample-prot

    • Optional: False

Implementations

  • fft_shift_f (RCC)

    Skeleton outline: Optional summary of the implementation of this worker. Anything before the next heading will be included as worker summary on component documentation page.

Example Application

<?xml version="1.0"?>
<application done="file_write">
  <instance component="ocpi.core.file_read" connect="fft_shift_f">
    <property name="filename" value="input.bin"/>
  </instance>
  <instance component="ocpi.examples.components.fft_shift_f" connect="file_write">
  </instance>
  <instance component="ocpi.core.file_write">
    <property name="filename" value="output.bin"/>
  </instance>
</application>

Dependencies

The dependencies to other elements in OpenCPI are:

  • None

Limitations

Limitations of fft_shift_f are:

  • None

Testing

Tested platforms: None