|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2013-6-29 21:34:03
|
显示全部楼层
winster321 发表于 2013-6-29 21:10 ![](static/image/common/back.gif)
you got it.
你可以试下用5000Hz去采样3000Hz,看看采样后所看到的波形频率是不是变成2000Hz了,这就是alia ...
嗯,稍微有点明白了。
能否请您帮我看下这段简短的代码,是否能够实现FIR滤波器的功能
我做出来有些问题,得不到输出波形、、
function test()
clear;
Fs = 1000; %采样频率为1KHz
%-----------------------------------------输入信号---------------------------------------------
F = 1; %输入信号频率
t = 0:1/Fs:1;
Y = sin((F*2*pi)*t);
subplot(211), plot(t, Y);
%-----------------------------------------计算滤波信号---------------------------------------------
Fc = 500; %截止频率Fc Hz
Wc = 2*pi*Fc; %截止频率(弧度)
M = 10; %长度为10 阶数为9的FIR滤波器
hd = ideal_lp(Wc, M); %获得理想低通滤波器的前M个脉冲响应
w_box = (boxcar(M))'; %获得矩窗口函数
h = hd .* w_box; %获得实际脉冲响应
Y = [[0 0 0 0 0 0 0 0 0], Y]; %初始时,以0补齐最前面的数据
for i = 10:(1*Fs+10) %滤波
OUT(i-9) = h(1)*Y(i) + h(2)*Y(i-1) + h(3)*Y(i-2) + h(4)*Y(i-3) + h(5)*Y(i-4) + h(6)*Y(i-5) + h(7)*Y(i-6) + h(8)*Y(i-7) + h(9)*Y(i-8) + h(10)*Y(i-9);
end
subplot(212), plot(t, OUT);
axis([0 1 -1 1]);
|
|