个人主页:研学社的博客
欢迎来到本博客❤️❤️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
本文目录如下:
目录
1 概述
2 运行结果
3 Matlab代码实现
4 参考文献
在本文中,使用最新的基于自适应样条滤波器的滤波器来识别非线性系统。这些类型的滤波器属于一类线性参数非线性自适应滤波器。
中,使用样条滤波器代码,在本实验中,我们在非线性系统识别场景中使用了该滤波器,其中非线性是由某些源引入的。有关更多详细信息,请参阅技术报告。此代码中使用的所有参数都与上述示例中使用的参数一致。
该文提出一种基于样条自适应滤波器(SAF)的非线性主动噪声控制(ANC)系统。SAF 由一个级联的自适应权重线性网络与一个自适应非线性网络组成。非线性网络又由一个自适应查找表和一个样条插值网络组成,并形成一个自适应激活函数。针对所提出的ANC系统推导了更新规则,不仅更新了线性网络的权重,还更新了激活函数的性质。线性网络基于FxLMS算法的改进。使用 FxLMS 算法是因为它的计算简单,就像最常用的最小均方 (LMS) 算法一样。此外,它还包括次要路径效果。为了使 FxLMS 算法更有效,辅助路径估计应该更加精确和准确。适应过程中涉及的非线性函数基于样条函数,可以在学习过程中进行修改。样条控制点使用基于梯度的技术自适应地改变。使用B样条和Catmull-Rom样条,因为它们允许对控制参数施加简单的约束。然后将这种新型自适应函数应用于线性自适应滤波器的输出,并用于识别维纳型非线性系统。此外,我们推导出了自适应算法的简单形式和步长选择的上限。通过广泛的仿真研究评估了所提方案的噪声缓解性能,与其他流行的ANC系统相比,新方法具有更高的噪声消除效率和更少的计算负载。
部分代码:
% 此函数评估样条非线性的输出
% s 是非线性输入 s[n]
% AF 是非线性结构
% x 是非线性输出 x[n]
function[ x, af] = ActFunc( s, af)
AF.s = s;% 输入 n o n l i n e a r i t y
开关( AF. AF型)
案例-1% 签名乙状结肠
x = (2*af.增益/(1+exp(-s*af.坡度))-af。增益) ;
情况0% 线性
x = s*af。坡;% 脱度值
案例1% 无符号乙状结肠
x = AF。增益/(1+exp(-s*af.坡度)) ;
案例2% 高斯
x = AF。增益*exp(-s^2/af.坡度 ) ;
案例3% 多项式
x = 0 ;
对于j=1:af。波德
x = x + af。Q(j)*s.^j;% 单项式总和
af.g(j) = s.^j;
结束
案例20% 二次 s p l i n e
NP = af.lut_len;% 点数
苏 = s/af。德尔塔X + ( np-1)/2;% F i r s t 部分方程 .( 7 . b )
u索引 = 地板(Su) ;% 跨度指数 i 在方程中。( 7 . b )
u = Su - uIndex;% local a b s c i s a u in Eq .( 7 . a )
如果uIndex<1% 该指数必须从 1 开始
u索引 = 1 ;
结束
ifuIndex>(np-2)
u指数 = np - 2 ;% 指数不能超过 np - 2
结束
af.g = [1 u u^2]*af.C;% F i r s t 部分方程 .( 5 ) : u^T C
x = af.g*af.Q(uIndex : uIndex+2) ;% 当量 .( 5 ) : u^T C q_i
af.uIndex = uIndex; % For d e r i v a t i v e computation
af.u样条 = u;% For d e r i v a t i v e computation
否则 % 立方 s p l i n e
NP = af.lut_len;% 点数
苏 = s/af。德尔塔X + ( np-1)/2;% F i r s t 部分方程 .( 7 . b )
u索引 = 地板(Su);% 跨度指数 i 在方程中。( 7 . b )
部分理论来源于网络,如有侵权请联系删除。
[1]Shivendra Nandan (2022). Analysis of FxLMS based Spline Adaptive Filtering Algorithm