MATLAB窗函数法实现FIR的高通,带通和低通滤波器的程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB窗函数法实现FIR的高通,带通和低通滤波器的程序

MATLAB 学院:地球物理与石油资源学院班级:姓名:学号:班内编号:指导教师:完成日期:测井11001大牛啊啊啊陈义群2013年6月3日课程设计报告一、题目FIR滤波器的窗函数设计法及性能比较 1. FIR滤波器简介数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应滤波器和有限冲激响应滤波器。与IIR滤波器相比,FIR滤波器的主要特点为: a. 线性相位;b.非递归运算。 2. FIR 滤波器的设计FIR滤波器的设计方法主要有三种:a.窗函数设计法;b.频率

抽样发;c.最小平法抽样法;这里我主要讨论在MATLAB环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能。窗函数法设计FIR滤波器的一般步骤如下: a. 根据实际问题确定要设计的滤波器类型; b. 根据给定的技术指标,确定期望滤波器的理想频率特性;c. 求期望滤波器的单位脉冲响应;d. 求数字滤波器的单位脉冲响应; e. 应用。常用的窗函数有(1)Hanningwindoww(n)?[?((2)Hammingw indoww(n)?[?((3)Balckmanwindoww(n)?[ ?((4)KaiserwindowI0{?1?[2n/(N?1)]2}w(n )?RN(n)I0(?)式中I0(x)是零阶Bessel函数,可定义为()2?n4?n)?()]RN(n)N?1N?1()2?n)]RN(n)N ?1() ?nN?1)]RN(n)() (x/2)m2I0(x)?1??m!m?1? 当x?0时与矩形窗一致;当x?时与海明窗结果相同;当x?时与布莱克曼窗结果相同。3.窗函数的选择标准 1. 较低的旁瓣

幅度,尤其是第一旁瓣; 2. 旁瓣幅度要下降得快,以利于增加阻带衰减;3. 主瓣宽度要窄,这样滤波器过渡带较窄。

4. 常用窗函数的参数

5. FIR 滤波器的MATLAB实现方式在MATLAB信号分析与处理工具箱中提供了大量FIR窗函数的设计函数,本次用到主要有以下几种:hanning(N) hanning窗函数的调用hamming(N) hamming窗函数的调用blackman(N) blackman窗函数的调用kaiser(n+1,beta) kaiser窗函数的调用kaiserord 计算kaiser窗函数的相关参数freqz 求取频率响应filter对信号进行滤波的函数

6. 实验具体步骤本次实验分别通过调用hanning ,hamming ,Blackman,kaiser窗函数,给以相同的技术参数,来设计低通,带通,高通滤波器,用上述窗函数的选择标准来比较各种窗函数的优劣,并给以一个简谐波进行滤波处理,比较滤波前后的效果。达到综合比较的效果。

二、源代码 1.利用hanning hamming blackman kaiser窗,设计一个低通FIR function lowpassfilter clc; clear all; Fs=100;%采样频率fp=20;%通带截止频率fs=30;%阻带起始频率wp=2*pi*fp/Fs;%将模拟通带截止频率转换为数字滤波器频率ws=2*pi*fs/Fs;%将模拟阻带起始频率转换为数字滤波器频率wn=(wp+ws)/2/pi;%标准化的截止频率响应Bt=ws-wp; N0=ceil(*pi/Bt);%滤波器长度N=N0+mod(N0+1,2); window1=hanning(N);%使用hanning窗函数window2=hamming(N);%使用hamming窗函数window3=blackman(N);%使用blackman 窗函数[n,Wn,beta,ftype]=kaiserord([20 25],[1 0],[ ],100); window4=kaiser(n+1,beta);%使用kaiser窗函数%设计加窗函数fir1 b1=fir1(N-1,wn,window1); b2=fir1(N-1,wn,window2);

b3=fir1(N-1,wn,window3);

b4=fir1(n,Wn/pi,window4 ,’noscale’); %求取频率响应[H1,W1]=freqz(b1,1,512,2);

[H2,W2]=freqz(b2,1,512,2);

[H3,W3]=freqz(b3,1,512,2);

[H4,W4]=freqz(b4,1,512,2);

figure(1);

subplot(2,2,1),plot(W1,20*log10(abs(H1)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘低通hanning窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); subplot(2,2,2),plot(W2,20*log10(abs(H2)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘低通hamming窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); subplot(2,2,3),plot(W3,20*log10(abs(H3)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘低通blackman窗的频率响应图形’);

xlabel(‘频率(Hz)’); ylabel(‘幅值’); subplot(2,2,4),plot(W4,20*log10(abs(H4)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘低通kaiser窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); T=1/Fs; L=100;%信号长度t=(0:L-1)*T;%定义时间范围和步长y=sin(2*pi*5*t)+5*sin(2*pi*15*t)+8*sin( 2*pi*40*t);%滤波前的图形NFFT = 2

相关文档
最新文档