数字信号处理实验指导
- 格式:doc
- 大小:2.17 MB
- 文档页数:19
数字信号处理实验指导书实验一离散时间系统及离散卷积一、实验目的(1)熟悉MA TLAB软件的使用方法。
(2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。
(3)利用MATLAB绘制系统函数的零极点分布图、系统频率响应和单位脉冲响应。
(4)熟悉离散卷积的概念,并利用MATLAB计算离散卷积。
二、实验内容1、离散时间系统的单位脉冲响应(1)选择一个离散时间系统;(2)用笔进行差分方程的递推计算;(3)编制差分方程的递推计算程序;(4)在计算机上实现递推运算;(5)将程序计算结果与笔算的计算结果进行比较,验证程序运行的正确性;2、离散系统的幅频、相频的分析方法(1)给定一个系统的差分方程或单位取样响应;(2)用笔计算几个特殊的幅频、相频的值,画出示意曲线图;(3)编制离散系统的幅频、相频的分析程序;(4)在计算机上进行离散系统的幅频、相频特性计算,并画出曲线;(5)通过比较,验证程序的正确性;3、离散卷积的计算(1)选择两个有限长序列,用笔计算其线性卷积;(2)编制有限长序列线性卷积程序;(3)利用计算程序对(1)选择的有限长序列进行卷积运算;(4)比较结果验证程序的正确性。
三、实验要求a)自编并调试实验程序,并且,给实验程序加注释;b)按照实验内容完成笔算结果;c)验证计算程序的正确性,记录实验结果。
d) 至少要求一个除参考实例以外的实验结果,在实验报告中,要描述清楚实验结果对应的系统,并对实验结果进行解释说明。
实验二 离散傅立叶变换与快速傅立叶变换一、实验目的1、加深理解离散傅立叶变换及快速傅立叶变换概念;2、学会应用FFT 对典型信号进行频谱分析的方法;3、研究如何利用FFT 程序分析确定性时间连续信号;4、熟悉应用FFT 实现两个序列的线性卷积的方法。
二、实验原理在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我们可以使用离散Fouier 变换(DFT)。
这一变换不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N 时,它的DFT 定义为()()[]()∑==-=10N n nk NWn x n x DFT k X 10-≤≤N k反变换为()()[]()∑==-=-101N n nk N Wk X Nk X IDFT n x 10-≤≤N n有限长序列的DFT 是其Z 变换在单位圆上的等距采样,或者说是序列Fourier变换的等距采样,因此可以用于序列的谱分析。
目录第一部分MATLAB 简介 (1)一、MATLAB简介及其安装使用说明 (1)二、Matlab基本语句 (8)三、Matlab基本数值运算 (13)四、Matlab函数、及其调用方法 (17)第二部分实验内容 (18)实验一离散时间信号分析 (18)实验二离散时间系统分析 (24)实验三利用FFT进行谱分析 (31)实验四利用FFT实现快速卷积 (38)第一部分MATLAB 简介一、MATLAB简介及其安装使用说明1、MATLAB程序设计语言简介MATLAB,Matrix Laboratory的缩写,是由Mathworks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。
与大家常用的Fortran和C等高级语言相比,MATLAB的语法规则更简单,更贴近人的思维方式,被称之为“草稿纸式的语言”。
截至目前,MATLAB已经发展到7.x版,适用于所有32位的Windows操作系统,按NTFS(NT文件系统)格式下完全安装约需850 MB。
MATLAB软件主要由主包、仿真系统和工具箱三大部分组成。
2、MATLAB应用入门(1)MATLAB的安装与卸载MATLAB软件在用户接口设计上具有较强的亲和力,其安装过程比较典型,直接运行光盘中的安装向导支撑程序SETUP.exe,按其提示一步步选择即可。
MATLAB自身带有卸载程序,在其安装目录下有uninstall子目录,运行该目录下的uninstall.exe即可;也可以通过Windows系统的安装卸载程序进行卸载。
(2)MATLAB的启动与退出MATLAB安装完成后,会自动在Windows桌面上生成一个快捷方式,它是指向安装目录下\bin\win32\matlab.exe的链接,双击它即可来到MATLAB集成环境的基本窗口,通常称之为命令窗口。
MATLAB的退出与普通WIN32的程序一样,值得一提的是它有一个自身专有的快捷键Ctrl+Q。
《数字信号处理》实验指导书通信教研室安阳工学院二零零九年三月第1章 系统响应及系统稳定性1.1 实验目的● 学会运用MATLAB 求解离散时间系统的零状态响应;● 学会运用MATLAB 求解离散时间系统的单位取样响应;● 学会运用MATLAB 求解离散时间系统的卷积和。
1.2 实验原理及实例分析1.2.1 离散时间系统的响应离散时间LTI 系统可用线性常系数差分方程来描述,即∑∑==-=-Mj jN i i j n x b i n y a 00)()( (1-1) 其中,i a (0=i ,1,…,N )和j b (0=j ,1,…,M )为实常数。
MATLAB 中函数filter 可对式(13-1)的差分方程在指定时间范围内的输入序列所产生的响应进行求解。
函数filter 的语句格式为y=filter(b,a,x)其中,x 为输入的离散序列;y 为输出的离散序列;y 的长度与x 的长度一样;b 与a 分别为差分方程右端与左端的系数向量。
【实例1-1】 已知某LTI 系统的差分方程为)1(2)()2(2)1(4)(3-+=-+--n x n x n y n y n y试用MATLAB 命令绘出当激励信号为)()2/1()(n u n x n=时,该系统的零状态响应。
解:MATLAB 源程序为>>a=[3 -4 2];>>b=[1 2];>>n=0:30;>>x=(1/2).^n;>>y=filter(b,a,x);>>stem(n,y,'fill'),grid on>>xlabel('n'),title('系统响应y(n)')程序运行结果如图1-1所示。
1.2.2 离散时间系统的单位取样响应系统的单位取样响应定义为系统在)(n 激励下系统的零状态响应,用)(n h 表示。
实验一 离散时间信号与系统的时域分析(基础验证型)1.实验目的(1)熟悉离散时间信号的产生与基本运算。
(2)熟悉离散时间系统的时域特性。
(3)利用卷积方法观察分析系统的时域特性。
2.实验原理(1)典型离散时间信号单位样本序列(通常称为离散时间冲激或单位冲激)用[]n δ表示,其定义为1,0[]0,0n n n δ=⎧=⎨≠⎩(1.1)单位阶跃序列用[]n μ表示,其定义为1,0[]0,0n n n μ≥⎧=⎨<⎩ (1.2)指数序列由[]n x n A α= (1.3)给定。
其中A 和α可以是任意实数或任意复数,表示为00(),j j e A A e σωφα+==式(1.3)可改写为0000()00[]cos()sin()n j n n n x n A e A e n j A e n σωφσσωφωφ++==+++ (1.4)带有常数振幅的实正弦序列形如0[]cos()x n A n ωφ=+ (1.5)其中A ,0ω和φ是实数。
在式(1.4)和(1.5)中,参数A ,0ω和φ分别称为正弦序列[]x n 的振幅、角频率和初始相位。
002f ωπ=称为频率。
(2)序列的基本运算长度N 的两个序列[]x n 和[]h n 的乘积,产生长度也为N 的序列[]y n[][][]y n x n h n =⋅ (1.6)长度为N 的两个序列[]x n 和[]h n 相加,产生长度也为N 的序列[]y n[][][]y n x n h n =+ (1.7)用标量A 与长度为N 的序列[]x n 相乘,得到长度为N 的序列[]y n[][]y n A x n =⋅ (1.8)无限长序列[]x n 通过时间反转,可得到无限长序列[]y n[][]y n x n =- (1.9)无限长序列[]x n 通过M 延时,可得到无限长序列[]y n[][]y n x n M =- (1.10)若M 是一个负数,式(1.10)运算得到序列[]x n 的超前。
实验一 离散时间信号分析一、实验目的1.掌握各种常用的序列,理解其数学表达式和波形表示。
2.掌握在计算机中生成及绘制数字信号波形的方法。
3.掌握序列的相加、相乘、移位、反褶等基本运算及计算机实现与作用。
4.掌握线性卷积软件实现的方法。
5.掌握计算机的使用方法和常用系统软件及应用软件的使用。
6.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。
二、实验原理1.序列的基本概念离散时间信号在数学上可用时间序列来表示,其中代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为∞<<∞-n 的整数,n 取其它值)(n x 没有意义。
离散时间信号可以是由模拟信号通过采样得到,例如对)(t x a 模拟信号进行等间隔采样,采样间隔为T ,得到一个{})(nT x a 有序的数字序列就是离散时间信号,简称序列。
2.常用序列常用序列有:单位脉冲序列(单位采样))(n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。
3.序列的基本运算序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。
4.序列的卷积运算∑∞∞-*=-=)()()()()(n h n x m n h m x n y上式的运算关系称为卷积运算,式中代表两个序列卷积运算。
两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。
其计算的过程包括以下4个步骤。
(1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。
(2)移位:将)(m h -移位n ,得)(m n h -。
当n 为正数时,右移n 位;当n 为负数时,左移n 位。
(3)相乘:将)(m n h -和)(m x 的对应点值相乘。
(4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。
《数字信号处理实验》实验1 常用信号产生实验目的:学习用MATLAB编程产生各种常见信号。
实验内容:1、矩阵操作:输入矩阵:x=[1 2 3 4;5 4 3 2;3 4 5 6;7 6 5 4]引用 x的第二、三行;引用 x的第三、四列;求矩阵的转置;求矩阵的逆;2、单位脉冲序列:产生δ(n)函数;产生δ(n-3)函数;3、产生阶跃序列:产生U(n)序列;产生U(n-n0)序列;4、产生指数序列:x(n)=0.5n⎪⎭⎫⎝⎛4 35、产生正弦序列:x=2sin(2π*50/12+π/6)6、产生取样函数:7、产生白噪声:产生[0,1]上均匀分布的随机信号:产生均值为0,方差为1的高斯随机信号:8、生成一个幅度按指数衰减的正弦信号:x(t)=Asin(w0t+phi).*exp(-a*t)9、产生三角波:实验要求:打印出程序、图形及运行结果,并分析实验结果。
实验2 利用MATLAB 进行信号分析实验目的:学习用MATLAB 编程进行信号分析实验内容:1数字滤波器的频率响应:数字滤波器的系统函数为:H(z)=21214.013.02.0----++++z z z z , 求其幅频特性和相频特性:2、离散系统零极点图:b =[0.2 0.1 0.3 0.1 0.2];a=[1.0 -1.1 1.5 -0.7 0.3];画出其零极点图3、数字滤波器的冲激响应:b=[0.2 0.1 0.3 0.1 0.2];a=[1.0 -1.1 1.5 -0.7 0.3];求滤波器的冲激响应。
4、 计算离散卷积:x=[1 1 1 1 0 0];y=[2 2 3 4];求x(n)*y(n)。
5、 系统函数转换:(1)将H(z)=)5)(2)(3.0()1)(5.0)(1.0(------z z z z z z 转换为直接型结构。
(2)将H (z )=3213210.31.123.7105.065.06.11-------+--+-zz z z z z 转换为级联型结构。
数字信号处理实验指导书电子信息工程学院2012年6月目录实验一离散信号产生和基本运算 (3)实验二基于MATLAB的离散系统时域分析 (7)实验三基于ICETEK-F2812-A 教学系统软件的离散系统时域分析 (9)实验四基于MATLAB 的FFT 算法的应用 (16)实验五基于ICETEK-F2812-A 的FFT 算法分析 (18)实验六基于ICETEK-F2812-A 的数字滤波器设计 (20)实验七基于ICETEK-F2812-A的交通灯综合控制 (24)实验八基于BWDSP100的步进电机控制 (26)实验一离散信号产生和基本运算一、实验目的(1)掌握MATLAB最基本的矩阵运算语句。
(2)掌握对常用离散信号的理解与运算实现。
二、实验原理1.向量的生成a.利用冒号“:”运算生成向量,其语句格式有两种:A=m:nB=m:p:n第一种格式用于生成不长为1的均匀等分向量,m和n分别代表向量的起始值和终止值,n>m 。
第二种格式用于生成步长为p的均匀等分的向量。
b.利用函数linspace()生成向量,linspace()的调用格式为:A=linspace(m,n)B=linspace(m,n,s)第一种格式生成从起始值m开始到终止值n之间的线性等分的100元素的行向量。
第二种格式生成从起始值m开始到终止值n之间的s个线性等分点的行向量。
2.矩阵的算术运算a.加法和减法对于同维矩阵指令的A+BA-B对于矩阵和标量(一个数)的加减运算,指令为:A+3A-9b.乘法和除法运算A*B 是数学中的矩阵乘法,遵循矩阵乘法规则A.*B 是同维矩阵对应位置元素做乘法B=inv(A)是求矩阵的逆A/B 是数学中的矩阵除法,遵循矩阵除法规则A./B 是同维矩阵对应位置元素相除另'A表示矩阵的转置运算3.数组函数下面列举一些基本函数,他们的用法和格式都相同。
sin(A),cos(A),exp(A),log(A)(相当于ln)sqrt(A)开平方 abs(A)求模 real(A)求实部 imag(A)求虚部 式中A 可以是标量也可以是矩阵 例: 利用等差向量产生一个正弦值向量 t=0:0.1:10 A=sin(t) plot(A)这时候即可看到一个绘有正弦曲线的窗口弹出 另:每条语句后面加“;”表示不要显示当前语句的执行结果 不加“;”表示要显示当前语句的执行结果。
实验一 采样率对信号频谱的影响一、实验目的1.理解采样定理; 2.掌握采样频率确定方法; 3.理解频谱的概念; 4.理解三种频率之间的关系。
二、实验原理理想采样过程是连续信号x a (t )与冲激函数串M (t )的乘积的过程∑∞-∞=-=k skT t t M )()(δ (1))()()(ˆt M t x t xa a = (2) 式中T s 为采样间隔。
因此,理想采样过程可以看作是脉冲调制过程,调制信号是连续信号x a (t ),载波信号是冲激函数串M (t )。
显然)()()()()(ˆs k s ak s aa kT t kT xkT t t xt x-=-=∑∑∞-∞=∞-∞=δδ (3)所以,)(ˆt xa 实际上是x a (t )在离散时间kT s 上的取值的集合,即)(ˆs a kT x 。
对信号采样我们最关心的问题是,信号经过采样后是否会丢失信息,或者说能否不失真地恢复原来的模拟信号。
下面从频域出发,根据理想采样信号的频谱)(ˆΩj X a和原来模拟信号的频谱)(Ωj X 之间的关系,来讨论采样不失真的条件∑∞-∞=Ω-Ω=Ωk ssakj j X T j X )(1)(ˆ (4)上式表明,一个连续信号经过理想采样后,其频谱将以采样频率Ωs =2π/T s 为间隔周期延拓,其频谱的幅度与原模拟信号频谱的幅度相差一个常数因子1/T s 。
只要各延拓分量与原频谱分量之间不发生频率上的交叠,则可以完全恢复原来的模拟信号。
根据式(4)可知,要保证各延拓分量与原频谱分量之间不发生频率上的交叠,则必须满足Ωs ≥2Ω。
这就是奈奎斯特采样定理:要想连续信号采样后能够不失真地还原原信号,采样频率必须大于或等于被采样信号最高频率的两倍h s Ω≥Ω2,或者h s f f 2≥,或者2hs T T ≤(5) 即对于最高频率的信号一个周期内至少要采样两点,式中Ωh 、f s 、T h 分别为被采样模拟信号的最高角频率、频率和最小周期。
实验一 信号、系统及系统响应1、实验目的:(1)熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。
(2)熟悉时域离散系统的时域特性。
(3)利用卷积方法观察分析系统的时域特性。
(4)掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。
2、实验仪器:PC 机一台 MATLAB 软件 3、实验原理:采样是连续信号数字处理的第一个关键环节。
对一个连续信号)(t x a 进行理想采样的过程可用下式表示。
)()()(ˆt p t x t xa a = 其中)(ˆt xa 为)(t x a 的理想采样,)(t p 为周期冲激脉冲, 即 ∑∞-∞=-=n nT t t p )()(δ;由频域卷积定理,得)]([1)(ˆs a am j X Tj X Ω-Ω=Ω ※ 上式表明,)(ˆΩj X a为)(Ωj X a 的周期延拓,其延拓周期为采样角频率(T s /2π=Ω)。
采样前后的频谱示意图见课本。
只有满足采样定理时,才不会发生频率混叠失真。
在计算机上用高级语言计算)(ˆΩj X a 很不方便,下面给出用序列的傅里叶变换来计算)(ˆΩj X a的方法。
课本中(2.4.7)式∑∞-∞=-=r ajwr TT w j X T e X )]2([1)(π,表示序列的傅里叶变换)(jwe X 和模拟信号)(t x a 的傅里叶变换)(Ωj X a 之间的关系式。
与※式比较,可得T w jw a e X j X Ω==Ω|)()(ˆ,这说明两者之间只在频率度量上差一个常数因子T 。
实验过程中应注意这一差别。
为了在数字计算机上观察分析各种序列的频域特性,通常对)(jwe X 在[]π2,0上进行M 点采样来观察分析。
对长度为N 的有限长序列x(n), 有∑-=-=1)()(N n n jw jw k ke n x eX其中 1,,1,02-==M k k Mw k ,π通常M 应取得大一些,以便观察谱的细节变化。
实验一:离散时间序列卷积和MATLAB实现实验学时:2实验类型:验证实验要求:必修(一)实验目的:学会用MATLAB对信号与系统分析的方法,理解离散序列卷积和的计算对进行离散信号与系统分析的重要性。
(二)实验原理:1、离散时间序列f1(k)和f2(k)的卷积和定义:f(k)=f1(k)*f2(k)=∑∞-∞=-∙iikfif)(2)(12、在离散信号与系统分析中有两个与卷积和相关的重要结论:a、f(k)= ∑∞-∞=-∙iikif)()(δ=f(k)* δ(k)即离散序列可分解为一系列幅度由f(k)决定的单位序列δ(k)及其平移序列之积。
b、对线性时不变系统,设其输入序列为f(k),单位响应为h(k),其零状态响应为y(k),则有:y(k)= ∑∞-∞=-∙iikhif)()((三)实验内容:conv.m用来实现两个离散序列的线性卷积。
其调用格式是:y=conv(x,h)若x的长度为N,h的长度为M,则y的长度L=N+M-1。
题一:令x(n)= {}5,4,3,2,1,h(n)={}246326,,,,,,y(n)=x(n)*h(n),求y(n)。
要求用subplot和stem画出x(n),h(n),y(n)与n的离散序列图形。
题二:已知序列f1(k)=⎩⎨⎧≤≤其它0201k f2(k)=⎪⎪⎩⎪⎪⎨⎧===其它332211k k k调用conv()函数求上述两序列的卷积和题三:编写计算两离散序列卷积和f(k)=f1(k)*f2(k)的实用函数dconv().要求该程序在计算出卷积和f(k)的同时,还绘出序列f1(k),f2(k)和f(k)的时域波形图,并返回f(k)的非零样值点的对应向量。
function[f,k]=dconv(f1,f2,k1,k2)%f1(k),f2(k)及f(k)的对应序号向量分别为k1,k2和k 。
题四:试用MATLAB 计算如下所示序列f1(k)与f2(k)的卷积和f(k),绘出它们的时域波形,并说明序列f1(k)与f2(k)的时域宽度与序列f(k)的时域宽度的关系。
《数字信号处理》实验指导书实验序号:1 实验名称:利用FFT 进行谱分析和实现快速卷积 适用专业:通信工程、电子信息工程 学 时 数:4学时一、实验目的1.加深DFT 算法原理和基本性质的理解。
2.熟悉FFT 算法原理和FFT 子程序的应用。
3.学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析 误差及其原因,以便正确应用FFT 。
4.加深理解FFT 在实现数字滤波(或快速卷积)中的重要作用,更好的利用FFT 进行数字信号处理。
5.掌握循环卷积和线性卷积两者之间的关系。
二、实验原理1.在工程技术的许多分支中,要掌握的基本内容之一就是正确理解时域和频域的关系。
对于数字系统来说,就是要精通离散傅立叶变换,因此离散傅立叶变换在数字信号处理中占有十分重要的地位。
在实际应用中,有限长序列有相当重要的地位,有限长序列的离散傅氏变换(DFT)的定义:[][]10)(1)()(10)()()(1010-≤≤==-≤≤==∑∑-=--=N n W k X N k X IDFT n x N k W n x n x DFT k X N k nk N N n nk N快速傅里叶变换(FFT )并不是一种新的变换,而是离散傅里叶变换(DFT )的一种快速算法。
用FFT 对信号作频谱分析是学习数字信号处理的重要内容。
经常需要进行谱分析的信号是模拟信号和时域离散信号。
对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。
频谱分辨率直接和FFT 的变换区间N (即x(n)长度为N )有关,因为FFT 能够实现的频率分辨率是N /2π,因此要求D N ≤/2π。
可以根据此式选择FFT 的变换区间N 。
误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。
数字信号处理实验指导编写马令坤郭文强电气与电子信息学院实验一离散时间的信号和系统一、实验目的1、复习离散时间的信号和系统,复习离散时间重要类型的信号和它们的运算的实现。
2、复习离散时间信号理论中一些重要的结果,它们在数字信号处理中很有用。
二、实验原理1、典型序列单位采样序列;单位阶跃序列;实数指数序列;复数指数序列;正余弦序列;随机序列:MATLAB可用rand(1,N)和randn(1,N)来生成;周期序列。
2、序列的运算信号加;信号乘;改变比例;移位;折叠:fliplr(x);取样和:sum(x(n1:n2)) 取样积:prod(x(n1:n2));信号能量:sum(abs(x)^2);信号功率:sum(abs(x)^2)/length(x)3、一些有用的结果单位采样合成:奇偶合成:几何级数:序列相关:卷积运算:∑∞-∞=-=kknkxnx)()()(δ)()()(nxnxn xoe+=1||,11<-→∑∞=aaann对∑∞-∞=-=nyxllnynxlr称为移位),()()(,),(yxconv∑∑==---=MmNkkmknyamnxbny01) ()()(差分方程: 在Matlab 中: 三、实验内容 1.典型序列的实现单位阶跃序列;实数指数序列;复数指数序列;正余弦序列;随机序列用rand(1,N)和randn(1,N)来生成; 2.序列的运算给定序列x1=[1 2 3 4 5 6 7 8 9], ns1=-4; x2=[9 8 7 6 5 4 3 2 1], ns2=4 求:1) x1+x2; 2) y3=x1×x2;3) y1=0.5×x1+0.8×x2;4) y2=0.3×x1(n)×δ(n-6)+0.8×δ(n-5)×x2(n); 5) x1和x2的反折序列; 6) x1(n)和x2(n)的功率; 7) y3=x1*x2 (线性卷积);四、本实验用到的一些MATLAB 函数Stem(x,y),Plot(x,y): x 轴和y 轴均为线性刻度(Linear scale ) Xlable (‘x’), Ylable(‘y’) Title(‘x’)axis([xmin,xmax,ymin,ymax]):调整图轴的范围 Subplot(x,y,z):同时画出数个小图形在同一视窗中。
“数字信号处理”实验指导书(一)一、实验课程编码:105003 二、实验课程名称:数字信号处理三、实验项目名称: 应用MATLAB 分析离散信号频谱 四、实验目的掌握应用MATLAB 分析离散信号频谱的方法,即熟悉应用MATLAB 分析离散信号的函数。
五、主要设备安装有MATLAB 软件的电脑 六、实验内容编写MATLAB 程序,实现下面题目:1. 用快速卷积法计算下面两个序列的线性卷积。
)()4.0(s )(15n R n in n x =,)(9.0)(20n R n h n =2.已知序列[]()cos 0120n n N Nx n π⎧≤≤-⎪=⎨⎪⎩其它(1)计算该序列DTFT 的表达式()j X e ω,并画出N=10时的()j X e ω曲线; (2)编写MATLAB 程序,利用FFT 函数,计算N =10时,序列x [k ]的DTFT 在2m mNπω=的抽样值。
利用hold 函数,将抽样点画在()j X e ω的曲线上。
3.理解高密度频谱和高分辨率频谱的概念。
设)52.0cos()48.0(co )(n n s n x ππ+=(1) 取0≤n ≤9,求)(1k X(2) 将(1)中的)(x n 补零加长到0≤n ≤99,求)(2k X (3) 增加取样值的个数,取0≤n ≤99,求)(3k X4. 用DFT 对连续信号做谱分析。
设)50cos()100sin()200cos()(t t t t x a πππ++=,用DFT 分析)(t x a 的频谱结构,选择不同的截取长度Tp ,观察截断效应,试用加窗的方法减少谱间干扰。
选取的参数:(1) 频率s s f T Hz f /1 ,400==(2) 采样信号序列)()()(n w nT x n x a =,)(n w 是窗函数。
选取两种窗函数:矩形窗函数)()(n R n w N =和Hamming 窗,后者在程序中调用函数Hamming 产生宽度为N 的Hamming 窗函数向量。
实验一DES 综合外设实验1.1实验目的和要求DES320E 提供了键盘,液晶,数码管,直流电机,步进电机,交通灯等外设。
本实验学习这些外设的控制原理。
本实验为大型综合性实验,要求学生掌握DSP编程的基本方法。
通过实验,学生能编写外设控制程序。
例如,使用交通灯和定时器实现十字路口红绿灯的控制,直流电机的调速控制,使用液晶数码管显示和键盘实现计算器等。
1.2实验原理1) C54XX 的I O 空间读写C54XX 提供64K 字的I O 空间访问能力。
在汇编指令中分别提供了读和写命令:portr和p ortw。
你也可以在C中实现该I O 操作,方法如下:首先定义I O 空间变量,如:ioport unsigned portXXXX;/* 其中,XXXX 代表具体I O 口地址*/然后,就可以象访问普通变量一样访问I O 口。
如portXXXX=0x55;/* 将0x55 写到X XXX 指定的I O 口*/2) 交通灯的控制DES320E 提供了 12 个 LED,其控制地址为 IO 空间的 0x0c000h。
该地址的 D0-11比特位分别对应这12 个L ED。
将1写入可以点亮L ED,0 则关闭。
3) 直流电机控制DES320E 实验系统配有一个小型直流电机,可以 DSP 编程完成直流电机的调速控制。
其控制方法为:当向0x0e000h(…VC5402 的I O 空间)的D0 比特位写入1时,电机正向转动;当写入 0 时,电机反向转动。
用户可以通过 D0 位为 1 或 0 的持续时间(即D0 输出方波的占空比)控制电机的转速。
注意,使用直流电机时,应该先接通电机的电源,方法如下:向I O 空间的0x8000 地址的D0 比特位写入1。
若要关闭电源,请写入0。
当写入1或0时,你可以听到继电器动作的声音。
4) 步进电机的控制DES320E 实验系统还配有一个步进电机。
IO 空间的0x0f000h 的D0,D1,D2,D3 四个比特位分别对应步进电机的四相驱动端。
实验-离散系统时域分析一、实验目的1.了解时域离散信号的表示方法;2.掌握线性时不变系统输入输出之间的关系;3.掌握线性卷积运算;4.掌握用线性差分方程描述时域离散系统的输入输出;5.熟悉Matlab编程。
二、实验内容1. 编制nonrec.m函数文件,实现y(n)=h(n)*x(n).这里给定h(n)=R8(n), x(n)=nR16(n), 求y(n).nonrec.m函数文件:function y=nonrec(x,h)x=[x,zeros(1,length(h)-1)];w=zeros(1,length(h));for i=1:length(x)for j=length(h):-1:2w(j)=w(j-1);endw(1)=x(i);y(i)=w*h’;end主程序文件:x=0:15;h=ones(1,8);y=nonrec(x,h);n=0:22;stem(n,y);分析:线性卷积y(n)=x(n)*h(n)的长度为16+8-1=23,可利用y(n)=∑h(m)x(n-m)直接计算得n(n+1)/2, n≤7y(n)= 4(2n-7), 8≤n≤15(n+8)(23-n)/2, 16≤n≤22即 y=[ 0 1 3 6 10 15 21 28 36 44 52 60 68 76 84 92 8 4 75 65 54 42 29 15] ,与曲线相符。
2. 编制rec.m函数文件,实现y(n)=x(n)+∑aky(n-k). 这里给定a1=2rcosw0,a2=-0.952, r=0.95, w0=π/8, 求单位抽样响应h(n).rec.m函数文件:function y=rec(x,a,n)x=[x,zeros(1,n-length(x))]; %补零到所需长度sum=0;w=zeros(1,length(a));for i=1:ny(i)=sum+x(i);for j=length(a):-1:2w(j)=w(j-1);endw(1)=y(i);sum=w*a';end主程序文件:x=[1];a=[2*0.95*cos(pi/8),-0.95^2];h=rec(x,a,75); %取h(n)的长度为75点n=0:74;stem(n,h);分析计算:由题意, a1=2*0.95*cos(π/8), a2=-0.952, 所以,得到系统函数 H(z)=1/[1-1.9cos(π/8)z-1+0.952z-2],做逆Z变换得 h(n)=0.95ncos(πn/8)+ctg(π/8)*0.95nsin(πn/8),利用MATLAB直接画h(n), 即使用下列语句n=0:74;h=0.95.^n.*cos(pi.*n./8)+cot(pi/8).*(0.95.^n).*sin(pi.*n./8);stem(n,h);比较这两个结果。
实验一 离散时间信号与系统的时域分析(基础验证型)1.实验目的(1)熟悉离散时间信号的产生与基本运算。
(2)熟悉离散时间系统的时域特性。
(3)利用卷积方法观察分析系统的时域特性。
2.实验原理(1)典型离散时间信号单位样本序列(通常称为离散时间冲激或单位冲激)用[]n δ表示,其定义为1,0[]0,0n n n δ=⎧=⎨≠⎩(1.1) 单位阶跃序列用[]n μ表示,其定义为1,0[]0,0n n n μ≥⎧=⎨<⎩ (1.2) 指数序列由 []n x n A α= (1.3)给定。
其中A 和α可以是任意实数或任意复数,表示为00(),j j e A A e σωφα+==式(1.3)可改写为 0000()00[]cos()sin()n j n n n x n A e A e n j A e n σωφσσωφωφ++==+++ (1.4) 带有常数振幅的实正弦序列形如0[]cos()x n A n ωφ=+ (1.5)其中A ,0ω和φ是实数。
在式(1.4)和(1.5)中,参数A ,0ω和φ分别称为正弦序列[]x n 的振幅、角频率和初始相位。
002f ωπ=称为频率。
(2)序列的基本运算长度N 的两个序列[]x n 和[]h n 的乘积,产生长度也为N 的序列[]y n[][][]y n x n h n =⋅ (1.6)长度为N 的两个序列[]x n 和[]h n 相加,产生长度也为N 的序列[]y n[][][]y n x n h n =+ (1.7)用标量A 与长度为N 的序列[]x n 相乘,得到长度为N 的序列[]y n[][]y n A x n =⋅ (1.8)无限长序列[]x n 通过时间反转,可得到无限长序列[]y n[][]y n x n =- (1.9)无限长序列[]x n 通过M 延时,可得到无限长序列[]y n[][]y n x n M =- (1.10)若M 是一个负数,式(1.10)运算得到序列[]x n 的超前。
长度为N 的序列[]x n ,可被长度为M 的另一个序列[]g n 增补,得到长度为N M +的更长序列[]y n{}{}{}{}[][],[]y n x n g n = (1.11)(3)线性卷积一个线性时不变离散时间系统的响应[]y n 可以用它的单位冲激响应[]h n 和输入信号[]x n 的卷积来表示:[][][]()()k y n x n n x k h n k ∞=-∞=*=-∑ (1.12) []h n 和[]x n 可以是有限长,也可以是无限长。
为了计算机绘图观察方便,主要讨论有限长情况若[]h n 和[]x n 的长度分别为N 和M ,则[]y n 的长度为1L N M =+-。
式(1.12)所描述的卷积运算就是序列的移位、相乘和相加的过程。
(4)我们主要研究的线性时不变离散时间系统用形如00[][]N Mk k k k dy n k p x n k ==-=-∑∑ (1.13) 的线性常系数差分方程来描述。
其中,[]x n 和[]y n 分别为系统的输入和输出,k d 和k p 是常数。
离散时间系统的结束为max(,)N M ,它表征系统差分方程的阶数。
若假定系统是因果的,则式(1.13)可改写为1000[][][]NM k k k k d p y n y n k x n k d d ===--+-∑∑ (1.14)实验二 离散时间信号与系统的频域分析(基础验证型)1.实验目的(1)进一步加深DTFT 、DFT 和z 变换的算法原理和基本性质的理解。
(2)熟悉系统的频率响应和传输函数。
(3)学习用FFT 对时域离散信号进行谱分析的方法,了解可能出现的问题,以便在实际中正确应用FFT 。
2.实验原理(1)信号的频域表示序列[]x n 的离散时间傅里叶变换(DTFT )()j X e ω定义为 ()[]j j n n X e x n e ωω∞-=-∞=∑ (2.1) 通常()j X e ω是实变量ω的一个复函数,可表示为{}()()()()arg ()j j j j X e X e e X e ωωθωωθω== (2.2)()j X e ω称为幅度函数,()θω称为相位函数。
在很多应用中,傅里叶变换称为傅里叶谱,而()j X e ω和()θω分别称为幅度谱和相位谱。
()j X e ω的离散时间傅里叶逆变换[]x n 为1[]()2j j n x n X e e d πωωπωπ-=⎰ (2.3)当01n N ≤≤-时,有限长序列[]x n 的N 点离散傅里叶变换(DFT )为102[][],0,1,,1N kn N n j NN X k x n W k N W e π-=-==-=∑ (2.4)快速傅里叶变换FFT 并不是与DFT 不相同的另一种变换,而是为了减少DFT 运算次数的一种快速算法。
它是对变换式(2.4)进行一次次的分解,其长度2M N =。
它的运算效率高,程序比较简单,使用也十分方便。
序列[]x n 的z 变换()X z 定义为()[]n n X z x n z ∞-=-∞=∑ (2.5)其中z 是复变量。
使得z 变换()X z 收敛的一组z 的值ℜ称为它的收敛域(ROC )。
通常,序列[]x n 的z 变换的收敛域ℜ是z 平面内的一个环形区域:x x R z R -+<< (2.6)其中0x x R R -+≤<≤∞。
(2)频率响应若[]h n 表示一个线性时不变离散时间系统的冲激响应,对[]h n 做离散时间傅里叶变换得到其频率响应()j H e ω,即 ()[]j j n n H e h n e ωω∞-=-∞=∑ (2.7) 通常()j H e ω是一个周期为2π的ω的一个复函数,可表示为{}()()()()arg ()j j j j H e H e e H e ωωθωωθω== (2.8)()j H e ω称为幅度响应,()θω称为线性时不变离散时间系统的相位响应。
线性时不变离散时间系统的频率响应可以由输出序列[]y n 的傅里叶变换()j Y e ω与输入序列[]x n 的傅里叶变换()j X e ω相比得到,即 ()()()j j j Y e H e X e ωωω= (2.9) 对用形如式(1.14)所示线性常系数差分方程描述的线性时不变系统,频率响应()j H e ω可表示为00()M j kk j k N j kkk p e H e d e ωωω-=-==∑∑ (2.10) (3)传输函数线性时不变离散时间系统的冲激响应[]h n 的z 变换()H z ,称为传输函数或系统函数。
由线性时不变离散时间系统的卷积可知,线性时不变离散时间系统的传输函数可以由输出序列[]y n 的z 变换()Y z 与输入序列[]x n 的z 变换()X z 相比得到,即()()()Y z H z X z = (2.11)若()H z 的收敛域包括单位圆,则它与线性时不变离散时间系统的频率响应()j H e ω的关系如下: ()()j j z e H e H z ωω== (2.12)()()()j j j Y e H e X e ωωω= (2.13) 对用形如式(1.14)所示线性常系数差分方程描述的线性时不变系统,传输函数()H z 可表示为101101()()()M M NN p p z p z Y z H z X z d d z d z ----+++==+++ (2.14) 也可以用下面的形式表示:101101(1)()(1)M k k N k k z p H z d z ξλ-=-=-=-∏∏ (2.15) 其中12,,M ξξξ是()H z 的M 个零点,而12,,N λλλ是()H z 的N 个极点。
若N M >,在0z =处有另外N M -个零点,若N M <,在0z =处有另外M N -个极点。
稳定因果系统的传输函数()H z 的所有极点都必须严格在单位圆内。
3.实验内容(1)编写程序产生以下典型信号:11,03[]8,470,n n x n n n +≤≤⎧⎪=-≤≤⎨⎪⎩其它 (2.16)24,03[]3,470,n n x n n n -≤≤⎧⎪=-≤≤⎨⎪⎩其它 (2.17)3[]cos 4x n n π= (2.18)4[]sin 8x n n π= (2.19)(2)8N =和16N =分别对(1)中所给出的信号逐个进行谱分析,观察幅频特性。
(3)令34[][][]x n x n x n =+,用FFT 计算8点和16点离散傅里叶变换,并根据DFT 的对称性,由[]X k 求出33[]{[]}X k DFT x n =和44[]{[]}X k DFT x n =,并与(2)中的结果比较。
(提示:16N =时,33[][]x n x N n =-,44[][]x n x N n =--)(4)令34[][][]x n x n jx n =+,重复(3)。
(5)差分方程所描述的线性时不变离散时间系统如式(1.15)a.计算系统的频率响应,并画出幅频特性和相频特性曲线。
b.系统的输入信号和如式(1.16)所示,利用FFT 实现序列的线性卷积,并与实验一中的结果比较。
c.计算该系统的传输函数,生成零极点图,推断系统的稳定性。
4.实验报告要求(1)在实验报告中简述实验目的和实验原理要点。
(2)在实验报告中附上实验过程中记录的各典型信号的幅频特性曲线,与理论结果比较,并分析误差产生的原因以及用FFT 作谱分析时有关参数的选择方法。
(3)总结实验中的主要结论。
实验三 无限冲激响应数字滤波器的设计(综合型)1.实验目的(1)熟悉Butterworth 滤波器、Chebyshev 滤波器和椭圆滤波器的频率特性。
(2)熟悉用双线性变换方法设计低通、高通和带通IIR 数字滤波器的原理与方法。
(3)掌握数字滤波器的计算机仿真方法。
(4)通过观察对实际心电图信号的滤波作用,获得数字滤波的感性认识。
2.实验原理从模拟滤波器设计IIR 数字滤波器具有四种方法:微分-差分变换法、脉冲响应不变法、双线性变换法、匹配z 变换法;在工程上常用的是其中两种:脉冲响应不变法和双线性变换法。
脉冲响应不变法需要经历如下基本步骤:由已知系统传输函数()H s 计算系统冲激响应()h t ;对()h t 进行等间隔取样得到[]()h n h nT =;由[]h n 获得数字滤波器的系统响应()H z 。
这种方法非常直观,其算法宗旨是保证所设计的IIR 滤波器的脉冲响应和响应模拟滤波器的冲激响应在采样点上完全一致。
而双线性变换法的设计准则是使数字滤波器的频率响应与参考模拟滤波器的频率响应相似。