当前位置:文档之家› 数字信号处理自编实验讲义

数字信号处理自编实验讲义

数字信号处理自编实验讲义
数字信号处理自编实验讲义

贵州师范大学

数字信号处理实验讲义

陈世国编

实验一 离散时间信号的产生及信号的卷积和运算

一、实验室名称:数字信号处理实验室

二、实验项目名称:离散时间信号的产生及信号的卷积和运算 三、实验原理:

(一)常见的离散时间信号:

1. 单位抽样序列,或称为离散时间冲激,单位冲激:

???=0

1)(n δ

≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:

?

??=-01)(k n δ

0≠=n k

n

2.单位阶跃序列

??

?=0

1)(n u 00<≥n n 如果)(n u 在时间轴上延迟了k 个单位,得到)(k n u -即:

?

??=01

)(n u

k n k n <≥ 3.正弦序列

0()cos()x n A n ω?=+

这里,

,,0ωA 和φ都是实数,它们分别称为正弦信号()x n 的振幅,角频率和初始相位。

πω200=f 为频率。

4.复正弦序列

n j e n x ω=)(

5.实指数序列

n A n x α=)(

(二)、信号的卷积和运算

)(*)()()()(n h n x m n h m x n y m =-=

∑∞

-∞

=

(三)MATLAB 编程介绍:

MATLAB 是一套功能强大,但使用方便的工程计算及数据处理软件。其编程风格很简洁,没有太多的语法限制,所以使用起来非常方便,尤其对初学者来说,可以避免去阅读大量的指令系统,以便很快上手编程。值得注意得就是,MATLAB 中把所有参与处理的数据都视为矩阵,并且其函数众多,希望同学注意查看帮助,经过一段时间的训练就会慢慢熟练使用本软件了。关于更多的MATLAB 介绍,请大家查阅MATLAB 有关书籍及MATLAB 软件中的帮助。

本实验中使用到一些MATLAB 的基本函数,其中包括对矩阵操作的函数ones( )、pi 、rand( )、randn( )、zeros( ),基本函数 cos( ), exp( ), imag( ), real( ),数据分析函数sum( ),二维图形处理函数axis 、grid 、legend 、plot 、stem 、title 、xlabel 、ylabel 及通用功能图形函数clf 、subplot 等。 1. 单位脉冲序列

长度为N 的单位脉冲序列)(n δ可以通过下面的MATLAB 命令获得:

n=-(N-1):N-1

delt=[)1,1(-N zeros 1 )1,1(-N zeros ];

stem(n,delt)

延迟M 个采样点的长度为N 的单位脉冲序列)(M n -δ(M

n=0:N-1

deltd=[),1(M zeros 1 )1,1(--M N zeros ];

stem(n,deltd)

2. 单位阶跃序列

长度为N 的单位阶跃序列u(n)可以用下面的MATLAB 命令获得:

n=-(N-1):N-1

)];,1()

1,1([N ones N zeros u -=

stem(n,u)

延迟的单位阶跃序列可以使用类似于单位脉冲序列的方法获得。 3. 正弦序列

长度为N 的正弦序列在MATLAB 中实现:

)

/***2cos(*1

:0phase Fs n f pi A x N n +=-=

4. 复指数序列

长度为N 的指数序列在MATLAB 中实现:

)

,()**exp(1

:0x n stem n j x N n ω=-= 5. 实指数序列

长度为N 的实指数序列在MATLAB 中实现:

)

,(.^1:0x n stem n a x N n =-= 6. 随机序列

长度为N 的随机序列在MATLAB 中实现:

n=0:N-1

);,1(N rand x =

stem(n,x)

7.卷积和

x(n)和h(n)的卷积和的matlab 实现:

),(h x conv y =

stem(y)

四、实验目的:

数字信号处理系统中的信号都是以离散时间形态存在,所以对离散时间信号的研究是数字信号处理的基本所在。而要研究离散时间信号,首先需要产生出各种离散时间信号。MATLAB 是一套功能强大的工程计算及数据处理软件,广泛应用于工业,电子,医疗和建筑等众多领域。使用MATLAB 软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大的绘图功能,便于用户直观地输出处理结果。

通过本实验,学生将学习如何用MATLAB 产生一些常见的离散时间信号,实现信号的卷积运算,并通过MATLAB 中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。

五、实验内容:

编制程序产生前5种信号(长度可输入确定),并利用MA TLAB 中的基本图形函数绘出其图形。实现正弦序列和实指数序列的卷积和运算,并绘出其图形。

六、实验设备:计算机,matlab 软件 七、实验步骤:

本实验要求学生运用MATLAB 编程产生一些基本的离散时间信号,实现信号的卷积运算,并通过MATLAB 的几种绘图指令画出这些图形,以加深对相关教学内容的理解,同时也通过这些简单的函数练习了MATLAB 的使用。

八、实验报告要求

1.简述实验目的和原理。

2.整理好经过运行并证明是正确的程序并且加上详细的注释。 3.给出程序运行结果,并对结果加以分析。

实验二 离散时间信号的频域分析

一、实验室名称:数字信号处理实验室 二、实验项目名称:离散时间信号的频域分析 三、实验原理:

(一)DTFT 和DFT 的定义及其相互关系:

序列x[n] 的DTFT 定义:∑=∞

-∞

=-n jn ωj ω

x[n]e )X(e

它是关于自变量ω的复函数,且是以π2为周期的连续函数。)X(e j ω

可以表示为:

)(e jX )(e X )X(e j ωim j ωre j ω+=

其中,)(e

X j ω

re 和)(e X j ωim 分别是)X(e j ω的实部和虚部;还可以表示为:

)(ωj j ωj ωe )X(e )X(e θ=

其中,)X(e

j ω

和}arg{)()X(e j ω=ωθ分别是)X(e j ω的幅度函数和相位函数;它们都是ω的

实函数,也是以π2为周期的周期函数。 序列x[n]的N 点DFT 定义:

∑∑-=-=-===10

1

22][][)(][N n kn

N

N n kn N

j

k N

j

W n x e

n x e

X k X ππ

][k X 是周期为N 的序列。

)X(e j ω与][k X 的关系:][k X 是对)X(e j ω在一个周期中的谱的等间隔N 点采样,即:

k N

j ω)X(e k X π

ω2|

][=

=,

而)X(e j ω

可以通过对][k X 内插获得,即:

]2/)1)][(/2([1

)

22sin()

22sin(

]

[1

----=?--=

∑N N k j N k j ωe N

k N k

N k X N

)X(e πωπωπω

(二)使用到的MATLAB 命令:

i. 基于DTFT 离散时间信号分析函数:freqz ,real ,imag ,abs ,angle ,unwrap 。

函数freqz 可以用来计算一个以ωj e 的有理分式形式给出的序列的DTFT 值。freqz 的形式多样,常见的有H=freqz(num,den,w),其中num 表示序列有理分式DTFT 的分子多项式系数,den 表示分母多项式系数(均按z 的降幂排列),矢量w 表示在0~π2中给定的一系列频率点集合。freqz 函数的其他形式参见帮助。在求出DTFT 值后,可以使用函数real, imag, abs 和angle 分别求出并绘出其实部,虚部,幅度和相位谱。如果需要,还可以用unwrap 函数消除相位中的跳变。

ii.

求解序列DFT 的函数:fft ,ifft 。

函数fft(x)可以计算R 点序列的R 点DFT 值;而fft(x,N)则计算R 点序列的N 点DFT ,若

R>N ,则直接截取R 点DFT 的前N 点,若R

函数ifft(X)可以计算R 点的谱序列的R 点IDFT 值;而ifft(X,N)同fft(x,N)的情况。

四、实验目的:

信号的变换域分析是信号处理中一种有效的工具。在离散信号的时域分析中,我们通常将信号表示成单位采样序列][n δ的线性组合,而在频域中,我们将信号表示成复变量n j e ω-或

n N

j e

π2-的线性组合。通过这样的表示,可以将时域的离散序列映射到频域以便于进一步的处

理。

在本实验中,将学习利用MATLAB 计算离散时间信号的DTFT 和DFT ,并加深对其相互关系的理解。

五、实验内容:

(1)编程计算并画出下面DTFT 的实部,虚部,幅度和相位谱。

ω

ωωω

ωωω

32323418.00388.12828.110518.01553.01553.00518.0)(j j j j j j j e e e e e e e X ------+++++-=

观察其周期性及相位谱的连续性,如果不连续如何处理为连续? (2)计算16点序列 150,16

5cos

)(≤≤=n n n x π

的16点和32点DFT ,分别绘出幅度谱图形。

六、实验器材(设备、元器件):计算机,matlab 软件 七、实验步骤:

(1) 形式为ω

ωω

ωωωω

jN N j jM M j j j j e d e d d e p e p p e D e p e X ----++++++=

=......)()()(1010的序列DTFT 编程进行计算,绘出一个周期中其实部,虚部,幅度及相角的图形。

(2) 计算常见序列的DFT 和IDFT ,绘出其幅度谱图形。并解释DTFT 和DFT 的关系。

八、实验报告要求

1.简述实验目的和原理。

2.整理好经过运行并证明是正确的程序并且加上详细的注释。 3.给出程序运行结果,并对结果加以分析。

实验三 离散时间系统的变换域分析

一、实验室名称:数字信号处理实验室

二、实验项目名称:离散时间系统的变换域分析 三、实验原理:

(一) 线性时不变离散时间系统的变换域表示:

LTI 离散时间系统的时域差分方程为:

∑∑==-=-M

k k N

k k

k n x p k n y d

)()(

(1) 传递函数:

对上面的差分方程两边求z 变换,得:

∑∑∑∑=-=-=-=-=?

=N

k k

k

M

k k

k

M

k k k N

k k

k z d

z

p z X z Y z p z X z

d z Y 0

00

)

()

()()(

我们定义LTI 离散时间系统的输出的Z 变换Y(z)与输入的Z 变换X(z)的比值为该系统的传递函数,即)

()

()(z X z Y z H =

为系统的传递函数。 N

N M M z d z d d z p z p p z D z p z H ----++++++=

=......)()()(110110

分解因式 ∏-∏-=∑∑=

=-=-=-=-N

i i M

i i N

i i

k M

i i

k z z K

z

d z p z H 11

11

0)1()1()(λξ ,其中i ξ和i λ称为零、极点。

利用系统的传递函数)(z H ,我们可以分析系统的零极点,稳定性及实现结构等特点。 (2) 频率响应:

因为大多数离散时间信号都可以分解为n j e ω的线性组合,所以研究输入n j e ω-的响应具有极大的意义,即当输入为n j e n x ω=][时,输出为:

)()()(][)

(ωωωωωj n j m m

j n

j m n j m e H e e

m h e

e

m h n y ===

∑∑∞

-∞

=--∞

-∞

=

这里,∑∞

-∞

=-=

n n

j j e

n h e

H ωω

)()(是h(n)的DTFT ,称为LTI 离散时间系统的频率响应。

利用系统的频率响应)(ωj e H ,我们可以分析系统对各种频率成分的响应特性,并推出系统的特性(高通,低通,带通,带阻,线性相位等)。 (3) 系统传递函数与频率响应之间的关系:

从前面的推导可以看出,系统的传递函数是系统冲击响应序列的Z 变换,而系统的频率

响应是冲击响应的DTFT ,因此传递函数)(z H 与频率响应)(ωj e H 的关系为:

ωωj e z j z H e H ==|)()(

ω

ωωωω

ωω

jN N j jM M j j j j e d e d d e p e p p e D e p e H ----++++++==......)()()(1010

(二)使用到的MATLAB 命令:

(1) 分析系统传递函数的函数:tf2zp ,zp2tf ,zplane ,zp2sos ,residuez 。

函数tf2zp 的使用形式为[z,p,k]=tf2zp(num,den),其中输入num,den 分别表示有理分式Z 变换的分子和分母多项式系数(按z 的降幂排列),输出为系统的零点,极点和增益因子。函数zplane 可以对输入的有理分式Z 变换的分子和分母多项式或零极点坐标画系统的零极点图。zp2tf 的使用形式为[num,den]= zp2tf(z,p,k),其输入输出关系刚好与tf2zp 相反。函数zp2sos 的使用形式为sos=zp2sos(z,p,k),可以将一个用零极点及增益因子描述的系统分解为多个级联的二阶子系统。函数residuez 可以用来创建一个有理分式Z 变换的部分分式展开式。其使用形式有[r,p,k]=residuez(num,den)和[num,den]=residuez (r, p,k),前者输入为有理分式Z 变换的分子和分母多项式系数(按z 的降幂排列),输出的矢量r 表示留数和分子常数,矢量p 表示极点,矢量k 包含常数 η;而后者输入输出刚好相反。 另外还有根据系统的传递函数求冲击响应的函数impz ,filter 等,在LTI 离散时间系统的时域分析中都讨论过,这里就不再介绍了。

(2) 分析系统频率响应的函数:freqz ,real ,imag ,abs ,angle ,unwrap 。

(3) 由于系统的频率响应就是系统冲击响应序列的DTFT ,所以这些函数都是前面讨论过

的求解离散时间信号DTFT 的函数。

四、实验目的:

线性时不变(LTI )离散时间系统的特性完全可以用其冲击响应序列h[n]来表示,则前面给出的离散时间信号的变换分析手段也可以用于离散时间系统的分析中。在LTI 的离散时间系统变换域分析中,我们常用传递函数H(z)和频率响应H(e jw )来表示系统。

本实验通过使用MATLAB 函数对离散时间系统的一些特性进行仿真分析,以加深对离散时间系统的零极点、稳定性,频率响应等概念的理解。

五、实验内容:

已知有一个由下式给定的LTI 离散时间系统:

12345

12345

0.05280.7970.12950.12950.7970.0528()1 1.8107 2.4947 1.88010.95370.2336z z z z z H z z z z z z

----------+++++=-+-+-要求由键盘实现系统参数输入,并绘出幅频和相频响应曲线和零、极点分布图,进而分析系统的滤波特性和稳定性。

六、实验器材(设备、元器件):计算机,matlab 软件 七、实验步骤:

(1) 根据给定的差分方程或有理分式形式的传递函数求系统的零极点,绘制零极点图并分

析系统的稳定性。

(2) 给定系统的零极点及增益常数,求出系统的传递函数。

(3) 对以高阶有理分式形式给的系统传递函数进行一阶节或二阶节分解。 (4) 对给定的系统求频率响应,并绘出其实部,虚部,幅度和相位谱。

八、实验报告要求

1.简述实验目的和原理。

2.整理好经过运行并证明是正确的程序并且加上详细的注释。 3.给出程序运行结果,并对结果加以分析。

实验四 FFT算法与应用

一、实验室名称:数字信号处理实验室

二、实验项目名称:FFT算法与应用

三、实验原理:

一个连续信号的频谱可以用它的傅立叶变换表示为

(4-1)

如果对该信号进行理想采样,可以得到采样序列

(4-2)

同样可以对该序列进行z变换,其中T为采样周期

(4-3)

当的时候,我们就得到了序列的傅立叶变换

(4-4)

其中ω称为数字频率,它和模拟域频率的关系为

(4-5)

式中的是采样频率。上式说明数字频率是模拟频率对采样率的归一化。同模拟域的情况相

似,数字频率代表了序列值变化的速率,而序列的傅立叶变换称为序列的频谱。序列的傅立叶变换和对应的采样信号频谱具有下式的对应关系。

(4-6)

即序列的频谱是采样信号频谱的周期延拓。从式(4-6)可以看出,只要分析采样序列的频谱,就可以得到相应的连续信号的频谱。注意:这里的信号必须是带限信号,采样也必须满足Nyquist定理。

在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。无限长的序列也往往可以用有限长序列来逼近。对于有限长的序列我们可以使用离散傅立叶变换(DFT),这一变换可以很好地反应序列的频域特性,并且容易利用快速算法在计算机上实现。当序列的长度是N时,我们定义离散傅立叶变换为:

(4-7)

其中,它的反变换定义为:

(4-8)

根据式(4-3)和(4-7)令,则有

(4-9)

可以得到, 是z平面单位圆上幅角为的点,就是将单

位圆进行N等分以后第k个点。所以,X(k)是z变换在单位圆上的等距采样,或者说是序列傅立叶变换的等距采样。时域采样在满足Nyquist定理时,就不会发生频谱混叠;同样地,在频率域进行采样的时候,只要采样间隔足够小,也不会发生时域序列的混叠。

DFT是对序列傅立叶变换的等距采样,因此可以用于序列的频谱分析。在运用DFT进行频谱分析的时候可能有三种误差,分析如下:

(1)混叠现象

从式(4-6)中可以看出,序列的频谱是采样信号频谱的周期延拓,周期是2π/T,因此

当采样速率不满足Nyquist定理,即采样频率小于两倍的信号(这里指的是实信号)频率时,经过采样就会发生频谱混叠。这导致采样后的信号序列频谱不能真实地反映原信号的频谱。所以,在利用DFT分析连续信号频谱的时候,必须注意这一问题。避免混叠现象的唯一方法是保证采样的速率足够高,使频谱交叠的现象不出现。这就告诉我们,在确定信号的采样频率之前,需要对频谱的性质有所了解。在一般的情况下,为了保证高于折叠频率的分量不会出现,在采样之前,先用低通模拟滤波器对信号进行滤波。

(2)泄漏现象

实际中的信号序列往往很长,甚至是无限长序列。为了方便,我们往往用截短的序列来近似它们。这样可以使用较短的DFT来对信号进行频谱分析。这种截短等价于给原信号序列乘以一个矩形窗函数。而矩形窗函数的频谱不是有限带宽的,从而它和原信号的频谱进行卷积以后会扩展原信号的频谱。值得一提的是,泄漏是不能和混叠完全分离开的,因为泄露导致频谱的扩展,从而造成混叠。为了减小泄漏的影响,可以选择适当的窗函数使频谱的扩散减到最小。

(3)栅栏效应

因为DFT是对单位圆上z变换的均匀采样,所以它不可能将频谱视为一个连续函数。这样就产生了栅栏效应,从某种角度来看,用DFT来观看频谱就好像通过一个栅栏来观看一幅景象,只能在离散点上看到真实的频谱。这样的话就会有一些频谱的峰点或谷点被“栅栏”挡住,不能被我们观察到。减小栅栏效应的一个方法是在源序列的末端补一些零值,从而变动DFT的点数。这种方法的实质是认为地改变了对真实频谱采样的点数和位置,相当于搬动了“栅栏”的位置,从而使得原来被挡住的一些频谱的峰点或谷点显露出来。注意,这时候每根谱线多对应的频率和原来的已经不相同了。

从上面的分析过程可以看出,DFT可以用于信号的频谱分析,但必须注意可能产生的误差,在应用过程中要尽可能减小和消除这些误差的影响。

快速傅立叶变换FFT并不是与DFT不相同的另一种变换,而是为了减少DFT运算次数的一种快速算法。它是对变换式(4-7)进行一次次的分解,使其成为若干小点数DFT的组

合,从而减小运算量。常用的FFT是以2为基数,其长度。它的运算效率高,程序比较简单,使用也十分地方便。当需要进行变换的序列的长度不是2的整数次方的时候,为了使用以2为基的FFT,可以用末尾补零的方法,使其长度延长至2的整数次方。IFFT一般可以通过FFT程序来完成,比较式(4-7)和(4-8),只要对X(k)取共轭,进行FFT运算,然后再取共轭,并乘以因子1/N,就可以完成IFFT。

使用到的MATLAB命令:

函数fft(x)可以计算R点序列的R点DFT值;而fft(x,N)则计算R点序列的N点DFT,若R>N,则直接截取R点DFT的前N点,若R

四、实验目的:

1、在理论学习的基础上,通过本次实验,加深对快速傅里叶变换的理解,熟悉FFT算法。

2、熟悉应用FFT对典型信号进行频谱分析的方法。

3、了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。

五、实验内容:

编制信号产生子程序及本实验的频掊分析主程序。实验中需要用到的基本信号包括:

(1)高斯序列:

(2)衰减正弦序列:

(3)三角波序列:

(4) 反三角序列:

(5) 利用DFT计算下面两序列的线性卷积:

g[n]={3, 4, -2, 0, 1, -4},h[n]={1, -3, 0, 4, -2, 3}

说明:(1)、(2)、(3)、(4)至少选作2个,(5)必做。

六、实验器材(设备、元器件):计算机,matlab软件

七、实验步骤:

1、观察高斯序列的时域和频域特性

①固定信号中的参数p=8,改变q的值,使q分别等于2,4,8。观察它们的时域和幅

频特性,了解q取不同值的时候,对信号时域特性和幅频特性的影响。

②固定q=8,改变p,使p分别等于8,13,14,观察参数p变化对信号序列时域及幅频

特性的影响。注意p等于多少时,会发生明显的泄漏现象,混叠现象是否也随之出

现?记录实验中观察到的现象,绘制相应的时域序列和幅频特性曲线。

2、观察衰减正弦序列的时域和幅频特性

①令α=0.1并且f=0.0625,检查谱峰出现的位置是否正确,注意频谱的形状,绘制

幅频特性曲线。

②改变f=0.4375,再变化f=0.5625,观察这两种情况下,频谱的形状和谱峰出现的

位置,有无混叠和泄漏现象发生?说明产生现象的原因。

3、观察三角波序列和反三角波序列的时域和幅频特性

①用8点FFT分析信号和的幅频特性,观察两者的序列形状和频谱曲线有什么异同?

(注意:这时候的可以看作是经过圆周移位以后得到的)绘制两者的序列和幅频

特性曲线。

②在x

c (n)和x

d

(n) 的末尾补零,用16点FFT分析这两个信号的幅频特性,观察幅频特

性发生了什么变化?两个信号之间的FFT频谱还有没有相同之处?这些变化说明了

什么?

4. ①利用DFT的方式计算给出的线性卷积,注意选取正确的点数N;

②直接利用线性卷积函数计算所给序列的卷积,并与DFT计算结果进行比较。

八、实验报告要求

1.简述实验目的和原理。

2.整理好经过运行并证明是正确的程序并且加上详细的注释。

3.给出程序运行结果,并对结果加以分析。

实验五 iir 数字滤波器的设计

一、实验室名称:数字信号处理实验室 二、实验项目名称:iir 数字滤波器的设计 三、实验原理:

(一) 数字滤波器设计: (4) 数字滤波器设计步骤:

a. 整理给定的滤波器设计要求,得到参数化描述,即通带,阻带截止频率p ω和s ω,通带

阻带纹波p δ和s δ等数据。

b. 寻找一个数字系统函数G(z),使其频率响应逼近设计要求。

c. 选择合适的滤波器结构对满足要求的传递函数G(z)进行实现。 (5) 滤波器设计中的注意事项:

a. 设计要求的参数化:图1给出了一个典型的数字低通滤波器的幅频特性说明。

b. 滤波器类型选择:

在数字滤波器实现中可选择IIR 滤波器和FIR 滤波器两种。在实现相同幅频特性时,IIR 滤波器的阶数会相对FIR 滤波器的更低;而在实现中,对相同阶数的两种滤波器来看,对每个采样值所做的乘法数量,IIR 约为FIR 的两倍;另外,FIR 还可以方便地设计成线性相位滤波器。总的来说,IIR 滤波器除不能实现线性相位这一点外,由于阶数的原因,从计算复杂度上较FIR 滤波器有很大的优势,。

根据以上这些区别,结合实际的设计要求,就可以选择一款合适的滤波器。 c. 滤波器设计的方法:

由于IIR 滤波器和FIR 滤波器各自的结构特点,所以它们的设计方法也不一样。

在IIR 滤波器的设计中,常用的方法是:先根据设计要求寻找一个合适的模拟原型滤波器)(s H a ,然后根据一定的准则将此模拟原型滤波器转换为数字滤波器)(z G ,即为我们需要

S ω - P ω

- P ωS ω 通带 阻带 过渡带

图1.典型的数字LPF 幅频特性

设计的数字滤波器。

在FIR 滤波器设计中,一般使用比较直接的方法:根据设计的要求在时域对理想的冲击响应序列进行加窗逼近,或从频域对需要实现的频率响应特性进行采样逼近然后进行反FFT 。 d. 滤波器阶数估计:

IIR 滤波器的阶数就等于所选的模拟原型滤波器的阶数,所以其阶数确定主要是在模拟原型滤波器设计中进行的。

FIR 滤波器阶数估计可以根据很多工程中的经验公式,这些公式可以直接从设计的参数要求中估计滤波器阶数。例如,对FIR 低通滤波器,已知通带截止频率p ω,阻带截止频率s ω,最大通带纹波p δ和最大最带纹波s δ,则可以使用下面的公式估计其阶数:

π

ωωδδ2/)(6.1413)(log 2010p s s p N ---?

(6) IIR 数字滤波器的设计方法: (a ) 冲击响应不变法:

1. 对满足设计要求的模拟原型滤波器)(s H a 进行部分分式展开为: ∑=-=N

k k

k

a s s A s H 1)( )0)(Re(max

2. 基于)()(nT h n g a = ,可以得到:

∑=--=N

k T s k

z e A z G k 1

11)(

(b ) 双线性变换法:

1.对设计要求中给出的边界频率进行预畸处理,然后用得到的频率进行模拟滤波器设计,

得到模拟原型滤波器)(s H a 。

2.用双线性变换法求出数字滤波器:1

111|

)()(--+-==z z z a s H z G 。

(二) 使用到的MATLAB 命令:

IIR 滤波器设计函数:butter, buttord, chebwin, cheb1ord, cheb2ord, cheby1, cheby2, ellip, ellipord 。

例如:用下面的MATLAB 命令可估算一个Butterworth 滤波器的阶数:

[N, Wn] = buttord(Wp, Ws, Rp, Rs),

四、实验目的:

从理论上讲,任何的线性时不变(LTI )离散时间系统都可以看做一个数字滤波器,因

此设计数字滤波器实际就是设计离散时间系统。数字滤波器包括IIR (无限冲击响应)和FIR (有限冲击响应)型,在设计时通常采用不同的方法。

本实验通过使用MATLAB 函数对数字滤波器进行设计和实现,同时也加深学生对数字滤波器的常用指标和设计过程的理解。

五、实验内容:

1. 利用MATLAB 编程方法或利用MATLAB 中的fdatool 工具设计不同功能的iir 数字滤波器,对以下信号的不同成份进行滤波:

)2(2cos )2(2sin 2sin )(321+--+=n f n f n f n x πππ ;36.0;2.0;08.0321===f f f

(1) 设计一个低通iir 数字滤波器,滤除f2和f3; (2) 设计一个带通iir 数字滤波器,滤除f1和f3; (3) 设计一个带阻iir 数字滤波器,滤除f2;

(4) 设计一个高通iir 数字滤波器,滤除f1和f2; 指标要求如下:

各滤波器的通带和阻带截止频率根据滤波要求自己设定, 通带衰减:][1dB p ≤α。 阻带衰减: ][40dB S ≥α。

每组选作其中一个。滤波器设计方法自己选择(巴特沃斯型、切比雪夫I 型、切比雪夫II 型、椭圆型模拟滤波器或直接数字设计方法。

要求:(1)给出滤波器系数;

(2)绘出滤波器的幅度响应图。

(2)绘出信号滤波前后的时域波形和频域波形。

六、实验器材(设备、元器件):计算机,matlab 软件 七、实验步骤:

根据设计要求,给出IIR 数字滤波器参数,绘出它们的幅度和相位频响曲线,并讨论它们各自的实现形式和特点。

八、实验报告要求

1.简述实验目的和原理。

2.整理好经过运行并证明是正确的程序并且加上详细的注释。 3.给出程序运行结果,并对结果加以分析。

实验六 iir 数字滤波器的实现

一、实验室名称:数字信号处理实验室 二、实验项目名称:iir 数字滤波器的实现 三、实验原理:

IIR 数字滤波器的实现结构:

1、直接I 型 (1)系统函数

01

()

()()

1k

k M

k

k N

k

k b z

Y z H z X z a z -=-==

=-∑∑

(2)差分方程(N 阶)

1

()()()

k k N M

k k y n a y n k b x n k ===-+-∑∑

(3)结构流图

按差分方程可以写出。

2.直接II 型(典范型)

3、级联型

数按

极点进行因式分解

1

2

12

1

1

10111

1

11

11

(1)(1)(1)

()1(1)(1)(1)

k

k

k k

k

k

k M M M

k

k k k N

N N k

k k k k p z q z

q z b z

H Z A

a z c z d z

d z *----===---*-===---=

=----∑∏∏∑∏∏

其中,p k 为实零点,c k 为实极点;q k ,q k *表示复共轭零点,d k ,d k *表示复共轭极点,

M=M 1+2M 2,N=N 1+2N 2 再将共轭因子展开,构成实系数二阶因子,

则得:

为了方便,分子取正号,分母取负号;这样,流图上的系数均为正。最后,将两个一阶因子组合成二阶因子(或将一阶因子看成是二阶因子的退化形式),则有

12,k k ββ仅影响第k 对零点,同样12,k k αα仅影响第k 对极点,便于调节滤波器的频率特性。

所用的存储器的个数最少。4.并联型将H (Z )展成部分分式形

式:1

2111*1

110

(1)()1(1)(1)N N M N

k

k k k k k k k k k k A B g Z H Z G Z c Z d Z d Z ------===-=++---∑∑∑ 其中,,,,,k k k k k A B g c G 均为实数,*

k

d 与k d 复共轭当M

M N k

k

k G Z

--=∑项;M=N

时,该项为G 。

当M=N 时,将两个一阶实极点合为一项,将共轭极点化成实系数二阶多项式,H (Z )可表为

当N 为奇数时,包含一个一阶节,即例:M=N=3时,为奇数,故21110αγ==所以:其结

构图如下:

四、实验目的:

1.掌握用二阶节级联结构实现iir 数字滤波器的方法; 2.熟悉在CCS 环境下对IIR 滤波器的调试方法。 3.了解有限字长效应。

五、实验内容:

1. 利用实验五所设计的iir 数字滤波器,或再次利用MATLAB 中的fdatool 工具设计iir 数字滤波器,对以下信号的不同成份进行滤波:

)2(2cos )2(2sin 2sin )(321+--+=n f n f n f n x πππ ;36.0;2.0;08.0321===f f f

(1)设计一个低通iir 数字滤波器,滤除f2和f3; (2)设计一个带通iir 数字滤波器,滤除f1和f3; (3)设计一个高通iir 数字滤波器,滤除f1和f2; 指标要求如下:

各滤波器的通带和阻带截止频率根据滤波要求自己设定, 通带衰减:][2dB p ≤α。 阻带衰减: ][30dB S ≥α。

每组选作其中一个。滤波器设计方法选择椭圆型模拟滤波器设计方法。合适选择通带和阻带截止频率,使设计的滤波器阶数等于4,以便利用两个二阶节的级联形式在dsp 中实现。

2.在TMS320C5416 DSP 芯片上实现上述滤波器。

六、实验器材(设备、元器件):计算机,ICETEK-VC5416-EDU 实验箱。

数字信号处理实验二报告

实验二 IIR数字滤波器设计及软件实现 1.实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。 2.实验原理 设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。本实验要求读者调用如上函数直接设计IIR数字滤波器。 本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。 3. 实验内容及步骤 (1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1所示。由图可见,三路信号时域混叠无法在时域分离。但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。 图1 三路调幅信号st的时域波形和幅频特性曲线 (2)要求将st中三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为

数字信号处理基础实验指导书

《数字信号处理》实验指导书 光电工程学院二○○九年十月

实验一离散时间信号分析 一、实验目的 1.掌握各种常用的序列,理解其数学表达式和波形表示。 2.掌握在计算机中生成及绘制数字信号波形的方法。 3.掌握序列的相加、相乘、移位、反转等基本运算及计算机实现与作用。 4.掌握线性卷积软件实现的方法。 5.掌握计算机的使用方法和常用系统软件及应用软件的使用。 6.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列来表示,其中代表序列的第n个数字,n代表时间的序列,n的取值范围为的整数,n取其它值没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号进行等间隔采样,采样间隔为T,得到一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)、单位阶跃序列、矩形序列、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反转、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将和的变量换成,变成和,再将以纵轴为对称轴反褶成。 (2)移位:将移位,得。当为正数时,右移位;当为负数时,左

移位。 (3)相乘:将和的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得。 三、主要实验仪器及材料 微型计算机、Matlab软件6.5或更高版本。 四、实验内容 1.知识准备 认真复习以上基础理论,理解本实验所用到的实验原理。 2.离散时间信号(序列)的产生 利用MATLAB或C语言编程产生和绘制下列有限长序列: (1)单位脉冲序列 (2)单位阶跃序列 (3)矩形序列 (4)正弦型序列 (5)任意序列 3.序列的运算 利用MATLAB编程完成上述两序列的移位、反转、加法、乘法等运算,并绘制运算后序列的波形。 4.卷积运算 利用MATLAB编制一个计算两个序列线性卷积的通用程序,计算上述两序列,并绘制卷积后序列的波形。 5.上机调试并打印或记录实验结果。 6.完成实验报告。 五、实验报告要求 1. 简述实验原理及目的。 2. 给出上述序列的实验结果。 3. 列出计算卷积的公式,画出程序框图,并列出实验程序清单 (可略)(包括必要的程序说明)。 4. 记录调试运行情况及所遇问题的解决方法。 5. 给出实验结果,并对结果做出分析。 6. 简要回答思考题。 1 如何产生方波信号序列和锯齿波信号序列? 2 实验中所产生的正弦序列的频率是多少?是否是周期序列?

【实用资料】DSP实验指导答案.pdf

实验指导 实验一常用指令实验 一、实验目的 1、了解DSP开发系统的组成和结构; 2、掌握DSP开发系统的连接; 3、熟悉DSP的开发界面; 4、熟悉F2812系列的寻址系统; 5、掌握F2812系列常用指令的用法。 二、实验设备 计算机,CCS 2.0版软件,DSP仿真器,EXP4实验箱,2812CPU板。 三、实验原理 外部标志输出(软件可控信号)XF可用于在多处理器结构中相互通信,也可作通用输出脚。本实验中XF引脚先接到CPLD,然后把XF再通过CPLD输出给LED灯。XF为低时LED亮,XF为高时LED灭。 四、实验步骤与内容 1、系统连接 在进行DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示: 2、 在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的“红色指示灯”应点亮,否则DSP开发系统与计算机连接存在问题。 3、运行CCS程序 待计算机启动成功后,实验箱220V电源置“ON”,实验箱上电,启动CCS,此时

仿真器上的“绿色指示灯”应点亮,CCS正常启动,表明系统连接正常;否则仿真器 的连接、JTAG接口或CCS相关设置存在问题,这时需掉电检查仿真器的连接、JTAG接口连接是否正确,或检查CCS相关设置是否存在问题。 注:如出现上述问题,原因有二:其一,可能是系统连接错误或没有正常复位,应重新检查系统硬件并复位;其二,可能是软件安装或设置存在问题,应尝试调整软件系统设置,具体仿真器和仿真软件CCS的应用方法参见第三章。 ●成功运行CCS程序后,首先应熟悉CCS的用户界面; ●学会在CCS环境下创建工程文件、添加程序文件、编写程序、编译、装载、调试,学习如何使用观察窗口等。 4、修改样例程序,练习运用DSP其他指令进行相关编程实验。 注:实验系统连接及CCS相关设置是以后所有实验的基础,在以下实验中这部分内容将不再复述。 5、填写实验报告。 6、样例程序实验操作说明 仿真口选择开关K9拨到右侧,即仿真器选择连接右边的CPU:CPU2;启动CCS 2.0,在Project→Open菜单打开exp4_01_xf目录下面的工程文件“Example_281x_xf.pjt”,用下拉菜单中Project/Open,打开“Example_281x_xf.pjt”,双击“Source”,可查看源程序。在File→Load Program菜单下加载debug目录下的Example_281x_xf.out文件:加载完毕,单击“Run”运行程序; 注意:实验程序所在的目录不能包含中文,目录不能过深,如果想重新编译程序,去掉所有文件的只读属性。

数字信号处理实验(吴镇扬)答案-2

(1) 观察高斯序列的时域和幅频特性,固定信号)(n x a 中参数p=8,改变q 的 值,使q 分别等于2、4、8,观察他们的时域和幅频特性,了解当q 取不同值时,对信号序列的时域和幅频特性的影响;固定q=8,改变p,使p 分别等于8、13、14,观察参数p 变化对信号序列的时域和幅频特性的影响,注意p 等于多少时会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。 ()() ?????≤≤=-其他0150,2n e n x q p n a 解:程序见附录程序一: P=8,q 变化时: t/T x a (n ) k X a (k ) t/T x a (n ) p=8 q=4 k X a (k ) p=8 q=4 t/T x a (n ) p=8 q=8 k X a (k ) p=8 q=8 幅频特性 时域特性

t/T x a (n ) p=8 q=8 k X a (k ) p=8 q=8 t/T x a (n ) 5 10 15 k X a (k ) p=13 q=8 t/T x a (n ) p=14 q=8 5 10 15 k X a (k ) p=14 q=8 时域特性幅频特性 分析: 由高斯序列表达式知n=p 为期对称轴; 当p 取固定值时,时域图都关于n=8对称截取长度为周期的整数倍,没有发生明显的泄漏现象;但存在混叠,当q 由2增加至8过程中,时域图形变化越来越平缓,中间包络越来越大,可能函数周期开始增加,频率降低,渐渐小于fs/2,混叠减弱; 当q 值固定不变,p 变化时,时域对称中轴右移,截取的时域长度渐渐地不再是周期的整数倍,开始无法代表一个周期,泄漏现象也来越明显,因而图形越来越偏离真实值, p=14时的泄漏现象最为明显,混叠可能也随之出现;

数字信号处理实验程序2.

2.1 clc close all; n=0:15; p=8;q=2; x=exp(-(n-p.^2/q; figure(1; subplot(3,1,1; stem(n,x; title('exp(-(n-p^2/q,p=8,q=2'; xk1=fft(x,16; q=4; x=exp(-(n-p.^2/q; subplot(3,1,2; xk2=fft(x,16; stem(n,x; title('exp(-(n-p^2/q,p=8,q=4'; q=8; x=exp(-(n-p.^2/q;

xk3=fft(x,16; subplot(3,1,3; stem(n,x; title('exp(-(n-p^2/q,p=8,q=8';%时域特性figure(2; subplot(3,1,1; stem(n,abs(xk1; title('exp(-(n-p^2/q,p=8,q=2'; subplot(3,1,2; stem(n,abs(xk2; title('exp(-(n-p^2/q,p=8,q=4'; subplot(3,1,3; stem(n,abs(xk3; title('exp(-(n-p^2/q,p=8,q=8';%频域特性%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%% p=8;q=8; figure(3; subplot(3,1,1; stem(n,x; title('exp(-(n-p^2/q,p=8,q=8';

xk1=fft(x,16; p=13; x=exp(-(n-p.^2/q; subplot(3,1,2; xk2=fft(x,16; stem(n,x; title('exp(-(n-p^2/q,p=13,q=8'; p=14; x=exp(-(n-p.^2/q; xk3=fft(x,16; subplot(3,1,3; stem(n,x; title('exp(-(n-p^2/q,p=14,q=8';%时域特性figure(4; subplot(3,1,1; stem(n,abs(xk1; title('exp(-(n-p^2/q,p=8,q=8'; subplot(3,1,2; stem(n,abs(xk2; title('exp(-(n-p^2/q,p=13,q=8'; subplot(3,1,3;

DSP实验报告

实验0 实验设备安装才CCS调试环境 实验目的: 按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。 实验步骤: 以演示实验一为例: 1.使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源; 2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStart\sinewave\”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load Program”装载debug目录下的程序sinewave.out; 3.打开源文件exer3.asm,在注释行“set breakpoint in CCS !!!”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示; 4.点击主菜单“View->Graph->Time/Frequency…”,屏幕会出现图形窗口设置对话框 5.双击Start Address,将其改为y0;双击Acquisition Buffer Size,将其改为1; DSP Data Type设置成16-bit signed integer,如下图所示; 6.点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察 7.点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果: 心得体会: 通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。熟悉了DSP实验箱基本模块。让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。

数字信号处理实验报告(实验1_4)

实验一 MATLAB 仿真软件的基本操作命令和使用方法 实验容 1、帮助命令 使用 help 命令,查找 sqrt (开方)函数的使用方法; 2、MATLAB 命令窗口 (1)在MATLAB 命令窗口直接输入命令行计算3 1)5.0sin(21+=πy 的值; (2)求多项式 p(x) = x3 + 2x+ 4的根; 3、矩阵运算 (1)矩阵的乘法 已知 A=[1 2;3 4], B=[5 5;7 8],求 A^2*B

(2)矩阵的行列式 已知A=[1 2 3;4 5 6;7 8 9],求A (3)矩阵的转置及共轭转置 已知A=[1 2 3;4 5 6;7 8 9],求A' 已知B=[5+i,2-i,1;6*i,4,9-i], 求B.' , B' (4)特征值、特征向量、特征多项式 已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征值、特征向量、特征多项式;

(5)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3 列前2 个元素;A 中所有列第2,3 行的元素; 4、Matlab 基本编程方法 (1)编写命令文件:计算1+2+…+n<2000 时的最大n 值;

(2)编写函数文件:分别用for 和while 循环结构编写程序,求 2 的0 到15 次幂的和。

5、MATLAB基本绘图命令 (1)绘制余弦曲线 y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π] (3)绘制[0,4π]区间上的 x1=10sint 曲线,并要求: (a)线形为点划线、颜色为红色、数据点标记为加号; (b)坐标轴控制:显示围、刻度线、比例、网络线 (c)标注控制:坐标轴名称、标题、相应文本; >> clear;

数字信号处理实验一

一、实验目的 1. 通过本次实验回忆并熟悉MATLAB这个软件。 2. 通过本次实验学会如何利用MATLAB进行序列的简单运算。 3. 通过本次实验深刻理解理论课上的数字信号处理的一个常见方法——对时刻n的样本附近的一些样本求平均,产生所需的输出信号。 3. 通过振幅调制信号的产生来理解载波信号与调制信号之间的关系。 二、实验内容 1. 编写程序在MATLAB中实现从被加性噪声污染的信号中移除噪声的算法,本次试验采用三点滑动平均算法,可直接输入程序P1.5。 2. 通过运行程序得出的结果回答习题Q1.31-Q1.33的问题,加深对算法思想的理解。 3. 编写程序在MATLAB中实现振幅调制信号产生的算法,可直接输入程序P1.6。 4. 通过运行程序得出的结果回答习题Q1.34-Q1.35的问题,加深对算法思想的理解。 三、主要算法与程序 1. 三点滑动平均算法的核心程序: %程序P1.5 %通过平均的信号平滑 clf; R=51; d=0.8*(rand(R,1)-0.5);%产生随噪声 m=0:R-1; s=2*m.*(0.9.^m);%产生为污染的信号 x=s+d';%产生被噪音污染的信号 subplot(2,1,1); plot(m,d','r-',m,s,'g--',m,x,'b-.');

xlabel('时间序号n');ylabel('振幅'); legend('d[n]','s[n]','x[n]'); x1=[0 0 x];x2=[0 x 0];x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2); plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n]','s[n]'); xlabel('时间序号n');ylabel('振幅'); 2. 振幅调制信号的产生核心程序:(由于要几个结果,因此利用subplot函数画图) %程序P1.6 %振幅调制信号的产生 n=0:100; m=0.1;fH=0.1;fL=0.01; m1=0.3;fH1=0.3;fL1=0.03; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; xH1=sin(2*pi*fH1*n); xL1=sin(2*pi*fL1*n); y1=(1+m1*xL).*xH; y2=(1+m*xL).*xH1; y3=(1+m*xL1).*xH; subplot(2,2,1); stem(n,y); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.1;fH=0.1;fL=0.01;'); subplot(2,2,2); stem(n,y1); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.1;fL=0.01;'); subplot(2,2,3); stem(n,y2); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.3;fL=0.01;'); subplot(2,2,4); stem(n,y3); grid;

数字信号处理实验答案完整版

数字信号处理实验答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

实验一熟悉Matlab环境 一、实验目的 1.熟悉MATLAB的主要操作命令。 2.学会简单的矩阵输入和数据读写。 3.掌握简单的绘图命令。 4.用MATLAB编程并学会创建函数。 5.观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。 clear all; a=[1 2 3 4]; b=[3 4 5 6]; c=a+b; d=a-b; e=a.*b; f=a./b; g=a.^b; n=1:4; subplot(4,2,1);stem(n,a); xlabel('n');xlim([0 5]);ylabel('A'); subplot(4,2,2);stem(n,b); xlabel('n');xlim([0 5]);ylabel('B'); subplot(4,2,3);stem(n,c); xlabel('n');xlim([0 5]);ylabel('C'); subplot(4,2,4);stem(n,d); xlabel('n');xlim([0 5]);ylabel('D'); subplot(4,2,5);stem(n,e); xlabel('n');xlim([0 5]);ylabel('E'); subplot(4,2,6);stem(n,f); xlabel('n');xlim([0 5]);ylabel('F'); subplot(4,2,7);stem(n,g); xlabel('n');xlim([0 5]);ylabel('G'); (2)用MATLAB实现下列序列: a) x(n)= 0≤n≤15 b) x(n)=e+3j)n 0≤n≤15 c) x(n)=3cosπn+π)+2sinπn+π) 0≤n≤15 d) 将c)中的x(n)扩展为以16为周期的函数x(n)=x(n+16),绘出四个周期。

DSP实验指导书(DSP处理器原理与应用)

实验一:DSP软件集成开发环境CCS 一. 实验目的 1.了解DSP 软件开发集成环境Code Composer Studio (CCS) 的安装和配置过程; 2.熟悉并掌握CCS 的操作环境和基本功能,了解DSP软件开发的一般流程: (1) 学习创建工程和管理工程的方法; (2) 了解工程文件和映像文件的基本内容; (3) 了解基本的编译和调试功能; (4) 学习使用观察窗口。 二. 实验设备 计算机、Code Composer Studio 2.2 或以上版本 三. 背景知识 1.DSP 应用系统开发一般需要借助以下调试工具: ―软件集成开发环境(CCS):完成系统的软件开发,进行软件和硬件仿真调试; ―硬件开发及测试平台:实现系统的硬件仿真与调试,包括仿真器和评估模块。 https://www.doczj.com/doc/346567086.html,S 集成了适用于所有TI 器件的源码编辑、编译链接、代码性能评估、调试仿真等功能,为 设计人员提供了一个完整的嵌入式系统软件开发环境。 3.系统软件部分可以通过CCS 建立的工程文件进行管理,工程文件一般包含以下几种文件: ―源程序文件:C 语言或汇编语言文件(*.ASM 或*.C) ―头文件(*.H) ―命令文件(*.CMD) ―库文件(*.LIB, *.OBJ)

四. 实验步骤 1. 创建工程文件 双击 CCStudio 图标,启动 CCS ,CCS 的初始界面包括工程管理区和工作区两部分。 在菜单中选择“Project —>New…”,弹出“Project Create ”窗口: 在“Project ”编辑框内填入项目名称,例如“hello1”;有必要的话,可以更改项目文件夹位置 (Location);“Project ”下拉框用以确定输出文件类型;目标硬件类型在“Target ”下拉框中指定。 点击“完成”后,CCS 自动在指定目录下生成“hello1.pjt ”工程文件。工程文件中保存了对应工程的设置信息和内部文件的引用情况。展开工程管理窗口“Projects ”下的“hello1.pjt ”,可以看到所有项目均为空。 任务 1:在 notepad 中打开“hello1.pjt ”,了解并记录工程文件提供的设置信息 若标题栏显示xxxx Emulator, 则需要先运行 Setup CCS, 选择合适的软件仿真环境

数字信号处理实验(吴镇扬)答案-4

实验四 有限长单位脉冲响应滤波器设计 朱方方 0806020433 通信四班 (1) 设计一个线性相位FIR 高通滤波器,通带边界频率为0.6π,阻带边界频率为0.4π,阻 带衰减不小于40dB 。要求给出h(n)的解析式,并用MATLAB 绘出时域波形和幅频特性。 解: (1) 求数字边界频率: 0.6 , .c r ωπωπ== (2) 求理想滤波器的边界频率: 0.5n ωπ= (3) 求理想单位脉冲响应: []d s i n ()s i n [()] () ()1n n n n n n h n n παωαα παωα π?-- -≠??-=? ? -=?? (4) 选择窗函数。阻带最小衰减为-40dB ,因此选择海明窗(其阻带最小衰减为-44dB);滤 波器的过渡带宽为0.6π-0.4π=0.2π,因此 6.21 0.231 , 152 N N N ππα-=?=== (5) 求FIR 滤波器的单位脉冲响应h(n): []31d sin (15)sin[0.5(15)] 1cos ()15()()()15(15)1 15 n n n R n n h n w n h n n n ππππ?---????-? ?≠? ???==-???? ? ?=? 程序: clear; N=31; n=0:N-1; hd=(sin(pi*(n-15))-sin(0.5*pi*(n-15)))./(pi *(n-15)); hd(16)=0.5; win=hanning(N); h=win'.*hd; figure; stem(n,h); xlabel('n'); ylabel('h(n)'); grid; title('FIR 高通滤波单位脉冲响应h(n)'); [H,w]=freqz(h,1); H=20*log10(abs(H)); figure;3 plot(w/pi,H); axis([0 1 -100 10]); xlabel('\omega/\pi'); ylabel('幅度/dB'); grid; title('FIR 高通滤波器,hanning 窗,N=31');

数字信号处理实验及参考程序

数字信号处理实验实验一离散时间信号与系统及MA TLAB实现 1.单位冲激信号: n = -5:5; x = (n==0); subplot(122); stem(n, x); 2.单位阶跃信号: x=zeros(1,11); n0=0; n1=-5; n2=5; n = n1:n2; x(:,n+6) = ((n-n0)>=0); stem(n,x); 3.正弦序列: n = 0:1/3200:1/100; x=3*sin(200*pi*n+1.2); stem(n,x); 4.指数序列 n = 0:1/2:10; x1= 3*(0.7.^n); x2=3*exp((0.7+j*314)*n); subplot(221); stem(n,x1); subplot(222); stem(n,x2); 5.信号延迟 n=0:20; Y1=sin(100*n); Y2=sin(100*(n-3)); subplot(221); stem(n,Y1); subplot(222); stem(n,Y2);

6.信号相加 X1=[2 0.5 0.9 1 0 0 0 0]; X2=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7]; X=X1+X2; stem(X); 7.信号翻转 X1=[2 0.5 0.9 1]; n=1:4; X2=X1(5-n); subplot(221); stem(n,X1); subplot(222); stem(n,X2); 8.用MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。a=[-2 0 1 -1 3]; b=[1 2 0 -1]; c=conv(a,b); M=length(c)-1; n=0:1:M; stem(n,c); xlabel('n'); ylabel('幅度'); 9.用MA TLAB计算差分方程 当输入序列为时的输出结果。 N=41; a=[0.8 -0.44 0.36 0.22]; b=[1 0.7 -0.45 -0.6]; x=[1 zeros(1,N-1)]; k=0:1:N-1; y=filter(a,b,x); stem(k,y) xlabel('n'); ylabel('幅度') 10.冲激响应impz N=64; a=[0.8 -0.44 0.36 0.22];

实验一 基于Matlab的数字信号处理基本

实验一 基于Matlab 的数字信号处理基本操作 一、 实验目的:学会运用MA TLAB 表示的常用离散时间信号;学会运用MA TLAB 实现离 散时间信号的基本运算。 二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。 三、 实验内容: (一) 离散时间信号在MATLAB 中的表示 离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(n x 来表示,自变量必须是整数。 离散时间信号的波形绘制在MATLAB 中一般用stem 函数。stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。 1. 单位取样序列 单位取样序列)(n δ,也称为单位冲激序列,定义为 ) 0() 0(0 1)(≠=?? ?=n n n δ 要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即 function y=impDT(n) y=(n==0); %当参数为0时冲激为1,否则为0 调用该函数时n 必须为整数或整数向量。 【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。 解:MATLAB 源程序为 >>n=-3:3; >>x=impDT(n); >>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1]) 程序运行结果如图1-1所示。 图1-1 单位冲激序列

DSP实验指导书

第一章实验设备说明一.ICETEK–F28335-A评估板技术指标 DSP控制技术 实验指导书 北京信息科技大学自动化学院 2011年4月 1 主处理芯片:TMS320F28335,运行速度为150MHz; 具有一个浮点内核,处理速度更快, 工作速度可达150MIPS; 片上RAM 68k*16bit; 片上扩展SRAM存贮空间64K*16Bit;最大可扩至512K*16Bit 自带16路12bit A/D,最大采样速率1 2.5MSPS,采集电压范围0-3v;其中六路AD硬件调整为可采集+-5v电压信号。 2路的DAC7528转换,10M/S,8Bit; 2路UART串行接口,一路为RS232接口;一路为RS232/RS485可选;16路PWM输出; 1路CAN接口通讯; 片上256K*16bit FLASH,自带128位加密位; 设计有用户可以自定义的开关,测试指示灯和复位电路; 4组标准扩展连接器,为用户进行二次开发提供条件; 兼容ICETEK系列扩展模块; 具有IEEE1149.1相兼容的逻辑扫描电路,该电路仅用于测试和仿真;+5V电源输入,内部+3.3V、+1.9 V电源管理; 高保真语音接口设计,双路语音采集,每路96K/S; 4层板设计工艺,工作稳定可靠; 具有自启动功能设计,可以实现脱机工作; 可以选配多种应用接口板,包括语音板,网络板等; 2

三.ICETEK-F28335-A 器件分布图 二.ICETEK –F28335-A 评估板实物图 ADREFIN 扩展插座ADCLO 模式跳线F 设置2 JTAG 仿真插头 标准 RS-232 电源 指示灯 +5V 电 源插座 U3四路用户 D2-D5P3 Bootload 扩展插座 可控开关 用户可控 er 模式选 指示灯 择开关 扩展插座 音频插座 J12立体声 输出 J11耳机输 出 J10立体声 输入 J9 麦克 风输 入 图 1.2 ICETEK –F28335-A 器件分布图 CAN 接口 四. ICETEK –F28335–A 评估板原理框图 J5 P1 扩展插座 复位按扭 图 1.1 ICETEK-F28335-A 评估板实物图 图 1.3 评估板原理框图 3 4

数字信处理上机实验答案全

数字信处理上机实验答 案全 Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】

第十章 上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一系统响应及系统稳定性。 实验二时域采样与频域采样。 实验三用FFT对信号作频谱分析。 实验四 IIR数字滤波器设计及软件实现。 实验五 FIR数字滤波器设计与软件实现 实验六应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。 系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。 实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当∞ n时,系统的输出。如果系统稳定,信号加入 → 系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。 注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤

数字信号处理基础实验报告_

本科生实验报告 实验课程数字信号处理基础 学院名称地球物理学院 专业名称地球物理学 学生姓名 学生学号 指导教师王山山 实验地点5417 实验成绩 二〇一四年十一月二〇一四年十二月

填写说明 1、适用于本科生所有的实验报告(印制实验报告册除外); 2、专业填写为专业全称,有专业方向的用小括号标明; 3、格式要求: ①用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。 ②打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm, 左右2.54cm,页眉1.5cm,页脚1.75cm)。字符间距为默认值(缩放100%,间距:标准);页码用小五号字底端居中。 ③具体要求: 题目(二号黑体居中); 摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体); 关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体); 正文部分采用三级标题; 第1章××(小二号黑体居中,段前0.5行) 1.1 ×××××小三号黑体×××××(段前、段后0.5行) 1.1.1小四号黑体(段前、段后0.5行) 参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T 7714-2005)》。

实验一生成离散信号并计算其振幅谱 并将信号进行奇偶分解 一、实验原理 单位脉冲响应h(t)=exp(-a*t*t)*sin(2*3.14*f*t)进行离散抽样,分别得到t=0.002s,0.009s,0.011s采样的结果。用Excel软件绘图显示计算结果。并将信号进行奇偶分解,分别得到奇对称信号h(n)-h(-n)与偶对称信号h(n)+h(-n)。用Excel 软件绘图显示计算结果。 二、实验程序代码 (1)离散抽样 double a,t; a=2*f*f*log(m); int i; for(i=0;i

dsp实验讲义

实验一CCS的安装与配置 一、实验目的: 1. 熟悉CCS软件的安装过程 2. 掌握CCS软件的配置方法 二、实验设备 1.一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C5410主控板; 3. DSP硬件仿真器。 三、实验步骤 1、 CSS软件的安装 分两部分:CCS2000和CCS5000,安装路径为:C:\TI\2000和C:\TI\5000。 2、EPP(并口)仿真器的驱动安装 在2000和5000下分别安装。 3、USB仿真器驱动程序的安装 在2000和5000下分别安装。 4、USB仿真器在CCS环境下的设置 在2000和5000下分别设置。 5、 C5410软件仿真在CCS环境下的设置。 CCS(Code Composer Studio数据设计工作室)代码调试器是一种合成开发环境。它是一种针对标准TMS320调试器接口的交互式方法。CCS目前有CCS1.1,CCS1.2 和CCS2.0等三个不同时期的版本,又有CC2000 ( 针对C2XX ),CCS5000 ( 针对C54XX )和CCS6000 (针对C6X )三个不同的型号。我们所使用的是CCS50002.0的版本。 CCS5000具有以下特性: TI编译器的完全集成的环境:CCS5000目标管理系统,内建编辑器,所有的调试和分析能力集成在一个Windows环境中。 对C和DSP汇编文件的目标管理:目标编辑器保持对所有文件及相关内容的跟踪。它只对最近一次编译中改变过的文件重新编译,以节省编译时间。 高集成的编辑器调整C和DSP汇编代码:CCS5000的内建编辑器支持C和汇编文件的动态语法加亮显示。使用户能很容易地阅读代码和当场发现语法错误。 编辑和调试时的后台编辑:用户在使用编译器和汇编器时没有必要退出系统到DOS 环境中,因为CCS5000会自动将这些工具装载在它的环境中。在其窗口中,错误会加亮显示只要双击错误就可以直接到达出错处。

数字信号处理上机实验代码

文件名:tstem.m(实验一、二需要) 程序: f unction tstem(xn,yn) %时域序列绘图函数 %xn:被绘图的信号数据序列,yn:绘图信号的纵坐标名称(字符串)n=0:length(xn)-1; stem(n,xn,'.'); xlabel('n');ylabel('yn'); axis([0,n(end),min(xn),1.2*max(xn)]); 文件名:tplot.m(实验一、四需要) 程序: function tplot(xn,T,yn) %时域序列连续曲线绘图函数 %xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串) %T为采样间隔 n=0;length(xn)-1;t=n*T; plot(t,xn); xlabel('t/s');ylabel(yn); axis([0,t(end),min(xn),1.2*max(xn)]); 文件名:myplot.m(实验一、四需要)

%(1)myplot;计算时域离散系统损耗函数并绘制曲线图。function myplot(B,A) %B为系统函数分子多项式系数向量 %A为系统函数分母多项式系数向量 [H,W]=freqz(B,A,1000) m=abs(H); plot(W/pi,20*log10(m/max(m)));grid on; xlabel('\omega/\pi');ylabel('幅度(dB)') axis([0,1,-80,5]);title('损耗函数曲线'); 文件名:mstem.m(实验一、三需要) 程序: function mstem(Xk) %mstem(Xk)绘制频域采样序列向量Xk的幅频特性图 M=length(Xk); k=0:M-1;wk=2*k/M;%产生M点DFT对应的采样点频率(关于pi归一化值) stem(wk,abs(Xk),'.');box on;%绘制M点DFT的幅频特性图xlabel('w/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(Xk))]); 文件名:mpplot.m(实验一需要)

数字信号处理基础实验报告 (2)

成都理工大学 《信号处理基础》实验 开设时间:2013—2014学年第2学期

题目1:信号的产生和显示 一、实验目的: 认识基本信号 通过使用MATLAB 设计简单程序, 掌握对MATLAB 的基本使用方法 二、实验原理: 找出下列表达式的信号与:正弦信号、最小相位信号、最大相位信号、零相位信号的对应关系。 1、sin60t 2、e-60t sin60t 3、(1- e-60t)sin60t 4、e60t sin60t 三、实验内容: 产生上述信号的信号并显示 (1)t=[-pi/30:0.001:pi/30]; f=sin(60*t); plot(t,f) 产生图形如下:

(2)t=[0:0.001:pi/30]; f=exp(-60*t).*sin(60*t); plot(t,f) 产生图形如下:

(3)t=[-5*pi/30:0.001:5*pi/30]; f=(1-exp(-60*t)).*sin(60*t); plot(t,f) 产生图形如下: (4) t=[-pi/30:0.001:pi/30]; f=exp(6*t).*sin(60*t); plot(t,f) 产生如下波形:

四、实验结果与讨论: 讨论上述信号的特点 从第一个波形图可以看出,它的波形与正弦函数sin(t)的相像,只是相位上有改变,是一个正弦信号。最大相位信号的能量集中在后面,最小相位能量集中在前面,所以第二个是一个最小相位,第四个是一个最大相位信号。第三个由于波形在t>0时没有,所以是一个零相位信号。 题目2:频谱分析与显示 一、实验目的 初步认识频谱分析

相关主题
文本预览
相关文档 最新文档