主题: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左右的频率分量被滤掉了,
怎么解决?
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左右的频率分量被滤掉了,
怎么解决?