SAF
Loading...
Searching...
No Matches
saf_utility_latticeCoeffs.c File Reference

Lattice allpass coefficients which are useful for decorrelation. More...

Go to the source code of this file.

Variables

const float __lattice_coeffs_o20 [256][20]
 Lattice all-pass filter coeffs (numerator) for 256 channels, 20th order.
 
const float __lattice_coeffs_o18 [256][18]
 Lattice all-pass filter coeffs (numerator) for 256 channels, 18th order.
 
const float __lattice_coeffs_o16 [256][16]
 Lattice all-pass filter coeffs (numerator) for 256 channels, 16th order.
 
const float __lattice_coeffs_o15 [256][15]
 Lattice all-pass filter coeffs (numerator) for 256 channels, 15th order.
 
const float __lattice_coeffs_o14 [256][14]
 Lattice all-pass filter coeffs (numerator) for 256 channels, 14th order.
 
const float __lattice_coeffs_o12 [256][12]
 Lattice all-pass filter coeffs (numerator) for 256 channels, 12th order.
 
const float __lattice_coeffs_o10 [256][10]
 Lattice all-pass filter coeffs (numerator) for 256 channels, 10th order.
 
const float __lattice_coeffs_o8 [256][8]
 Lattice all-pass filter coeffs (numerator) for 256 channels, 8th order.
 
const float __lattice_coeffs_o6 [256][6]
 Lattice all-pass filter coeffs (numerator) for 256 channels, 6th order.
 
const float __lattice_coeffs_o4 [256][4]
 Lattice all-pass filter coeffs (numerator) for 256 channels, 4th order.
 
const float __lattice_coeffs_o3 [256][3]
 Lattice all-pass filter coeffs (numerator) for 256 channels, 3rd order.
 
const float __lattice_coeffs_o2 [256][2]
 Lattice all-pass filter coeffs (numerator) for 256 channels, 2nd order.
 

Detailed Description

Lattice allpass coefficients which are useful for decorrelation.

The coefficients were derived via a brute-force optimisation routine, which asserted the following:

flag1 = isallpass(b,a);
flag2 = isstable(b,a);
[k,v] = tf2latc(b,a);
flag3 = all(abs(k)< 1);
assert(flag1*flag2*flag3)

(Asserting that the coefficients are indeed allpass, meet basic stability requirements, and also meet the lattice allpass structure specific stability requirements)

These sets of coefficients were then selected based on decorrelating a mono whitenoise signal, and picking the sets which meet the near 0 interchannel cross correlation coefficient per band and channel, when using: 20th order filters up to 700Hz, 15th order up to 2.8kHz, 6th up to 4.5kHz, and 3rd up to 12kHz. Along with fixed delays of [8, 7, 2, 1, 2], for those same frequency ranged, and using the afSTFT (128 hopsize, hybrid-mode enabled) filterbank.

Note
Due to symmetry of the coefficients, only the numerator coefficients are provided. The denominator coeffs are then simply flipud(num coeffs)
Author
Leo McCormack
Date
07.07.2020
License
ISC

Definition in file saf_utility_latticeCoeffs.c.