线性相位FIR数字滤波器的设计说明

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

西南科技大学

课程设计报告

课程名称:数字通信课程设计

设计名称:线性相位FIR数字滤波器的设计

姓名:龙三峰

学号: 20084880

班级:通信0802

指导教师:张小京

起止日期:20011.6.28-2009.7.4

西南科技大学信息工程学院制

课程设计任务书

学生班级:通信0802 学生姓名:龙三峰学号: 20084880 设计名称:线性相位FIR数字滤波器的设计

起止日期:2011.6.28-2011.7.4指导教师:张小京

课程设计学生日志

课程设计考勤表

课程设计评语表

一、设计目的

1. 掌握窗函数法设计FIR 滤波器的原理和方法,观察用几种常用窗函数设计的FIR 数字滤波器技术指标;

2. 掌握FIR 滤波器的线性相位特性;

3. 了解各种窗函数对滤波特性的影响。

二、设计原理

如果所希望的滤波器的理想频率响应函数为H d (e jω),则其对应的单位脉冲响应为ωπ

ωπ

π

ωd e e H n h n j j d ⎰-

=

)(21)(,

用窗函数w N (n)将h d (n)截断,并进行加权处理,得到实际滤波器的单位脉冲响应h (n )=h d (n )w N (n ),其频率响应函数为

n j N n j e n h e H ωω

--=∑=1

0)()(。如果要求线性相位特性,则h (n )还必须满足

)1()(n N h n h --±=。可根据具体情况选择h(n)的长度及对称性。

可以调用MATLAB 工具箱函数fir1实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft 来计算滤波器的频率响应函数。

fir1是用窗函数法设计线性相位FIRDF 的工具箱函数,调用格式如下:

hn=fir1(N, wc, ‘ftype’, window)

fir1实现线性相位FIR 滤波器的标准窗函数法设计。

hn=fir1(N,wc)可得到6 dB 截止频率为wc 的N 阶(单位脉冲响应h(n)长度为N+1)FIR 低通滤波器,默认(缺省参数windows)选用hammiing 窗。其单位脉冲响应h(n)满足线性相位条件:h(n)=h(N-1-n)

其中wc 为对π归一化的数字频率,0≤wc ≤1。 当wc=[wc1, wc2]时,得到的是带通滤波器。

hn=fir1(N,wc,’ftype’)可设计高通和带阻滤波器。

当ftype=high 时,设计高通FIR 滤波器; 当ftype=stop 时,设计带阻FIR 滤波器。

应当注意,在设计高通和带阻滤波器时,阶数N 只能取偶数(h(n)长度N+1为奇数)。不过,当用户将N 设置为奇数时,fir1会自动对N 加1。

hn=fir1(N,wc,window)可以指定窗函数向量window 。如果缺省window 参数,则fir1默认为hamming 窗。可用的其他窗函数有Boxcar, Hanning, Bartlett,

Blackman, Kaiser 和Chebwin 窗。例如: hn=fir1(N,wc,bartlett(N+1))使用Bartlett 窗设计; hn=fir1(N,wc,chebwin(N+1,R))使用Chebyshev 窗设计。

hn=fir1(N,wc,’ftype ’,window)通过选择wc 、 ftype 和window 参数(含

义同上),可以设计各种加窗滤波器。

三、 详细设计步骤

1、用窗函数法设计一个线性相位FIR 低通数字滤波器 FIR 低通数字滤波器指标为:

阻带衰减()通带衰减(度)数字阻带截止频率(弧度)数字通带截止频率(弧dB dB

s A dB dB p R s p 5014.02.0====π

ωπω

因为衰减为50dB ,所以选择海明窗。

过渡带宽为Ws -Wp=0.2π,由公式N >6.6π÷0.2π=33,所以 N=34。

所以程序如下: N=34;

Wc=pi/5; %通带截止频率 wc=Wc/pi;%频率归一化 h=fir1(N,wc);

[H,m]=freqz(h,[1],1024,'whole'); %频率响应 mag=abs(H);

db=20*log10((mag+eps)/max(mag)); pha=angle(H); subplot(2,2,1) n=0:N; stem(n,h,'.') axis([0 N -0.1 0.3]) hold on n=0:N; x=zeros(N+1);

plot(n,x,'-')

hold off

xlabel('n')

ylabel('h(n)')

title('实际低通滤波器的h(n)')

subplot(2,2,2)

plot(m/pi,db)

axis([0 1 -100 0])

xlabel('w/pi')

ylabel('dB')

title('副频衰减特性')

grid on

subplot(2,2,3)

plot(m,pha)

hold on

n=0:7;

x=zeros(8);

plot(n,x,'-')

hold off

axis([0 3.15 -4 4])

xlabel('频率(rad)')

ylabel('相位(rad)')

title('相频特性')

subplot(2,2,4)

plot(m,mag)

axis([0 6.15 0 1.5])

相关文档
最新文档