Skip to content

PhaseDifferencePostFilter

Overview

Phase Difference Post Filter

Module Pack

awe-mod-dspc-vui

ClassID

classID = 16504

Type Definition

typedef struct _ModulePhaseDifferencePostFilter
{
ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
FLOAT32 filterDelayThreshold;                 // Threshold to determine if a time-freq bin is within the specified direction
FLOAT32 targetWidth;                          // The width of the target direction, in degrees. Calculated from targetDir, micSpacing, and filterDelayThreshold
FLOAT32 maskAttenDB;                          // dB units - attenuation in the time-freq bin if the sound from that bin is not in the specified direction
FLOAT32 maskAtten;                            // Linear units - attenuation in the time-freq bin if the sound from that bin is not in the specified direction
FLOAT32 timeDomainSR;                         // Sample rate - in time domain
FLOAT32 targetDir;                            // Target direction, in degrees. NOT Implemented
FLOAT32 micSpacing;                           // Mic Spacing, in meters.
INT32 fftSize;                                // FFT Size
INT32 numBins;                                // Number of bins
INT32 numFilters;                             // Number of Gammatone Filters
FLOAT32 epsilon;                              // A small number
FLOAT32* gtFilterMag;                         // Matrix holding the magnitude of gammatone filter coefficients (real)
FLOAT32* phaseDiff;                           // Phase difference, in radians. Part of scratch.
FLOAT32* oneOverExpectedPhaseDiff;            // One over the expected phase difference.
FLOAT32* W;                                   // Gammatone domain weights
FLOAT32* mu;                                  // Mask
FLOAT32* mu_g;                                // Mask after Gammatone filterbank
} ModulePhaseDifferencePostFilterClass;

Variables

Properties

Name Type Usage isHidden Default Value Range Units
filterDelayThreshold float parameter 0 0.2 0:10
targetWidth float derived 0 6.554 Unrestricted
maskAttenDB float parameter 0 -40 -60:0
maskAtten float derived 0 0.01 Unrestricted
timeDomainSR float const 0 16000 Unrestricted
targetDir float parameter 0 0 Unrestricted
micSpacing float parameter 0 0.075 Unrestricted
fftSize int const 0 512 Unrestricted
numBins int const 0 257 Unrestricted
numFilters int const 0 40 Unrestricted
epsilon float const 0 1e-19 Unrestricted
gtFilterMag float* derived 0 [256 x 40] Unrestricted
phaseDiff float* derived 1 [257 x 1] Unrestricted
oneOverExpectedPhaseDiff float* derived 1 [257 x 1] Unrestricted
W float* derived 1 [40 x 1] Unrestricted
mu float* derived 1 [257 x 1] Unrestricted
mu_g float* derived 1 [257 x 1] Unrestricted

Pins

Input Pins

Name in
Description input
Data type float
Channel range 2
Block size range 257
Sample rate range Unrestricted
Complex support Complex

Output Pins

Name out
Description output
Data Type float

Scratch Pins

Channel Count 1
Block size 257
Sample rate 48000
Channel Count 1
Block size 257
Sample rate 48000

Matlab Usage

File Name: phase_difference_post_filter_module.m 
 M=phase_difference_post_filter_module(NAME, numFilters, fftSize) 
 Creates a phase difference post filter module 
 Currently, only 2 channels are supported. 

  description TBD 

 Arguments: 
     NAME - name of the module. 

Copyright (c) 2026 DSP Concepts, Inc.