实验 三 用凯泽窗设计线性相位带通FIR滤波器
实验目的:
基于MATLAB环境,熟悉利用窗函数法设计线性相位FIR滤波器的原理和方法。
实验环境:
硬件环境:计算机,软件环境:MATLAB平台。
实验原理:
凯泽窗是对于给定的阻带衰减,使主瓣具有最大能量意义下的最佳窗函数,因此具有最陡的过渡带。窗函数的形式为
I0[ ?1?(1?wk(n)?2n2) ]N?1 , 0?n?N?1 I0(?)?其中?为形状参数,I0[x]是第一类修正零阶贝塞尔函数,其幂函数展开式为
1xI0[x]?1??[()k]2
k?1k!2若给定滤波器的过渡带宽度?? (rad)和阻带衰减As(dB),则滤波器的长度和形状参数? 可由下列经验公式给出:
N?As?7.95
2.286Δ?As?50dB?0.1102(As?8.7),?β??0.5842(As?21)0.4?0.07886(As?21),21?As?50dB
?0,As?21dB?设计流程图
输入带通指标:?p1、?p2、?s1、?s2、As、 编写函数dbpfilter_FIR.m用以计算带通滤波器单位抽样响应h(n) 计算N(N为奇数)及? 编写函数kaiser_WF.m计算凯泽窗函数调用ideal_LP计算hd(n) 用stem(wk) 显示wk(n) 计算h (n)=hd(n)·wk(n) 计算滤波器的幅频及对数幅频特性并画图 打印结果、验证指标要求
实验内容要求:
1. 编写计算凯泽窗函数wk(n)的M函数文件kaiser_WF.m,各变量定义如下: function wk= kaiser_WF(N, beta)
% N ---凯泽窗序列的长度 % beta---凯泽窗参数 % wk ---凯泽窗序列
计算贝塞尔函数的参考程序bessel_IM.m如下:
function s=bessel_IM (x) eps= 10^(-12); k=1; s=1; D= 1; while D>(eps*s) T= x/(2*k); D= D *T^2; s= s+D;
k= k+l;
end
所用的公式为 I0[x]?1?1xk2[()] ?k!2k?1?
2. 编写计算理想低通滤波器单位抽样响应hd(n)的M函数文件ideal_LP_FIR.m,各变量定义如下:
function [hd]=ideal_LP_FIR(wc,N)
% 理想低通滤波器单位冲激响应的计算
%------------------------------------------ %hd ---理想低通滤波器单位冲激响应(0<=n<=(n-1)) %wc ---截至频率(单位弧度/秒) %N ---理想低通滤波器的长度 %
3. 编写dbpfilter.m程序文件,通过调用kaiser_WF.m文件,设计下列带通FIR滤波器: 通带截止频率?p1=0.3?,?p2=0.5?
阻带衰减大于60 dB,?s1=0.15?,?s2=0.65? 主程序文件 dbpfilter_FIR
% d_omega ---输入数字频率数组(向量); % d_omega(1)---阻带下边缘截止频率 % d_omega(2)---通带下边缘截止频率 % d_omega(3)---通带上边缘截止频率 % d_omega(4)---阻带上边缘截止频率 % N ---数字带通滤波器的长度
% hd ---理想数字带通滤波器单位冲激响应
% h ---实际数字带通滤波器单位冲激响应(所设计的) %wk ---凯泽窗序列 % beta ---凯泽窗参数
思考题:
1.窗函数有哪些指标要求?
2. 用窗函数法设计FIR滤波器时,滤波器的过渡带宽度和阻带衰减各与哪些因素有关? 3. 凯泽窗函数的?参数一般选取范围是多少? ? 的大小对窗函数形状以及频谱有何影响?
报告要求:
1. 列出本实验编写的所有文件及各项结果(包括数据、曲线),并加注必要的说明。 2. 写出计算理想带通滤波器单位抽样响应hd(n)的方法。
3. 对给定指标要求的带通滤波器,理论计算用凯泽窗设计所需的滤波器长度N和形状参数?
4. 分析实验结果,写出实验体会及实验中存在的问题。
注:实验报告的写作格式见《中国地质大学(北京)小学期实习报告撰写规范》。
评分标准:满分100分
报告整体结构 能正确设计线性相位带通FIR滤波器 问题回答
有实验内容简介,格式规范,图表整洁。 结果正确,附有程序。 思考问题回答正确。 满分 10 60 30 总分 评分