Document toolboxDocument toolbox

ComplexModulate

Overview

This module accepts a real or complex input and 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.

This module is usually used as part of frequency domain processing. The module effectively shifts the frequency spectrum right by 2*pi*modBin/K radians/sample. Alternatively, you can think of the modules as shifting by modBin FFT bins.

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

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

Data type: float

Channel range: 1

Block size range: Unrestricted

Sample rate range: Unrestricted

Complex support: Real and Complex

Output Pins

Name: cmplx

Description: Complex result

Data type: float

MATLAB Usage

File Name: complex_modulate_module.m

M=complex_modulate_module(NAME) This module accepts a real or complex input and generates a complex output by multiplying input with exp(j*2*pi*modBin*n/N) Arguments: NAME - name of the module.

Â