数字信号处理课程设计报告

目录

一、课程设计的目的…………………………………………………………………………………….1

二、数字滤波器的设计步骤………………………………………………………………………….2

2.2、IIR数字滤波器与FIR数字滤波器的区别………………….2

三、IIR数字滤波器………………………………………………………………………………………..2

3.1、IIR数字滤波器的特点... 2

3.1.2、IIR数字滤波器采用递归型结构... 3

3.1.3、借助成熟的模拟滤波器的成果... 3

3.1.4、需加相位校准网络... 3

3.2、用双线性法设计IIR数字滤波器... 3

3.3、巴特沃斯低通滤波器的设计... 4

3.4、巴特沃斯高通滤波器的设计... 4

3.4.1、巴特沃斯高通滤波器各参数图形... 4

3.4.2、巴特沃斯高通滤波器滤波效果图... 5

四、FIR数字滤波器……………………………………………………………………………………….5

4.1、FIR滤波器的特点... 5

4.2、窗函数法设计FIR数字滤波器... 5

五、程序实例源码………………………………………………………………………………………..7

六、问题分析………………………………………………………………………………………………12

七、心得体会………………………………………………………………………………………………13

八、参考文献………………………………………………………………………………………………13

一、课程设计的目的

    数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。在信号的过滤、检测和参数的估计等方面,经典数字滤波器是使用最广泛的一种线性系统。

本次课程设计是通过对常用数字滤波器的设计和实现,掌握数字信号处理的工作原理及设计方法;熟悉用双线性变换法设计 IIR 数字滤波器和用窗函数法设计FIR数字滤波器的原理与方法,掌握利用数字滤波器对信号进行滤波的方法,掌握数字滤波器的计算机仿真方法,并能够对设计结果加以分析。

二、数字滤波器的设计步骤

2.1、不论是IIR滤波器还是FIR滤波器的设计都包括三个步骤:

(1)      按照实际任务的要求,确定滤波器的性能指标。

(2)      用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。根据不同的要求可以用IIR系统函数,也可以用FIR系统函数去逼近。

(3)      利用有限精度算法实现系统函数,包括结构选择,字长选择等。

2.2、IIR数字滤波器与FIR数字滤波器的区别

2.2.1、单位响应

  IIR数字滤波器单位响应为无限脉冲序列,而FIR数字滤波器单位响应为有限的;

  FIR滤波器,也就是“非递归滤波器”,没有引入反馈。这种滤波器的脉冲响应是有限的。

2.2.2、幅频特性

  IIR数字滤波器幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上;FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变,这是很好的性质。

2.2.3、实时信号处理

FIR数字滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。

三、IIR数字滤波器

3.1、IIR数字滤波器的特点

IIR滤波器有以下几个特点:

3.1.1、封闭函数

  IIR数字滤波器的系统函数可以写成封闭函数的形式。

3.1.2、IIR数字滤波器采用递归型结构

  IIR数字滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。

3.1.3、借助成熟的模拟滤波器的成果

  IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。

3.1.4、需加相位校准网络

  IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。

3.2、用双线性法设计IIR数字滤波器

脉冲响应不变法的主要缺点是产生频率响应的混叠失真。这是因为从S平面到Z平面是多值的映射关系所造成的。为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=esT转换到Z平面上。也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图1所示。

双线性变换的映射关系

3.3、巴特沃斯低通滤波器的设计

为了便于观察滤波的效果,本次课程设计中我选用的信号只包括一高一低两个频率值,这样在DFT频谱分析图中便可以清楚地观察到频率的分布及经过各类滤波器后的效果。

所用信号:t=0:0.001:2;

y=100*sin(2*pi*2*t)+100*sin(2*pi*20*t);

f=80;

n=0:1/f:2;

yn=100*sin(2*pi*2*n)+ 100*sin(2*pi*20*n);

由信号经过DFT频谱分析之后的图中我们可以读出归一化之后的频率值,这样便可以取出适当的参数设计滤波器了,由128点的DFT频谱分析图中可以看出,设计低通滤波器时应取wp=0.2*pi,ws=0.4*pi,和设计好的低通滤波器一起便可以对原信号进行滤波了。

3.4、巴特沃斯高通滤波器的设计

3.4.1、巴特沃斯高通滤波器各参数图形

巴特沃斯高通滤波器.jpg

3.4.2、巴特沃斯高通滤波器滤波效果图巴特沃斯高通滤波处理.jpg

四、FIR数字滤波器

4.1、FIR滤波器的特点

有限长单位冲激响应(FIR)滤波器有以下特点:

  (1) 系统的单位冲激响应h (n)在有限个n值处不为零;

  (2) 系统函数H(z)在|z|>0处收敛,极点全部在z = 0处(因果系统);

  (3) 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。

  设FIR滤波器的单位冲激响应h (n)为一个N点序列,0 ≤ n ≤ N —1,则滤波器的系统函数为

H(z)=∑h(n)*z^-n

4.2、窗函数法设计FIR数字滤波器

用于产生窗函数的MATLAB文件有如下8个:

(1)bartlett.m  (三角窗)

(2)blackman.m  (布莱克曼窗)

(3)boxcar.m  (矩形窗)

(4)hamming.m  (海明窗)

(5)hanning.m  (汉宁窗)

(6)triang.m  (三角窗)

(7)chebwin.m  (切比雪夫窗)

(8)kaiser.m  (凯泽窗)

2.FIR数字滤波器的文件

以下MATLAB文件是用于FIR数字滤波器的文件:

(1)fir1.m

本文件采用窗函数法设计FIR数字滤波器,其调用格式是

1)b=fir1(N,Wn)

2)b=fir1(N,Wn,’high’)

3)b=fir1(N,Wn,’stop’)

式中N为滤波器的阶次,因此滤波器的长度为N+1;Wn是通带截止频率,其值在0~1之间,1对应抽样频率的一半;b是设计好的滤波器系数

对于格式(1),若Wn是一标量,则可用来设计低通滤波器;若Wn是的向量,则用来设计带通滤波器;若Wn是的向量,则可用来设计带滤波器,此时,格式将变为:

b=fir1(N,Wn,’DC-1’)或b=fir1(N,Wn,’DC-0’)

其中,前者保证第一个带为通带,后者保证第一个带为阻带。

    格式(2)用来设计高通滤波器;格式(3)用来设计带阻滤波器。

    值得注意是:在上述所有格式中,若不指定窗函数的类型,则fir1自动选择汉明窗。

(2)fir2.m

本文件采用窗函数法设计具有任意幅频特性的FIR数字滤波器。其调用格式是

b=fir1(N,F,M)

其中F是频率向量,其值在0~1之间,M是与F相对应的所希望的幅频响应。不指定窗函数的类型,则自动选择汉明窗。

(3)remez.m

本文件用来设计采用切比雪夫最佳一致逼近FIR数字滤波器。同时,还可以用来设计希尔伯特变换器和差分器。其调用格式是

1)b=remez(N,F,A)

2)b=remez(N,F,A,W)

3)b=remez(N,F,A,W,’hilbert’)

4)b=remez(N,F,A,W,’differentiator’)

其中,N是给定的滤波器的阶次;b是设计的滤波器的系数,其长度为N+1;F是频率向量,其值在0~1之间;A是对应F的各频段上的理想幅频响应;W是各频段上的加权向量。

    值得注意是:若b的长度为偶数,设计高通和带阻滤波器时有可能出现错误,因此最好保证b的长度为奇数,即N应为偶数。

(4)remexord.m

本文件采用切比雪夫一致逼近设计FIR数字滤波器时所需要的滤波器阶次。其调用格式是

[N,Fo,Ao,W]=remexord(F,A,DEV,Fs)

式中,F、A的含义同文件(3),是通带和阻带上的偏差;该文件输出的是符合要求的滤波器阶次N、频率向量Fo、幅度向量Ao和加权向量W。若设计者事先不能确定自己要设计的滤波器的阶次,那么,调用remexord后,就可利用这一族参数再调用remez,即b=remez(N,Fo,Ao,W),从而设计出所需要的滤波器。因此,通常remez和remexord结合使用。

    值得说明是:remexord给出的阶次N有可能偏低,这时适当增加N即可;另外,若N为奇数,就可令其加1,使其变为偶数,这样b的长度为奇数。

(5)sgolay.m

本文件用来设计Savitzky-Golay平滑滤波器。其调用格式是

b=sgolay(k,f)

式中k是多项式的阶次,f是拟合的双边点数。要求,且f为奇数。

(6)firls.m

本文件用最小平方法设计线性相位FIR数字滤波器。可设计任意给定的理想幅频特性。

(7)fircls.m

用带约束的最小平方法设计线性相位FIR数字滤波器。可设计任意给定的理想幅频特性。

(8)fircls1.m

用带约束最小平方法设计线性相位FIR低通和高通滤波器。可设计任意给定的理想幅频特性。

(9)firrcos.m

用来设计低通线性相位FIR数字滤波器,其过渡带为余弦函数形状。

五、程序实例源码

1、题目:A.试用MATLAB设计一巴特沃斯低通数字滤波器,要求通带截止频率Wp=30Hz,阻带截止频率Ws=35Hz,通带衰减不大于0.5dB,阻带衰减不小于40dB,抽样频率Fs=100Hz

fp = 30;

fs = 35;

Fs = 100;

wp = 2*pi*fp/Fs;

ws = 2*pi*fs/Fs;

wp = tan(wp/2);

ws = tan(ws/2);

[N, wn] = buttord(wp, ws, 0.5, 40, 's');

[z, p, k] = buttap(N);

[b, a] = zp2tf(z, p, k);

[B, A] = lp2lp(b, a, wp);

[bz, az] = bilinear(B, A, .5);

[h, w] = freqz(bz, az, 256, Fs);

figure

plot(w, abs(h))

grid on

运行结果:

2、题目:A. 用窗函数法设计一个线性相位FIR低通滤波器,并满足性能指标;通带边界频率,阻带边界频率,阻带衰减不小于40dB,通带波纹不大于3dB。要求选择汉宁窗。

wp =0.5*pi;

 ws=0.66*pi;

 wdelta =ws-wp;

 N= ceil(8*pi/wdelta)

if  rem(N,2)==0

N=N+1;

end

Nw =N;

 wc =(wp+ws)/2;

 n =0: N-1;

 alpha =(N-1)/2;

 m =n-alpha+0.00001;

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

 win =hanning(Nw)';

 h=hd.*win;

 b=h;

 freqz(b,1,512)

运行结果:

3、题目:用双线性变换法设计一个数字巴特沃夫低通滤波器,在频带截止频率0.2pi处的衰减不大于1dB,在阻带截止频率0.3pi处的衰减不小于15dB

syms z;

H=1/10*(1+2/z+4/z^2+2/z^3+1/z^4)

h=iztrans(H)

w=-2*pi:0.1:2*pi;

hf=1/10*(1+2./(exp(j*w))+4./(exp(j*w).^2)+2./(exp(j*w).^3)+1./(exp(j*w).^4));

subplot(131)

plot(w,abs(hf))

subplot(132)

plot(w,angle(hf))

subplot(133)

h=[0.1 0.2 0.4 0.2 0.1]

stem(h)

运行结果:

4、设某FIR数字滤波器的系统函数为,试求h(n)的表达式、的幅频响应和相频响应的表达式,并画出对应表达式的波形。

wp=0.2*pi;ws=0.3*pi;

Fs=4000;T=1/Fs;

OmegaP=(2/T)*tan(wp/2);

OmegaS=(2/T)*tan(ws/2);

rp=1;rs=15;as=15;

ripple=10^(-rp/20);attn=10^(-rs/20);

[n,wn]=buttord(OmegaP,OmegaS,rp,rs,'s');

[z,p,k]=Buttap(n);

[b,a]=zp2tf(z,p,k);

[bt,at]=lp2lp(b,a,wn);

[b,a]=bilinear(bt,at,Fs);

[db,mag,pha,grd,w]=freqz_m(b,a);

%下面绘出各条曲线

subplot(2,2,1);plot(w/pi,mag);title('Magnitude Frequency幅频特性');

xlabel('w(/pi)');ylabel('|H(jw)|');

axis([0,1,0,1.1]);

set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);

set(gca,'YTickMode','manual','YTick',[0 attn ripple 1]);grid

subplot(2,2,2);plot(w/pi,db);title('Magnitude Frequency幅频特性(db)');

xlabel('w(/pi)');ylabel('dB');

axis([0,1,-30,5]);

set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);

set(gca,'YTickMode','manual','YTick',[-60 -as -rp 0]);grid

subplot(2,2,3);plot(w/pi,pha/pi);title('Phase Frequency相频特性');

xlabel('w(/pi)');ylabel('pha(/pi)');

axis([0,1,-1,1]);

subplot(2,2,4);plot(w/pi,grd);title('Group Delay群延时');

xlabel('w(/pi)');ylabel('Sample');

axis([0,1,0,15]);

set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);grid

freqz_m.m文件

function [db,mag,pha,grd,w]=freqz_m(b,a);

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

grd=grpdelay(b,a,w);

运行结果:

六、问题分析

6.1、双线性变换法分析:

与脉冲响应不变法相比,双线性变换的主要优点:靠频率的严重非线性关系得到S平面与Z平面的单值一一对应关系,整个jΩ轴单值对应于单位圆一周,这个关系就是式 所表示的,其中ω和Ω为非线性关系。如图图中看到,在零频率附近,Ω~ω接近于线性关系,Ω进一步增加时,ω增长变得缓慢, (ω终止于折叠频率处),所以双线性变换不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象。

双线性变换法的缺点:Ω与ω的非线性关系,导致数字滤波器的幅频响应相对于模拟滤波器的幅频响应有畸变,(使数字滤波器与模拟滤波器在响应与频率的对应关系上发生畸变)。例如,一个模拟微分器,它的幅度与频率是线性关系,但通过双线性变换后,就不可能得到数字微分器。另外,一个线性相位的模拟滤波器经双线性变换后,滤波器就不再有线性相位特性。

6.2、实验观察

在双线性变换法中,模拟频率与数字频率不再是线性关系,所以一个线性相位模拟器经过双线性变换后得到的数字滤波器不再保持原有的线性相位了。如以上实验过程中,采用双线性变化法设计的butter和cheby1数字滤波器,从图中可以看到这种非线性关系。

七、心得体会

这次课程设计,由于自己数字信号处理的理论课程跟不上进度,对数字滤波 器的设计缺少认识。而且需要运用 matlab 软件,所以比较吃力。设计过程,看 了一遍数字信号处理课程关于数字滤波器的设计的内容, 再通过利用参考文献与 网络,完成了用 Matlab 进行数字信号处理课程设计。通过课程设计,加深了对 课堂抽象概念的理解,巩固了课堂上所学的理论知识,并能很好地理解与掌握数 字信号处理中的基本概念、基本原理、基本分析方法。同时掌握编程方法和解决 实际问题的技巧。 与其他高级语言的程序设计相比, MATLAB 环境下可以更方便、 快捷地设计出具有严格线性相位的 FIR 滤波器,节省大量的编程时间,提高编程 效率,且参数的修改也十分方便,还可以进一步进行优化设计。相信随着版本的 不断提高,MATLAB 在数字滤波器技术中必将发挥更大的作用。同时,用 MATLAB 计算有关数字滤波器的设计参数,如 H(z)、h(n)等,对于数字滤波器的硬件实 现也提供了一条简单而准确的途径和依据。

八、参考文献

(1)数字信号处理教程  程佩青  清华大学出版社

(2)MATLAB信号处理详解 陈亚勇 人民邮电出版社

(3)应用MATLAB实现信号分析和处理  张明照  科学出版社

(4)数字信号处理及MATLAB实现  余成波 清华大学出版社

(5)MATLAB7.0在数字信号处理中的应用  罗军辉  机械工业出版社

(6)MATLAB信号处理  刘波  电子工业出版社

(7)Matlab信号处理与应用  董长虹  国防工业出版社

(8)数字信号处理原理及其MATLAB实现 从玉良  电子工业出版社

(9)数字信号处理基础及MATLAB实现 周辉 中国林业出版社

相关推荐