递归自适应滤波:频域自适应滤波器与MATLAB示例
1. 频域自适应滤波器(FDLMS)概述
频域自适应LMS处理在性能上相较于时域LMS算法具有一定优势,并且其计算复杂度低于RLS或格型算法。频域LMS(FDLMS)的主要优势源于频谱数据的正交性,这使得每个FFT频点都能独立实现一个复数系数的LMS滤波器。与仅对输入数据主特征值快速收敛的时域算法相比,FDLMS能让所有FFT频点都具有相同的快速收敛率。
可以并行运行一个时域滤波器和FDLMS。具体操作流程如下:
1. 将输入 - 输出数据和预测误差转换到频域。
2. 自适应FDLMS算法更新最优滤波器的频率响应。
3. 使用逆FFT计算时域滤波器系数,并替换现有滤波器系数。
虽然这看起来计算量很大,但不需要实时执行,无需在每个新的输入和输出信号样本到来时都更新滤波器系数。
2. FFT缓冲区重叠问题
由于信号的FFT表示信号在固定时间间隔内的积分,FFT缓冲区在时间上的重叠不应超过50%。这是因为误差频谱对滤波器频率响应的自适应调整不会因时间积分而立即对新系数做出响应。如果在误差频谱中还未看到新的误差响应时就继续更新滤波器系数,FDLMS算法会“过度自适应”,导致自适应算法出现振荡甚至不稳定。对于平稳输入数据,当重叠率达到约50%(即数据缓冲区中有50%是旧数据)时,收益开始递减。考虑到误差信号因滤波器系数变化而不平稳,50%的FFT数据缓冲区重叠被视为最大建议重叠率。为了确保在特定FDLMS滤波器频率响应更新操作时,前一次自适应的残余误差能从误差频谱时间缓冲区中完全清除,我们采用更为保守的0%重叠。
超级会员免费看
订阅专栏 解锁全文
518

被折叠的 条评论
为什么被折叠?



