📄 ad_f.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 + -