|
本帖最后由 wdhd 于 2016-9-9 13:46 编辑
原帖由 simonxn 于 2008-4-3 09:39 发表
现在有两个频率的信号,设计一个低通把低的频率滤掉,程序如下,但一直不对,希望高人帮忙~
clear all;
clc;
fs=2000;%采样率
n=1:16;
x=sin(2*pi*500/fs*n)+sin(2*pi*750/fs*n);%现在设计一个低通把500Hz的滤掉
%figure
%plot(x);
y=fft(x,8);%做前8点FFT,先看下频谱,500Hz,750Hz分别对应第3,4根谱线.实际求频率是2,3根
figure;
stem(abs(y));
b=fir1(8,2/8);%低通,9点,截止频率=fs*2/8,归一化后,截止频率=2/8;
y1=filter(b,1,x);%滤波,(感觉不太对,但不知道怎么改)......
figure
stem(abs(fft(y1,8)));%滤完波,频谱不太对
1,信号长只有16点似乎太短,信号滤波过程中会有延迟,有可能在笫8个样点处还没有稳定;
2,FFT用8点进行变换不易看出500Hz和750Hz的情况;
3,截止频率=fs*2/8设置错误,在fir1(n,Wn)中Wn是用fs/2归一,不是用fs归一的;
4,滤波器的阶数n也可能太低,可以用freqz函数看一下频响。 |
|