Skip to content

ComplexModulate

Overview

This module accepts a real or complex input and generates a complex

Discussion

This module multiplies the input by the complex exponential exp(-j2pimodBinn/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 2pimodBin/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.

Module Pack

Advanced

ClassID

classID = 1237

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. 

Copyright (c) 2026 DSP Concepts, Inc.