⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad_f.m

📁 自适应滤波方法举例:观察收敛因子、变步长对自适应滤波算法的影响
💻 M
字号:
%基于MATLAB的有源滤波系统谐波抑制与无功补偿的研究.pdf
%噪声对消,对噪声滤波
t=0:0.1:899.9
f=50
xs=1+3*sin(314*t)%XS是理想信号sin(0.5*t)
figure
subplot(2,1,1)
plot(t,xs);grid;
ylabel('幅值');title('要提取的理想信号')
ns=0.2*randn(size(t)) %高斯噪声
xn=cos(628*t)+sin(628*t)+ns % XN是干扰信号
subplot(2,1,2)
plot(t,xn);grid;
ylabel('幅值');xlabel('时间');title('存在的噪声信号')

xt=xs+xn;%d是实际信号,长度与x相同
dt=xn;%x是输入参考噪声,应该将xn延时才能得到参考噪声

%u=0.0001;% u是收敛因子,固定
u=0.0004 %变步长选择
%,收敛速度和失调量是一对矛盾,要想得
%到较快的收敛速度,可选用大的μ值,这将导致较大的失调量
order=10    % N是FIR滤波器的长度(阶次),,,需要跟下面的w 维数 相对应
w=[0 0 0 0 0 0 0 0 0 0 ]% w是估计的FIR滤波器输出

M=length(dt)    %M为权系数长度,即迭代次数x=
y=zeros(1,M)    %y是滤波器输出
w=zeros(1,order)    %滤波器系数
e=zeros(1,M);
r=0.1  %变步长时的约束因子
for n=order:M     %lms算法
    x1=dt(n:-1:n-order+1);%对噪声的抽样值
    y(n)=w*x1';
    e(n)=xt(n)-y(n);
    %w=w+u*e(n)*x1;% w(n+1)=w(n)+u*e(n)*x(n) %固定步长
    w=w+u/(r+x1*x1')*e(n)*x1;  %变步长
end
%误差信号
figure
subplot(2,1,1);
plot(t,xt);grid;title('实际含噪声的信号');ylabel('幅值');
subplot(2,1,2);
plot(t,y);grid;title('滤波器输出信号');ylabel('幅值');
%subplot(3,1,3);
figure
subplot(2,1,1);
plot(t,e);grid;title('最终消噪的信号');ylabel('幅值');
subplot(2,1,2);
DD=0%var(e,1)
plot(t,DD);grid;title('误差信号,即对抵消信号进行方差计算,应该渐进归零');xlabel('时间');ylabel('幅值');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -