马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
写了个自适应滤波器想把50hz的信号过滤掉,但是出来的信号和输入信号一模一样,错在哪里?请高手指正,多谢!程序如下:
clc;
clear;
t=0:.001:.2000;
s=0.5*square(2*pi*10*t,50);%产生幅度为0.5,频率为10hz方波;
n=cos(2*pi*50*t);%幅度为1频率为50hz的正弦波
x=s+n;%输入信号
plot(t,s);
u=0.0001;
%自适应滤波
for i=1:1:201
w(1:1:4,1)=[0,0,0,0];
y(i)=w(1:1:4,i)'*[cos(2*pi*50*(i-1)+pi);cos(2*pi*50*(i-1));cos(2*pi*50*(i-1)+pi/2);cos(2*pi*50*(i-1)+3*pi/2)];
e=x(i)-y(i);
out(i)=e;
w(1:1:4,i+1)=w(1:1:4,i)+2*u.*e*[cos(2*pi*50*(i-1)+pi);cos(2*pi*50*(i-1));cos(2*pi*50*(i-1)+pi/2);cos(2*pi*50*(i-1)+3*pi/2)];
end
%画图
hold on;
plot(t,out,'red');
hold off; |