窗函数设计低通滤波器 电信课设
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XXXX大学
课程设计报告
学生:xxx 学号:xxx
专业班级:电子信息工程
课程名称:数字信号处理课程设计
学年学期20XX——20XX 学年第X学期指导教师:xxx
2014年6月
课程设计成绩评定表
目录
1. 窗函数设计低通滤波器
1.1设计目的 (1)
1.2设计原理推导与计算 (1)
1.3设计容与要求 (2)
1.4设计源程序与运行结果 (3)
1.5思考题 (10)
2. 用哈明窗设计FIR带通数字滤波器
2.1设计要求 (14)
2.2设计原理和分析 (14)
2.3详细设计 (15)
2.4调试分析及运行结果 (15)
2.5心得体会 (17)
参考文献 (17)
1.窗函数设计低通滤波器
1.1设计目的
1. 熟悉设计线性相位数字滤波器的一般步骤。
2. 掌握用窗函数法设计FIR 数字滤波器的原理和方法。
3. 熟悉各种窗函数的作用以及各种窗函数对滤波器特性的影响。
4. 学会根据指标要求选择合适的窗函数。
1.2设计原理推导与计算
如果所希望的滤波器的理想的频率响应函数为()
ωj d e H ,则其对应的单位脉冲响应为
()()
ωπ
ωωπ
π
d e e H n h j j d d ⎰-
=
21 (4.1)
窗函数设计法的基本原理是设计设计低通FIR 数字滤波器时,一般以理想低通滤波特性为逼近函数()
ωj e H ,即
()⎪⎩⎪⎨⎧≤<≤=-π
ωωωωωα
ω
c c j j
d ,,
e e H 0,其中21-=N α
()()
()[]()
a n a n d e e d e e H n h c j j j j d d c
c
--=
=
=
⎰⎰-
--
πωωπ
ωπ
ωαωω
ωαωπ
π
ωsin 2121
用有限长单位脉冲响应序列()n h 逼近()n h d 。由于()n h d 往往是无限长序列,而且是非因果的,所以用窗函数()n ω将()n h d 截断,并进行加权处理,得到: ()()()n n h n h d ω= (4.2)
()n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函
数()
ωj e H 为
()()n
j N n j e
n h e
H ωω
∑-==10
(4.3)
式中,N 为所选窗函数()n ω的长度。
用窗函数法设计的滤波器性能取决于窗函数()n ω的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见表(一)。
表(一) 各种窗函数的基本参数
这样选定窗函数类型和长度N 之后,求出单位脉冲响应()()()n n h n h d ω•=,并按照式(4.3)求出()
ωj e H 。()ωj e H 是否满足要求,如果()
ωj e H 不满足要求,
则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。
1.3设计容与要求
(一)设计要求:
1. 学会计算滤波器各项性能指标及如何来满足给定的指标要求。
2. 用MATLAB 语言编程实现给定指标要求的滤波器的设计。
3. 熟悉MATLAB 语言,独立编写程序。
4. 设计低通FIR 滤波器的指标: 通带最大波动
0.25,
p R dB =,0.2p ωπ
=
阻带最小衰减 50,
s A dB =,
0.3s ωπ
=
(二)、设计容:
1.熟悉各种窗函数,在MATLAB 命令窗下浏览各种窗函数,绘出(或打印)所看到的窗函数图。
2.编写计算理想低通滤波器单位抽样响应hd(n)的m 函数文件ideal.m 。
3. 编写计算N 阶差分方程所描述系统频响函数()j H e ω的m 函数文件fr.m 。
4.根据指标要求选择窗函数的形状与长度N 。(至少选择两种符合要求的窗函数及其对应的长度)。
5.编写.m 程序文件,通过调用ideal.m 和fr .m 文件,计算你设计的实际低通FIR 滤波器的单位抽样响应h(n)和频率响应()j H e ω,打印在频率区间[O ,π]上的幅频响应特性曲线()~j H e ωω,幅度用分贝表示。
6.验证所设计的滤波器是否满足指标要求。
1.4设计的源程序及运行结果:
1、利用MATLAB 窗口观察各种窗函数:
%巴特利特窗
w=bartlett(20);
subplot(3,2,1);
plot(w);
stem(w,'y');%'y'表示黄色
%stem表示以离散图输出title('巴特利特床窗');
xlabel('n');%横坐标为n ylabel('w(n)');%纵坐标为w(n) %布莱克曼窗
w=blackman(20);
subplot(3,2,2);
plot(w);
stem(w,'b');%'b'表示蓝色title('布莱克曼窗');
xlabel('n');
ylabel('w(n)');
%矩形窗
w=boxcar(20);
subplot(3,2,3);
plot(w);
stem(w,'r'); title('矩形窗');
xlabel('n');
ylabel('w(n)');
%海明窗
w=hamming(20);
plot(w);
stem(w,'m');%'m'表示紫色title('海明窗');
xlabel('n');
ylabel('w(n)');
%汉宁窗
w=hanning(20); subplot(3,2,5);
plot(w);
stem(w,'g');%'g'表示绿色title('汉宁窗');
xlabel('n');
ylabel('w(n)');
%凯泽窗
beta=5.6533;
w=kaiser(20,beta); subplot(3,2,6);