主题:[讨论]菜鸟急求助(在线等)滤波器的使用
lajabor
[专家分:0] 发布于 2008-07-25 00:01:00
现在要做一个系统,要用到一组滤波器,滤波器用以汉明窗设计,急求设计思想及源码,还有设计好之后,该怎么调用,才能输出滤波后的函数?大家帮忙啊!不胜感激~
回复列表 (共1个回复)
沙发
duandaodream [专家分:0] 发布于 2008-08-17 15:01:00
最简单的matlab中有FDATool可以设计想要的滤波器,设计好之后导出系数即可,若只用程序写,方法也有很多。下面的可以参考下
clear all;close all;
N=21;wc=1/4;n=0:20;
%boxcar window
fprintf('矩形窗设计结果');
hn=fir1(N-1,wc,boxcar(N))
fh=fft(hn,1024);
fh=20*log10(abs(fh));
wk=0:1023;wk=2*wk/1024;
subplot(2,2,1);
plot(wk,fh);grid;
title('boxcar window');xlabel('w/pi');
% hanning window
wind=hanning(N);
fprintf('hanning窗设计结果');
hn=hn.*wind'
fh=fft(hn,1024);
fh=20*log10(abs(fh));
subplot(2,2,2);
plot(wk,fh);grid ;
title('hanning window');xlabel('w/pi');
axis([0 2 -130 0]);
%hamming window
wind=hamming(N);
fprintf('Hamming窗设计结果');
hn=hn.*wind'
fh=fft(hn,1024);
fh=20*log10(abs(fh));
subplot(2,2,3);
plot(wk,fh);grid;
title('hamming window');xlabel('w/pi');
axis([0 2 -160 0]);
%blackman window
wind=blackman(N);
fprintf('Blackman窗设计结果');
hn=hn.*wind'
fh=fft(hn,1024);
fh=20*log10(abs(fh));
subplot(2,2,4);
plot(wk,fh);grid;
title('blackman window');xlabel('w/pi');
设计好滤波器可以通过filter,fftfilt之类的函数进行处理得到滤波后的结果。
我来回复