回 帖 发 新 帖 刷新版面

主题:matlab滤波filter的问题

我产生一个函数,有50和120hz的正弦波组成,如下:
t = 0:0.001:0.512;
x = sin(2*pi*50*t)+sin(2*pi*120*t);

然后我用fdatool产生了一个带阻滤波器,40-60Hz之间是阻带。
然后generate m-file,并粘贴入了测试程序中。

然后我用下面的程序片段进行滤波和显示,并计算频谱,然后显示频率谱(功率)
fy1 = filter(Hd1,y);
fY1 = fft(fy1,512);
Pfyy1 = fY1.* conj(fY1) / 512;

ff1 = 1000*(0:256)/512;

figure(3);
plot(ff1,Pfyy1(1:257));

但遗憾的是50Hz处并没有被滤掉,而是130-210Hz左右的频率分量被滤掉了,
怎么解决?


回复列表 (共1个回复)

沙发

可有尝提供代码解决方案

我来回复

您尚未登录,请登录后再回复。点此登录或注册