Skip to content

ComplexMultiplierV2

Overview

Multi-input complex multiplier

Discussion

Multi-input complex multiplier module. For single channel inputs, the corresponding samples in each input pin will be multiplied together. For multichannel inputs, the ONECHANNELOUTPUT argument determines whether all of the channels in each input will be multiplied together (ONECHANNELOUTPUT=1), or whether a given channel in one input will be multiplied by the corresponding channel in another input (ONECHANNELOUTPUT=0).

EXAMPLE:

ONECHANNELOUTPUT=1: outSample1 = inPin1Ch1Sample1 * inPin1Ch2Sample1 * inPin2Ch1Sample * inPin2Ch2Sample * etc.

ONECHANNELOUTPUT=0: outPin1Sample1 = inPin1Ch1Sample1 * inPin1Ch2Sample1 * inPin1Ch3Sample1 * etc. outPin2Sample1 = inPin2Ch1Sample1 * inPin2Ch2Sample1 * inPin2Ch3Sample1 * etc.

For ONECHANNELOUTPUT=0 all the input pins must have the same channel count except for the special case where there

are exactly two input pins. If exactly two input pins the first pin can have a single channel in which case all the

channels samples in the second pin are multiplied by the sample in the first pin.

Module Pack

Advanced

ClassID

classID = 1421

Type Definition

typedef struct _ModuleComplexMultiplierV2
{
ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
INT32 oneChannelOutput;                       // Boolean value that determines whether all channels are multiplied to form a single output
} ModuleComplexMultiplierV2Class;

Variables

Properties

Name Type Usage isHidden Default Value Range Units
oneChannelOutput int const 0 0 Unrestricted

Pins

Input Pins

Name in1
Description Audio input
Data type float
Channel range Unrestricted
Block size range Unrestricted
Sample rate range Unrestricted
Complex support Real and Complex
Name in2
Description Audio input
Data type float
Channel range Unrestricted
Block size range Unrestricted
Sample rate range Unrestricted
Complex support Real and Complex

Output Pins

Name out
Description Audio output
Data Type float

Matlab Usage

File Name: complex_multiplier_v2_module.m 
 M=complex_multiplier_v2_module(NAME, NUMIN, ONECHANNELOUTPUT) 
 Creates a multi-input multiplier module for use in the Audio Weaver. 
 It perform two types of multiplications: 
 1. ComplexByComplex Multiplication 
 2. RealByComplex Multiplication 
 Arguments: 
    NAME - name of the module. 
    NUMIN - number of input pins 
    ONECHANNELOUTPUT - Boolean value which determines if multi-channel 
         input signals are collapsed to a single output channel. 
 Any one of the input pins is real and the remaining input pins are complex. 
 The output pin is always complex. 
 For Bypass test, The first input pin values are passed over to the output 
 pin. If the first input pin is real then the real values are copied to 
 the real part of the output and the imaginary values of the output pin 
 are made to zeroes. 
 If the output is multi-channel i.e., ONECHANNELOUTPUT=0, then the 
 condition that all the input pins must have the same number of 
 channels.This condition is taken care in th prebuild function. 
 If the output is single-channel i.e., ONECHANNELOUTPUT=1, then different 
 input pins can have different number of channels or same number of channels. 
 AudioWeaverModule [This tag makes it appear under awe_help] 

Copyright (c) 2026 DSP Concepts, Inc.