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)));%滤完波,频谱不太对

eguang8116 发表于 2008-4-3 10:57

8点FFT能看出什么呢?

simonxn 发表于 2008-4-3 14:17

本帖最后由 wdhd 于 2016-9-9 13:46 编辑

原帖由 eguang8116 于 2008-4-3 10:57 发表
8点FFT能看出什么呢?
因为是想试下滤波器,应该跟点数没关系把,

songzy41 发表于 2008-4-3 15:29

本帖最后由 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函数看一下频响。

simonxn 发表于 2008-4-3 15:49

回复 4楼 的帖子

恩,问题现在基本解决的了,谢谢啦~

但如果我要做高阶的低通,应该调用什么函数呢?

songzy41 发表于 2008-4-3 17:29

一样可用fir1
页: [1]
查看完整版本: 请教一个滤波的问题,希望大家帮帮我~~~