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.
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]