窗函数设计低通滤波器 电信课设

  • 格式:doc
  • 大小:313.00 KB
  • 文档页数:20

.

;.

XXXX大学

课程设计报告

学生姓名:xxx 学 号: xxx

专业班级: 电子信息工程

课程名称: 数字信号处理课程设计

学年学期 20XX——20XX 学年第X学期

指导教师: xxx

2014年 6月

.

;. 课程设计成绩评定表

学生姓名 XXX 学 号 XXXXXX 成绩

专业班级 XXXXX 起止时间 20XX-X-X至20XX-X-XX

设计题目 1.窗函数设计低通滤波器

2.用哈明窗设计FIR带通数字滤波器

指导教师:

年 月 日

.

;.

目 录

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设计原理推导与计算

如果所希望的滤波器的理想的频率响应函数为jdeH,则其对应的单位脉冲响应为

deeHnhjjdd21 (4.1)

窗函数设计法的基本原理是设计设计低通FIR数字滤波器时,一般以理想低通滤波特性为逼近函数jeH,即

ccjjd,,eeH0,其中21N

anandeedeeHnhcjjjjddccsin2121

用有限长单位脉冲响应序列nh逼近nhd。由于nhd往往是无限长序列,而且是非因果的,所以用窗函数n将nhd截断,并进行加权处理,得到:

nnhnhd (4.2)

nh就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数jeH为

njNnjenheH10 (4.3)

式中,N为所选窗函数n的长度。

用窗函数法设计的滤波器性能取决于窗函数n的类型及窗口长度N的取.

;. 值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见表(一)。

窗函数 旁瓣峰值幅度/dB 过渡带宽 阻带最小衰减/dB 过渡带带宽N2

矩形窗 -13 4π/N -12 0.9

三角形窗 -25 8π/N -25 2.1

汉宁窗 -31 8π/N -44 3.1

哈明窗 -41 8π/N -53 3.3

不莱克曼窗 -57 12π/N -74 5.5

凯塞窗(=7.865) -57 10π/N -80 5

表(一) 各种窗函数的基本参数

这样选定窗函数类型和长度N之后,求出单位脉冲响应nnhnhd•,并按照式(4.3)求出jeH。jeH是否满足要求,如果jeH不满足要求,则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。

1.3设计内容与要求

(一)设计要求:

1. 学会计算滤波器各项性能指标及如何来满足给定的指标要求。

2. 用MATLAB语言编程实现给定指标要求的滤波器的设计。

3. 熟悉MATLAB语言,独立编写程序。

4. 设计低通FIR滤波器的指标: .

;. 通带最大波动 0.25,pRdB,0.2p

阻带最小衰减 50,sAdB,0.3s

(二)、设计内容:

1.熟悉各种窗函数,在MATLAB命令窗下浏览各种窗函数,绘出(或打印)所看到的窗函数图。

2.编写计算理想低通滤波器单位抽样响应hd(n)的m函数文件ideal.m。

3. 编写计算N阶差分方程所描述系统频响函数()jHe的m函数文件fr.m。

4.根据指标要求选择窗函数的形状与长度N。(至少选择两种符合要求的窗函数及其对应的长度)。

5.编写.m程序文件,通过调用ideal.m和fr.m文件,计算你设计的实际低通FIR滤波器的单位抽样响应h(n)和频率响应()jHe,打印在频率区间[O,π]上的幅频响应特性曲线()~jHe,幅度用分贝表示。

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);

plot(w);

stem(w,'k');%'k'表示黑色

title('凯泽窗,beta=5.6533');

xlabel('n');

ylabel('w(n)');

0510152000.51巴特利特床窗nw(n)0510152000.51布莱克曼窗nw(n)0510152000.51矩形窗nw(n)0510152000.51海明窗nw(n)0510152000.51汉宁窗nw(n)0510152000.51凯泽窗,beta=5.6533nw(n)

常用窗函数的图形

2、理想低通滤波器单位抽样响应hd(n)的m函数文件ideal.m。 .

;. function hd=ideal(wc,M)

%理想低通滤波器计算

%hd为0到M-1之间的理想脉冲响应

%wc为截止频率

%M为理想滤波器的长度

alpha=(M-1)/2;

n=0:M-1;

m=n-alpha+eps;

hd=sin(wc*m)./(pi*m);

3、N阶差分方程所描述的系统频响函数的m函数文件fr.m。

function[db,mag,pha,gfd,w]=fr(b,a)

%求解系统响应

%db为相位振幅(db)

%mag为绝对振幅

%pha为相位响应

%grd为群延时

%w为频率样本点矢量

%b为Ha(z)分析多项式系数(对FIR而言,b=h)

%a为Hz(z)分母多项式系数(对FIR而言,a=1)

[H,w]=freqz(b,a,1000,'whole');

H=(H(1:501))';

w=(w(1:501))';

mag=abs(H);

db=20*log10((mag+eps)/max(mag));

pha=angle(H);

gfd=grpdelay(b,a,w);

4、实际低通滤波器FIR:

%用海明窗设计低通滤波器

wp=0.2*pi;