何圆数字信号处理课程设计Word下载.docx
- 文档编号:15116766
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:10
- 大小:259.62KB
何圆数字信号处理课程设计Word下载.docx
《何圆数字信号处理课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《何圆数字信号处理课程设计Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
目录
1.课程设计目的和意义3
2.课程设计题目描述和要求3
2.1设计要求3
2.2设计理论基础3
3.设计内容5
3.1设计思想5
3.2设计分析5
3.3MATLAB语言程序8
3.4程序运行结果9
3.5应注意的问题11
4.总结12
参考书目13
◆课程设计目的和意义
(1)学会MATLAB的使用,掌握MATLAB的程序设计方法;
(2)掌握数字信号处理的基本概念、基本理论和基本方法;
(3)掌握MATLAB设计IIR滤波器。
◆2.课程设计题目描述和要求
◆2.1设计要求
(1)使用双线性变换法设计一个数字Butterworth滤波器;
(2)设计指标是:
,,;
◆2.2设计理论基础
(1)数字滤波器技术的发展状况
数字滤波器是数字信号处理理论的一部分。
数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更为有希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。
具体来说,凡是用数字方式对信号进行滤波、变换、调制、解调、均衡、增强、压缩、固定、识别、产生等加工处理,都可纳入数字信号处理领域。
数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究。
关于数字滤波器,早在上世纪40年代末期就有人讨论它的可能性问题,在50年代也有人讨论过数字滤波器,但直到60年代中期,才开始形成关于数字滤波器的一整套完整的正规理论。
在这一时期,提出了各种各样的数字滤波器结构,有的以运算误差最小为特点,有的则以运算速度高见长,而有的则二者兼而有之。
出现了数字滤波器的各种通近访法和实现方法,对递归和非递归两类滤波器作了全面的比较,统一了数字滤波器的基本概念和理论。
(2)MATLAB软件简介
MATLAB是英文MatrixLaboratory(矩阵实验室)的缩写。
它是由美国Mathworks公司推出的用于数值计算和图形处理的数学计算环境。
在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。
它优秀的数值计算能力和卓越的数据可视化能力使其很快在同类软件中脱颖而出。
MATLAB系统最初是由CleveMoler用FORTRAN语言设计的,现在的MATLAB程序是Mathworks公司用C语言开发的。
它的第一版(DOS版本1.0)发行于1984年;
经过20年的不断改进,MATLAB已经成为国际上最流行的科学与工程计算的软件工具,最流行的计算机高级编程语言了,有人称它为“第四代”计算机语言,它在国内外高校和研究部门正扮演着重要的角色。
MATLAB语言的功能也越来越强大,不断适应新的要求提出新的解决方法。
可以预见,在科学运算、自动控制与科学绘图领域MATLAB语言将长期保持其独一无二的地位。
MATLAB语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同其他语言的特点。
无限长单位冲级响应数字滤波器的优点是可以利用模拟滤波器设计的结果,而模拟滤波器的设计有大量图表可查,方便简单。
但是它也有明显的缺点,就是相位的非线性;
若需线性相位,则要采用全通网络进行相位校正[3]。
IIR滤波器可以代替对非线性相位没有要求的FIR滤波器,同样幅度特性,IIR滤波器所需阶数比FIR滤波器的阶数少很多。
IIR数字滤波器的设计借助模拟滤波器原型,再将模拟滤波器转换成数字滤波器,这些过程已经成为一整套成熟的设计程序。
模拟滤波器的设计已经有了一套相当成熟的方法,它不但有完整的公式,而且还有较为完整的图表查询,因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大的方便。
已知数字低通滤波器的设计要求,首先设计一个等效的模拟滤波器,然后再将它映射为所期望的数字滤波器来确定。
在信号处理中,软件实现大多使用BASIC、FORTRAN和C语言,这在处理如FFT等复杂的数学问题和输出图形时有许多不便。
MATALAB是一种可视化的功能强大的系统分析和仿真工具,其工具箱中丰富的函数和作图功能正是其他语言所缺乏的。
本文在分析IIR滤波器设计法的基础上,用MATALAB语言实现了IIR滤波器的设计,通过修改某些参数和比较结果,提出了IIR滤波器设计中应注意的问题。
◆3.设计内容
◆3.1设计思想
IIR滤波器是无限脉冲响应滤波器,具有非线性的特点,它的设计方法与FIR滤波器的设计有很大的不同[1]。
本文使用双线性变换法设计IIR数字滤波器的基本设计思路是:
首先确定相关的技术参数;
其次,设计模拟滤波器(Butterworth滤波器),得到其传输函数;
第三,将模拟滤波器的从s平面转换到z平面,得到数字滤波器系统函数;
最后通过对的处理,输出幅频特性等曲线图[2]。
图1平面转换图
使用双线性变换法设计一个数字低通Butterworth滤波器,设计指标是:
,,
◆3.2设计分析
(1)求模拟低通的技术指标(各截止频率Ωp,Ωs和Ωc及阶数N),采样周期T(原则上T值可任取),在设计中T=2和T=1。
(1)
图2双线性变换法的频率变换关系
(2)
(3)
(4)
其中
(5)
(6)
(2)设计Butterworth低通滤波器,得到归一化函数去归一化后得到实际的传输函数[3]。
(3)用双线性变换法将变换为数字低通滤波器的系统函数:
(7)
图3双线性变换法幅度和相位特性的非线性映射
几个重要的函数:
①buttap()函数。
利用该函数,在给定阶数N后,可运算出Butterworth模拟滤波器原型[4],其传输函数为:
(8)
②bilinear()函数。
利用它实现双线性变换,将S域变换为Z域,其映射关系满足
(9)
③subplot()函数。
该函数用来分割图形窗口,可在一个图形窗口中输出多幅图。
其格式为subplot(m,n,I),表示图形窗口被分割成m行n列个子窗口,本子窗口是第I个[5]。
适合于有多个结果图的输出。
◆3.3MATLAB语言程序
Wp=0.2*pi;
Ws=0.6*pi;
Ap=2;
As=15;
T=2;
Fs=1/T;
wp=2*tan(Wp/2)/T;
ws=2*tan(Ws/2)/T;
[N,wc]=buttord(wp,ws,Ap,As,'
s'
);
fprintf('
滤波器阶数N=%.0f\n'
N)
[numa,dena]=butter(N,wc,'
[numd,dend]=bilinear(numa,dena,Fs);
disp('
分子系数b'
%.4e'
numd);
\n'
分子系数a'
dend);
w=linspace(0,pi,1024);
h=freqz(numd,dend,w);
plot(w/pi,20*log10(abs(h)));
axis([01-500]);
grid;
xlabel('
归一化频率'
ylabel('
幅度/dB'
◆3.4程序运行结果如下:
滤波器阶数N=2
分子系数b
1.5777e-0013.1555e-0011.5777e-001
分母系数a
1.0000e+000-6.0620e-0012.3730e-001
由运行结果可知,本程序所得的分子、分母多项式系数与理论计算结果相同。
其幅度响应如图2-9所示
图2-9(T=2s)二阶数字低通滤波器幅度特性
图2-9(T=1s)二阶数字低通滤波器幅度特性
◆3.5应注意的问题
数字滤波器的设计主要考虑两个技术要求,即幅频特性和相位特性。
幅频特性主要考虑的是频率成分的衰减情况,即选频,而相位特性主要影响时延,这一点在处理如语音合成、图形传输时至关重要[6]。
因此设计滤波器时,如果重点是选频,则不用严格要求相位特性,如果不仅考虑选频,还要考虑输出波形,则一定要使相位特性符合要求(如线性关系)。
(1)双线性变换法是采用非线性频率压缩方法,用实现向z平面的转换,从而达到选频的目的,避免了频率混叠。
但由于与Ω之间的关系是非线性的,影响到数字滤波器逼真地模仿模拟滤波器。
数字滤波器的幅频特性和相位特性均有一定的失真度,越大,失真越大[7]。
从和Ω的关系曲线看,在=0接近线性关系,失真度很低,这一点从图3的相位特性图中,就可以看到从=0到=0.2相位的响应是接近线性的。
所以双线性变换法适合于设计较小的滤波器,适合设计选频滤波器,不适合用来设计相位特性严格呈线性关系的滤波器。
(2)采样周期T的取值。
在双线性变换法中原则上T值可任取,实际上由于与Ω的非线性,T值越大,非线性的影响越大,相位和幅度的失真也就越大,如图2(N=6,T=2),因此T的取值不宜太大,一般取1。
(3)阶数N的取值。
在设计IIR滤波器时允许有一定宽度的过度带,它是单调下降的。
观察图4,就可以发现,N值越大,过度带越窄。
N值增大,将使滤波器网络变的复杂,相应地提高了成本,因此N值但不宜过大,可按照文中的相关公式计算[8]。
(4)使用MATALAB语言的函数时,应注意其入口参数的传递形式,应清楚入口参数和出口参数的含义,如buttap(),其入口参数是N,表示阶数,出口参数是z、p、k,分别表示零点(一个空矩阵)、极点和增益,pk只有这样才能在程序中正确应用相应的函数[9]。
(5)恰当使用MATALAB的图形对象属性,使图形显示得更加清楚,易于分析。
如在本文的结果图中,需要在横坐标中标出和的位置,程序中使用了set()函数,用坐标轴对象属性TickMode”表示X轴“X(刻度模式)、Tick”指向X轴刻度向量,并按向量值在坐标轴上画出刻度线),按照[0,0.2,0.3,1]取得向“X(量值,准确画出了和的位置。
量值,准确画出了和的位置。
◆4.总结
在整个课程设计完成后,感觉是有收获的。
以前上课学的大部分都是一些基本的东西,现在运用所学到的东西做出有一定实际应用价值的东西,对所学知识有了进一步的理解,并进行系统化。
了解到数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究。
在这个过程中,学到了很多在书本上学不到的东西,了解更多有关于Matlab软件的知识, MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
经过这次课程设计我对Matlab软件的操作更加熟练。
了解了数字滤波器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 课程设计