文档介绍:MATLAB课程设计报告
学院:地球物理与石油资源学院
班级: 测井(基)11001
姓名:
学号:
班内编号:
指导教师:
完成日期: 2013年6月3日
题目 FIR滤波器的窗函数设计法及性能比较
FIR滤波器简介
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。与IIR滤波器相比,FIR滤波器的主要特点为:
线性相位;。
FIR滤波器的设计
FIR滤波器的设计方法主要有三种:;;;
这里我主要讨论在MATLAB环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能。窗函数法设计FIR滤波器的一般步骤如下:
根据实际问题确定要设计的滤波器类型;
根据给定的技术指标,确定期望滤波器的理想频率特性;
求期望滤波器的单位脉冲响应;
求数字滤波器的单位脉冲响应;
应用。
常用的窗函数有
4. 常用窗函数的参数
FIR滤波器的MATLAB实现方式
在MATLAB信号分析与处理工具箱中提供了大量FIR窗函数的设计函数,本次用到主要有以下几种:
hanning(N) hanning窗函数的调用
hamming(N) hamming窗函数的调用
blackman(N) blackman窗函数的调用
kaiser(n+1,beta) kaiser窗函数的调用
kaiserord 计算kaiser窗函数的相关参数
freqz 求取频率响应
filter 对信号进行滤波的函数
实验具体步骤
本次实验分别通过调用hanning ,hamming ,Blackman,kaiser窗函数,给以相同的技术参数,来设计低通,带通,高通滤波器,用上述窗函数的选择标准来比较各种窗函数的优劣,并给以一个简谐波进行滤波处理,比较滤波前后的效果。达到综合比较的效果。
二、源代码
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