Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This module accepts a real or complex input and generates multiplies each value by a complex exponential.

Discussion

This module multiplies the input by the complex exponential exp(-j*2*pi*modBin*n/K) where modBin is an inspector parameter, K is the size of the input buffer (the FFT size) and n = 0:1:(K-1) is the sample number in the block. The only tunable parameter is modBin and K is taken from the wire size.

...

modBin is a floating-point value and can take on any real value including non-integer values. By default modBin = 0.25. The module supports real and complex inputs and always generates a complex output. Internally, the module generates the complex coefficients in the Set function and then applies the coefficients in the Processing function. The coefficients are an array of complex values of length blockSize:

modCoeffs[n]_real = cos(2 * pi * n * modBin / K);

modCoeffs[n]_imag = sin(2 * pi * n * modBin / K);

Type Definition

Code Block
typedef struct _ModuleComplexModulate
{
    ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
    FLOAT32 modBin;                               // Omega of modulation coefficient equation.
    FLOAT32* modCoeffs;                           // Modulation coefficient array
} ModuleComplexModulateClass;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

modBin

float

parameter

0

0.25

Unrestricted

modCoeffs

float*

state

1

[32 x 1]

Unrestricted

Pins

Input Pins

Name: in

Description: Real or complex input

...