嵌入式音频架构 - AudioWeaver模块库 Part2

FREQUENCY DOMAIN MODULES

COMPLEX DATA SUPPORT:
interleave 形式排放实部虚部数据。
real[0], imag[0], real[1], imag[1], real[2], 。。。
多通道的情况:
L_real[0], L_imag[0], R_real[0], R_imag[0], L_real[1], L_imag[1], R_real[1], R_imag[1], …
RealImagToComplex:将两个信号转化为复数形式。
ComplexToRealImag:将复数形式转化为实部虚部形式。
Cfft: 复数FFT
Fft:
Ifft:
WINDOWING:
Window:简单窗函数
WindowOverlap:带重叠的窗函数
WindowAlias: 带时间混叠的窗函数
COMPLEX MATH:
ComplexAngle:计算复数的atan2,来计算角度
ComplexConjugate:共轭复数
ComplexMagnitude:√???? ∗ ???? + ???? ∗ ????
ComplexMagSquared: ???? ∗ ???? + ???? ∗ ????
ComplexModulate: Multiplies by ????????????????
ComplexMultiplier:
ComplexToPolar:转到角度+幅值的极坐标
PolarToComplex:极坐标转复数

WOLA AND SUB-BAND BLOCKS、

WOLA( weighted overlap-add filterbanks) 滤波器组也是DSP concept的 IP 算法。有forward 滤波器组(分析滤波器组)和逆滤波器组(合成滤波器组)。
嵌入式音频架构 - AudioWeaver模块库 Part2
WOLA forward滤波器的输出就是一组带通滤波器的输出。K = 64,采样率为48kHz。第一个bin 0Hz, 第二个bin 750Hz,…,最后一个bin 24kHz。
下图表示用FFT计算滤波器组输出的一般流程,类似STFT短时傅里叶变换:
嵌入式音频架构 - AudioWeaver模块库 Part2
一般窗函数选择余弦窗或者汉宁窗。上述流程容易产生混叠信号。
overlap-add filterbank (WOLA)计算流程如下:
嵌入式音频架构 - AudioWeaver模块库 Part2
由上述流程,可以使用更长的滤波器,可以由更好的频率带分辨率。同时降低混叠信号。

SUBBAND SIGNAL MANIPULATION

SbAttackRelease:子带包络线
SbDerivative:求导
SbComplexFIR:
SbNLMS:
SbSmooth:子带间平滑
SbRMS
SbSOF: 子带二阶滤波器
SbSplitter

SYNTHESIS FILTERBANK

上采样和带通滤波器组形成合成滤波器组。
嵌入式音频架构 - AudioWeaver模块库 Part2