matlab数字信号处理实验指导
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电工电子实验中心实验指导书
数字信号处理
实验教程
二○○九年三月
高等学校电工电子实验系列
数字信号处理实验教程
主编石海霞周玉荣
攀枝花学院电气信息工程学院
电工电子实验中心
内容简介
数字信号处理是一门理论与实践紧密联系的课程,适当的上机实验有助于深入理解和巩固验证基本理论知识,了解并体会数字信号处理的CAD手段和方法,锻炼初学者用计算机和MATLAB语言及其工具箱函数解决数字信号处理算法的仿真和滤波器设计问题的能力。
本实验指导书结合数字信号处理的基本理论和基本内容设计了八个上机实验,每个实验对应一个主题内容,包括常见离散信号的MATLAB产生和图形显示、离散时间系统的时域分析、离散时间信号的DTFT、离散时间信号的Z变换、离散傅立叶变换DFT、快速傅立叶变换FFT及其应用、基于MATLAB的IIR和FIR数字滤波器设计等。此外,在附录中,还简单介绍了MATLAB的基本用法。每个实验中,均给出了实验方法和步骤,还有部分的MATLAB程序,通过实验可以使学生掌握数字信号处理的基本原理和方法。
目录
绪论 (1)
实验一常见离散信号的MATLAB产生和图形显示 (2)
实验二离散时间系统的时域分析 (6)
实验三离散时间信号的DTFT (9)
实验四离散时间信号的Z变换 (14)
实验五离散傅立叶变换DFT (18)
实验六快速傅立叶变换FFT及其应用 (24)
实验七基于MATLAB的IIR数字滤波器设计 (30)
实验八基于MATLAB的FIR数字滤波器设计 (33)
附录 (37)
参考文献 (40)
绪论
绪论
随着电子技术迅速地向数字化发展,《数字信号处理》越来越成为广大理工科,特别是IT领域的学生和技术人员的必修内容。
数字信号处理是把信号用数字或符号表示成序列,通过计算机或通用(专用)信号处理设备,用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。数字信号处理的理论和技术一出现就受到人们的极大关注,发展非常迅速。而且随着各种电子技术及计算机技术的飞速发展,数字信号处理的理论和技术还在不断丰富和完善,新的理论和技术层出不穷。目前数字信号处理已广泛地应用在语音、雷达、声纳、地震、图象、通信、控制、生物医学、遥感遥测、地质勘探、航空航天、故障检测、自动化仪表等领域。
数字信号处理是一门理论和实践、原理和应用结合紧密的课程,由于信号处理涉及大量的运算,可以说离开了计算机及相应的软件,就不可能解决任何稍微复杂的实际应用问题。Matlab是1984年美国Math Works公司的产品,MATLAB 语言具备高效、可视化及推理能力强等特点,它的推出得到了各个领域专家学者的广泛关注,其强大的扩展功能为各个领域的应用提供了基础,是目前工程界流行最广的科学计算语言。早在20世纪90年代中期,MATLAB就己成为国际公认的信号处理的标准软件和开发平台。从1996年后,美国新出版的信号处理教材就没有一本是不用MATLAB的。
本实验指导书结合数字信号处理的基本理论和基本内容,用科学计算语言MATLAB实现数字信号处理的方法和实践,通过实验用所学理论来分析解释程序的运行结果,进一步验证、理解和巩固学到的理论知识,从而达到掌握数字信号处理的基本原理和方法的目的。
实验一 常见离散信号的MATLAB 产生和图形显示
一、实验目的
1. 学会用MATLAB 在时域中产生一些基本的离散时间信号。 2. 了解信号的各种运算。
二、实验原理
(一)、序列的产生
由于MATLAB 数值计算的特点,用它来分析离散时间信号与系统是很方便的。离散信号是数字信号处理的最基础的内容,由于内存有限,MATLAB 无法表示无限序列。在MATLAB 中,可以用一个列向量来表示一个有限长度的序列,但是这种表示方法没有包含采样位置的信息,要完全表示x(n),要用x 和n 两个向量,例如
x(n)={2,1,0,2,3,-1,2,3} ↑ 在MATLAB 中表示为
n=[-4,-3,-2,-1,0,1,2,3]; x=[2,1,0,2,3,-1,2,3];
当序列从n=0开始,则不需要采样位置信息,这时可以只用x 来表示
1. 单位抽样序列
⎩⎨⎧=0
1
)(n δ
≠=n n 在MATLAB 中可以利用zeros()函数实现。
;
1)1();
,1(==x N zeros x
如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:
⎩⎨⎧=-0
1)(k n δ
≠=n k n
2.单位阶跃序列
⎩⎨⎧0
1
)(n u
00<≥n n 在MATLAB 中可以利用ones()函数实现。
),1(N ones x =
3.正弦序列
)/2sin()(ϕπ+=Fs fn A n x
在MATLAB 中
)
/***2sin(*1
:0fai Fs n f pi A x N n +=-=
4.复正弦序列
n j e n x ϖ=)(
在MATLAB 中
)
**exp(1
:0n w j x N n =-=
5.指数序列
n a n x =)(
在MATLAB 中
n
a x N n .^1
:0=-=
(二)、简单运算 1.信号加
)()()(21n x n x n x += 在MATLAB 中
x=x1+x2
注意:x1和x2应该具有相同的长度,位置对应,才能相加。否则,需要先通过Zeros 函数左右补零后再相加。
2.信号延迟