实验1 线性卷积与圆周卷积的计算
一、 实验目的
1、掌握计算机的使用方法和常用系统软件及应用软件的使用。
2、通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。
3、掌握线性卷积与循环卷积软件实现的方法,并验证二者之间的关系。 二、实验设备
一台装有Matlab 软件的计算机。 三、实验原理
1、线性卷积:
线性时不变系统(Linear Time-Invariant System, or L. T. I 系统)输入、输出间的关系为:当系统输入序列为)(n x ,系统的单位脉冲响应为)(n h ,输出序列为)(n y ,则系统输出为:
∑∞
-∞
==
-=
m n h n x m n h m x n y )
(*)()()()(
或
∑+∞
-∞
==-=
m n x n h m n x m h n y )
(*)()()()(
上式称为离散卷积或线性卷积。
图1.1示出线性时不变系统的输入、输出关系。
)(n δ→ L. T. I —→)(n h —→ —→
图1.1 线性时不变系统的输入、输出关系
2、圆周卷积
设两个有限长序列)(1n x 和)(2n x ,均为N 点长
)(1n x )(1k X
)
(2n x )(2k X
)(n x 0
L. T. I
∑+∞
-∞
=-=
m m n h m x n y )
()()(
D F T D F T
如果)()()(213k X k X k X ?=
则)
()(~)(~)(10213n R m n x m x n x N N m ???
???-=∑-=
[]
∑---=
1
21
)()(N m N
m n x m x
)(1n x =N 10)(2-≤≤N n n x
上式称为圆周卷积。
注:)(~1n x 为)(1n x 序列的周期化序列;)()(~1n R n x N 为)(~1n x 的主值序列。
上机编程计算时,)(3n x 可表示如下:
∑∑-+==-++
-=
1
1
21
21
3)
()()()()(N n m n
m m n N x m x
m n x m x
n x
3、两个有限长序列的线性卷积
序列)(1n x 为L 点长,序列)(2n x 为P 点长,
)
(3n x 为这两个序列的线性卷积,则
)
(3n x 为
∑+∞
-∞
=-=
m m n x m x
n x )
()()(21
3
且线性卷积
)
(3n x 的最大长1-+P L ,也就是说当1-≤n 和1-+≥P L n 时
)(3=n x 。
4、圆周卷积与线性卷积的关系
序列)(1n x 为L 点长,序列)(2n x 为P 点长,若序列)(1n x 和)(2n x 进行N 点的圆周卷积,其结果是否等于该两序列的线性卷积,完全取决于圆周卷积的长度:
当1-+≥P L N 时圆周卷积等于线性卷积,即
)
(1n x N )(*)()(212n x n x n x =
当1-+
??
???-≤≤+=∑+∞
-∞
=n
N n rN n x n x r N
其它010)()(33
四、实验步骤
已知两个有限长序列
)4(5)3(4)2(3)1(2)()(-+-+-+-+=n n n n n n x δδδδδ )3(2)2()1(2)()(-+-+-+=n n n n N H δδδδ
1、实验前,预先笔算好这两个序列的线性卷积及下列几种情况的圆周卷积
)()1(n x ⑤)(n h
)()2(n x ⑥)(n h )()3(n x ⑨)(n h )()4(n x ⑩)(n h
2、编制一个计算圆周卷积的通用程序,计算上述4种情况下两个序列)(n x 与
)(n h 的圆周卷积。
3、上机调试并打印或记录实验结果。
4、将实验结果与预先笔算的结果比较,验证其正确性。 五、实验报告
1、列出计算两种卷积的公式,列出实验程序清单(包括必要的程序说明)。
2、记录调试运行情况及所遇问题的解决方法。
3、给出实验结果,并对结果作出分析。验证圆周卷积两者之间的关系。
实验2 利用离散傅立叶变换(DFT )分析信号的频谱
一、实验目的
1、通过这一实验,能够熟练掌握快速离散傅里叶变换(FFT )的原理及其用FFT 进行频谱分析的基本方法。
2、在通过计算机上用软件实现FFT 及信号的频谱分析。
3、通过实验对离散傅里叶变换的主要性质及FFT 在数字信号处理中的重要作用有进一步的了解。 二、实验设备
一台装有Matlab 软件的计算机。 三、实验原理
1、离散傅里叶变换(DFT )及其主要性质
DFT 表示离散信号的离散频谱,DFT 的主要性质中有奇偶对称特性,虚实特性等。通过实验可以加深理解。
例如:实序列的DFT 具有偶对称的实部和奇对称的虚部,这可以证明如下: 由定义
∑-==
1
0)()(N n kn
N
W
n x k X
∑∑-=-=-=
1
1
)
2sin(
)()2cos(
)(N n N n kn N
n x j kn N
n x ππ
∑-=-=
-1
)()()(N n n k N N
W
n x k N X
∑
-=-=
1
0)(N n kn N
Nn
W
W
n x
∑-=-=
1
0)(N n kn N
W
n x
∑∑-=-=+=
1
1
)
2sin(
)()2cos(
)(N n N n kn N
n x j kn N
n x ππ
)(*)(k N X k X -=∴
实序列DFT 的这个特性,在本实验中可以通过实指数序列及三角序列看出来。 对于单一频率的三角序列来说它的DFT 谱线也是单一的,这个物理意义我们可以从实验中得到验证,在理论上可以推导如下:
设:
)
()2sin(
)(n R n N
n x N π=,其DFT 为:
∑-=-=
1
02)()(N n kn
N
j
e
n x k X π
kn
N
j
N n e
n N
ππ21
)2sin(
--=∑
=
kn
N
j
N n n
N
j
n
N
j
e
e
e
j πππ21
022)(21--=-∑-=
∑-=+----=
1
)
1(2)
1(2)
(21
N n k n N
j
k n N
j
e
e j
ππ
从而
∑-=-=-=
1
220
)(21
)0(N n n
N
j n
N
j e
e
j
X ππ
∑
-=--==
-=
1
42
2)1(21)1(N n n
N j
N j
j
N e j
X π
0)2(=X 0)2(=-N X
2
2)(21)1(1
2)2(2N j
j
N e
e
j
N X N n n
j n
N N
j
=-
=-=
-∑
-=--ππ
以上这串式中)0(X 反映了)(n x 的直流分量,)1(x 是)(n x 的一次谐波,又根据虚实特性)1()1(*X N X =-,而其它分量均为零。
当周期减小时显然
)
()3
/2sin(
n R n N N π的谱只应该在3=k 及3-=N k 才有分量,
实验者可以通过和上述相同的步骤加以理论证明。
由于)
(2cos
n R n N
N ?π与
)
(2sin
n R n N
N ?π相位差2π
,所以它的DFT 只包括实部而没
有虚部,以上这些性质可在本实验中得到验证。
2、利用DFT 对信号进行频谱分析
DFT 的重要应用之一是对时域连续信号的频谱进行分析,称为傅里叶分析,时域连续信号离散傅里叶分析的基本步骤如图3.1所示。
图2.1 时域连续信号离散傅里叶分析的处理步骤
其中消混叠低通滤波器LPF (预滤波器)的引入,是为了消除或减少时域连续信号转换成序列时可能出现的频谱混叠的影响。实际工作中,时域离散信号)(n x 的时宽是很长的甚至是无限长的(例如语音或音乐信号)。由于DFT 的需要,必须把)(n x 限制在一定的时间间隔之内,即进行数据截断。数据的截断相当于加窗处理。因此,在计算)(n x 的DFT 之前,用一个时域有限的窗函数)(n w 加到)(n x 上是非常必要的。
)
(t x c 通过A/D 变换器转换成采样序列)
(n x 一时域离散序列。其频谱用
)
(ω
j e
X 表
示,它是频率ω的周期函数,即
∑
-∞
-∞
=+=
m c j T
m j
T
j
X T
e
X )
2(1)(πω
ω
其中
)
(Ωj X c 或
)
(T
j
X c ω
为
)
(t x c 的频谱。
在实际应用中,消混叠低通滤波器的阻带不可能是无限衰减的,故由)
(Ωj X c 周
期延拓得到的
)
(ω
j e
X 有非零重叠,即出现混叠现象。
由于进行DFT 的需要,必须对序列)(n x 进行加窗处理,即)()()(n w n x n v ?=加窗对频域的影响,用周期卷积表示。
?-
-=
π
π
θωθ
ω
θ
π
d e
W e
X e
V j j j )()(21)()
(
最后是进行DFT 运算。加窗后的DFT 是
w (n )
∑
-=-=
1
2)()(N n nk
N
j
e
n v k V π,10-≤≤N k
其中假设窗函数长L 小于或等于DFT 长度N 。
有限长序列)()()(n w n x n v ?=的DFT 相当于)(n v 傅里叶变换的等间隔采样。
k
N
j e
V k V πωω
2)
()(=
=
)(k v 便是)(t s c 的离散频率函数
因为DFT 频率间隔为N π
2,且模拟频率Ω和数字频率ω间的关系为T Ω=ω,所以离散的频率函数各频率点对应的模拟频率为:
NT
k π2=
Ω
显然频率分辨率f ?为:
NT
f 1=
?
利用DFT 计算频谱,只给出频谱k
N k πω2=
或
k
NT
k π2=
Ω的频率分量,即频率的
采样值,而不可能得到连续的频谱函数。
如果在两个离散的谱线之间有一个特别大的频谱分量,就无法检测出来了。 为了在保持原来回频谱形状不变的情况下,使谱线加密,即使频域采样点数增加,从而使原来看不到的频谱分量变得可以看到,可以通过在信号数据的末端补加一些零值点,使DFT 计算周期内点数增加,但又不改变原有的记录数据的方法来实现。
3、快速离散傅里叶变换(FFT )
快速离散傅里叶变换是计算离散傅里叶变换的一种快速算法,为了提高运算速度,FFT 将DFT 的计算逐次分解成较小点数的DFT 。按时间抽取
(Decimation-In-Time(DIT)FFT 算法把输入序列)(n x 按其n 值为偶数或是奇数分解成越来越短的序列。按频域抽取(Decimation-In-Frequency(DIF)FFT 算法是把输出序列)(k X 按其k 值是偶数或是奇数来分解成越来越短的序列。本实验重点是针对
M
N 2
=的DIT FFT 或DIF FFT 。具体推导过程及原理可参见《数字信号处理》教科书。
四、实验步骤
1、实验前学生应认真学习《数字信号处理》中有关章节的内容,掌握快速傅里叶变换的基本原理以及如何用FFT 等计算信号频谱。
2、上机独立调试,通过程序,可选择下面列出的序列中的3~4种,并取N 为不同的2的幂次方的情况进行实验,并打印出)(k v 或k
j e V ω)(的值,作出
)
(k V 或
)
(k
j e
V ω的
曲线。
本实验中有六种输入序列。即 (1) 实指数序列n
)
08.1(
(2) 复指数序列
n
j )
3.09.0(3+
(3) 周期为N 的正弦序列
)
2sin(
n N π,且10-≤≤N n (4) 周期为N 的余弦序列
)
2cos(n N
π,且10-≤≤N n
(5) 复合函数列)
3
/2sin(
6.0)2sin(
9.0n N n N
ππ+
(6) 矩形序列
)
(n R N
实验中你可以随意选择这六种输入序列。建议选(3)、(4)、(5)、(6)序列。 五、实验报告
1、简述实验原理,列出实验程序清单,并附上必要的程序说明。
2、记录调试运行情况及所遇问题的解决方法。
3、记录实验结果,实验后,对结果进行分析。
思考:利用DFT 对连续信号进行傅里叶分析可能造成哪些误差?
实验3 利用FFT 实现线性卷积
一、实验目的
1、通过这一实验,加深理解FFT 在实现数字滤波(或快速卷积)中的重要作用,更好的利用FFT 进行数字信号处理。
2、进一步掌握圆周卷积和线性卷积两者之间的关系。 二、实验设备
一台装有Matlab 软件的计算机。 三、实验原理
数字滤波器根据系统的单位脉冲响应h(n)是有限长还是无限长可分为有限长单位脉冲响应(Finite Impulse Response )系统(简记为FIR 系统)和无限长单位脉冲响应(Infinite Impulse Response )系统(简记为IIR 系统)。
对于FIR 滤波器来说,除了可以通过数字网络来实现外,也可以通过FFT 的变换来实现。
首先我们知道,一个信号序列x(n)通过FIR 滤波器时,其输出应该是x(n)与h(n)的卷积:
∑+∞
-∞
=-=
=m m n h m x n h n x n y )
()()(*)()(
或
∑+∞
-∞
=-=
=m m n x m h n x n h n y )
()()(*)()(
当h(n)是一个有限长序列,即h(n)是FIR 滤波器,且10-≤≤N n 时
∑-=-=
1
)
()()(N m m n x m h n y
在数字网络(见图3.1)类的FIR 滤波器中,普遍使用的横截型结构(见下图3.2)
图3.1 滤波器的数字网络实现方法
y(n)
图3.2 FIR 滤波器横截型结构
应用FFT 实现数字滤波器实际上就是用FFT 来快速计算有限长度列间的线性卷积。
粗略地说,这种方法就是先将输入信号x(n)通过FFT 变换为它的频谱采样值X(k),然后再和FIR 滤波器的频响采样值H(k)相乘,H(k)可事先存放在存储器中,最后再将乘积H(k)X(k)通过快速傅里叶变换(简称IFFT )还原为时域序列,即得到输出y(n)如图3.3所示。
图3.3 数字滤波器的快速傅里叶变换实现方法
现以FFT 求有限长序列间的卷积及求有限长度列与较长序列间的卷积为例来讨论FFT 的快速卷积方法。
(一)序列)(n x 和)(n h 的列长差不多。设)(n x 的列长为1N ,)(n h 的列长为2N ,要求
)()(n x n y =
∑-=-=
=1
)
()()(*)()(N r r n h r x n h n x n h
用FFT 完成这一卷积的具体步骤如下:
①为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择
循环卷积长度121-+≥N N N ,若采用基2-FFT 完成卷积运算,要求m
N 2=(m 为
整数)。
②用补零方法使)(n x ,)(n h 变成列长为N 的序列。
N
??
?-≤≤-≤≤=1010)
()(11N n N N n n x n x
??
?-≤≤-≤≤=1
10)
()(22N n N N n n h n h
③用FFT 计算)(),(n h n x 的N 点离散傅里叶变换
)()(k X n x FFT
??
→? )()(k H n h FFT ??
→? ④做)(k X 和)(k H 乘积,)()()(k H k X k Y ?= ⑤用FFT 计算)(k Y 的离散傅里叶反变换得
*
101
0)(*1)(1)(??
?
?????????=??????=∑∑-=---N k nk x N k nk x W k Y N W k Y N n y
(二)当x(n)长度很长时,即21N N >>,通常不允许等x(n)全部采集齐后再进行卷积,否则使输出相对于输入有较长的延时,另外,若121-+N N 太大,)(n h 要补上太多的零点,很不经济,且FFT 的计算时间也要很长。为此,采用分段卷积的方法,即把x(n)分成长度与h(n)相仿的一段段,分别求出每段卷积的结果,然后用相应的方式把它们结合起来,便是总的输出。分段卷积方法主要有两种,即重叠相加法和重叠保留法。具体内容请参考教材中“快速离散傅里叶变换”一章中的线性卷积的FFT 算法部分,本实验这部分不作重点要求。
四、实验步骤
1、数字滤波器的脉冲响应为2
2),()21()(N n R n h N n
=可自定,本实验取17
2=N
输入序列)(n x 可选下列几种情况 ①
)
()(1n R n x N = 1N 可取16
②16
)
(2cos
)(111
==N n nR N n x N π
③
16
),()31)((11 N n R n x N n
2、实验前,预先计算好)(*)(n h n x 的值。
3、上机独立调试,并打印或记录实验结果。
4、将实验结果与预先笔算的结果比较,验证其正确性。 五、实验报告
1、简述实验原理,画出程序框图,并列出实验程序清单,包括必要的程序说明。
2、记录调试运行情况及所遇问题的解决方法。
3、给出实验结果,并对结果作出分析。
实验4 FIR 滤波器的设计与实现
一、实验目的
了解一个实际滤波器设计过程,加深掌握用窗口法设计FIR 滤波器的原理和窗函数对滤波器性能的影响。 二、实验设备
一台装有Matlab 软件的计算机; 三、实验原理
设所希望得到的滤波器的理想频率响应为
)
(jw
d e
H 。那么FIR 滤波器的设计就
在于寻找一个传递函数∑∞
=-=
)()(n jwn
jw
e
n h e
H 去逼近
)
(jw
d e
H 。在这种逼近中最直接
的一种方
法是从单位取样响应序列)(n h 着手,使)(n h 逼近理想的单位取样响应)
(n h d 。我们
知道
)
(n h d 可以从理想频率响应
)
(jw
d e
H 通过傅里叶反变换来得到,即:
?
∑=
=∞
∞
=-π
π
20
)(21)()()(dw
e
e
H n h e
n h
e
H jwn
jw
d d n jwn
d
jw
d (4.1)
但是一般来说,这样得到的单位取样响应)
(n h d 往往都是无限长序列;而且是非因果
的。我们以一个截止频率为c
w 的线性相应位理想低通为例来说明。设低通滤波器的
时延为?,即:
????
?≤<≤=?
-π
w w w w e e
H c c jw jw
d 0
)( (4.2)
则
dw
e
n h c
c
e w w jwn
jw d ?
-?=
π
21)(
)
()]
(sin[?-?-=
n n w c π
这是一个以?为中心的偶对称的无限长非因果序列。这样一个无限长的序列怎样用一个有限长序列去近似呢?最简单的办法就是直接截取它的一段来代替它。例如把
0=n 到1-=N n 的一段截取来作为)
(n h ,但是为要保证所得到的是线性相位滤波
器。必须满足)(n h 的对称性,所以时延?应该取)(n h 长度的一半,即2/)1(-=?N
??
?-≤≤=n
N n n h n h d 其它0
1
0)
()(
这种直接截取的办法可以形象地想象为,)(n h 好比是通过一个“窗口”所看到的一段)(n h d 。)(n h 中表达为)(n h d 和一个“窗口函数”的乘积。在这里,窗口函数就是矩形脉冲函数)(n R N ,即
)
()()(n R n h n h N d ?=
但是一般来说,窗口函数并不一定是矩形函数,可以在矩形以内还对)
(n h d 作一定的
加权处理,因此,一般可以表示为
)
()()(n w n h n h d ?=
这里)(n w 就是窗口函数。这种对理想单位取样响应加窗的处理对频率响应会产生以下三点影响:
(1)使理想特性不连续的边沿加宽,形成一过渡带,过渡带的宽度取决于窗口频谱的主瓣宽度。
(2)在过渡带两旁产生肩峰和余振,它们取决于窗口频谱的旁瓣;旁瓣越多,余振也越多;旁瓣相对值越大,肩峰则越强。
(3)增加截取长度N ,只能缩小窗口频谱的主瓣宽度而不能改变旁瓣的相对值;旁瓣与主瓣的相对关系只决定于窗口函灵敏的形状。因此增加N ,只能相对应减小过渡带宽。而不能改变肩峰值。肩峰值的大小直接决定通带内的平稳和阻带的衰减,对滤波器性能有很大关系。例如矩形窗的情况下,肩峰达8.95%,致使阻带最小衰减只有21分贝,这在工程上往往是不够的。怎样才能改善阻带的衰减特性呢?只能从改善窗口函数的形状上找出路,所以希望的窗口频谱中应该减少旁瓣,使能量集中在主瓣,这样可以减少肩峰和余振,提高阻带的衰减。而且要求主瓣宽度尽量窄,
以获得较陡的过渡带,然而这两个要求总不能兼得,往往需要用增加主瓣宽度带换取决瓣的抑制,于是提出了海明窗、凯宽窗、切比雪夫窗等窗口函数。 四、实验步骤
用改进余弦窗设计一个FIR 线性相应相位低通数字滤波器,已知
21
,5.0==N w c π。编写调试程序,要求在幕幕上显示出单位脉冲响应)(n h 的数值,
画出其幅度响应)
(jw
e H 的曲线。
五、实验报告
1、简述实验原理,画出程序框图,列出实验程序清单,并附上必要的程序说明。
2、记录调试运行情况及所遇问题的解决方法。
3、记录实验结果,实验后,对结果进行分析。 思考:总结窗函数法的设计步骤和关键问题。
实验5 IIR 滤波器的设计与实现
一、实验目的
熟悉模拟Batterworth 滤波器设计和用双线性变换法设计数字IIR 滤波器的方法。 二、实验设备
一台装有Matlab 软件的计算机。 三、实验原理
利用双线性变换设计IIR 滤波器,首先要设计出满足指标要求的模拟滤波器的传递函数)(s H a ,然后由)(s H a 通过双线性变换可得所要设计的IIR 滤波器的系统函数)(z H 。如果给定的指标为数字滤波器的指标,则首先要转换成模拟域指标。
1、低通数字滤波器设计
数字域与模拟域关系
2
ω
tg
=Ω (5.1)
1
111)
()(--+-==z
z s a s H z H (5.2)
2、高通数字滤波器设计
数字域与模拟域关系
2
ω
ctg
-=Ω (5.3)
1
111)
()(---+==z
z s a s H z H (5.4)
3、带通数字滤波器设计
数字域与模拟域关系
1
1
0sin cos cos ωωω-=
Ωc (5.5)
)
2
cos(
)2cos(
cos 2
1210ωωωωω-+=
(5.6) 1
1
cos 22
02
)
()(-+-=
=z z z s a s H z H ω (5.7)
4、带阻数字滤波器设计
11
cos cos sin ωωω-=
Ωc (5.8)
)
2
cos(
)2
cos(
cos 2
1210ωωωωω-+=
(5.9) 1
cos 2102
2
)
()(+--=
=ωz z z s a s H z H (5.10)
四、实验步骤
1、编写用双线性变换法设计Batterworth 低通IIR 数字滤波器的程序,要求通带内频率低于rad π2.0时,容许幅度误差在1dB 之内,频率在rad π3.0到rad π之间的阻带衰减大与10dB 。其中要求参数
p
s P a ,,ωω和
s
a 可由键盘输入。
2、以64π
为采样间隔,在屏幕上打印出数字滤波器的频率区间],0[π上的幅频响应特性由线
)
)((ω
j e
H 。
3、在屏幕上打印出)(z H 的分子,分母多项式系数。 五、实验报告
1、简述实验原理,列出实验程序清单,并附上必要的程序说明。
2、记录调试运行情况及所遇问题的解决方法。
3、记录实验结果,实验后,对结果进行分析。 思考:总结巴特沃思型滤波器的设计方法。
实验6 IIR 和FIR 滤波器过滤信号的实现及比较
一、实验目的
1、掌握数字滤波器的计算机仿真方法。
2、通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。 二、实验设备
一台装有Matlab 软件的计算机。 三、实验原理
若)(n h 是因果FIR 滤波器的单位脉冲响应,其长度为N ,当输入为)(n x 时,输出序列)(n y 为:
∑∑--=-=-=-=
n
N n k N k k x k n h k h k n x n y 1
1
)
()()()()( (6.1)
取)(n h 为低通滤波器21=N ,截止频率π
2.0=c w ,采用海明窗设计出)(n h 。
若)(z H 是IIR 滤波器,在通常内频率低于π2.0时,最大衰减小于1dB ;在阻带内],3.0[ππ频率区间上,最小衰减大于15dB 。用双线性变换法设计得到Batterworth 滤波器系统函数)(z H 为:
)
()(3
1
z H
z H k k
∏==
(6.2)
式中
3
,2,11)
21()(2
1
2
1
=++++=
----k z
c z
B z
z A z H k k k (6.3)
2318
.0=A
4164.01=B 6006.01-=C 3093
.02=B 1888.02-=C 2692
.03=B
0349
.03-=C
滤波器)(z H 由三个二阶滤波器)(),(21z H z H 和)
(3z H 级联组成,如下图所示:
可得
)
2()1()2()1(2)()(111-+-+--+=---n y C n y B n Ay n Ay n Ay n y k k k k k k k k
3,2,1=k
(6.4)
当1=k 时,)()(),()(31n y n y n x n y k ==- 四、实验步骤
1、编写FIR 滤波器仿真程序,计算其对心电图信号采样序列)(n x 的响应序列
)(1n y 。
2、编写IIR 滤波器仿真程序,计算其对心电图信号采样序列)(n x 的响应序列
)(2n y 。
3、在通用计算机上运行仿真滤波器程序,在屏幕上打印出)(n x 、)(1n y 和)(2n y ,并进行比较。 五、实验报告
1、对比滤波前后的心电图信号波形,说明数字滤波器的滤波作用。
2、比较FIR 和IIR 的滤波性能,运算量。
)
实验二 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,阻带最小衰减为
实验一MATLAB语言的基本使用方法 实验类别:基础性实验 实验目的: (1)了解MATLAB程序设计语言的基本方法,熟悉MATLAB软件运行环境。 (2)掌握创建、保存、打开m文件的方法,掌握设置文件路径的方法。 (3)掌握变量、函数等有关概念,具备初步的将一般数学问题转化为对应计算机模型并进行处理的能力。 (4)掌握二维平面图形的绘制方法,能够使用这些方法进行常用的数据可视化处理。 实验内容和步骤: 1、打开MATLAB,熟悉MATLAB环境。 2、在命令窗口中分别产生3*3全零矩阵,单位矩阵,全1矩阵。 3、学习m文件的建立、保存、打开、运行方法。 4、设有一模拟信号f(t)=1.5sin60πt,取?t=0.001,n=0,1,2,…,N-1进行抽样,得到 序列f(n),编写一个m文件sy1_1.m,分别用stem,plot,subplot等命令绘制32 点序列f(n)(N=32)的图形,给图形加入标注,图注,图例。 5、学习如何利用MATLAB帮助信息。 实验结果及分析: 1)全零矩阵 >> A=zeros(3,3) A = 0 0 0 0 0 0 0 0 0 2)单位矩阵 >> B=eye(3) B = 1 0 0 0 1 0 0 0 1 3)全1矩阵 >> C=ones(3) C = 1 1 1 1 1 1 1 1 1 4)sy1_1.m N=32; n=0:N-1; dt=0.001; t=n*dt; y=1.5*sin(60*pi*t); subplot(2,1,1), plot(t,y); xlabel('t'); ylabel('y=1.5*sin(60*pi*t)'); legend('正弦函数'); title('二维图形'); subplot(2,1,2), stem(t,y) xlabel('t'); ylabel('y=1.5*sin(60*pi*t)'); legend('序列函数'); title('条状图形'); 00.0050.010.0150.020.0250.030.035 t y = 1 . 5 * s i n ( 6 * p i * t ) 二维图形 00.0050.010.0150.020.0250.030.035 t y = 1 . 5 * s i n ( 6 * p i * t ) 条状图形
《数字信号处理》实验指导书 光电工程学院二○○九年十月
实验一离散时间信号分析 一、实验目的 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 实验中所产生的正弦序列的频率是多少?是否是周期序列?
(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.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;
实验6 数字滤波器的网络结构 一、实验目的: 1、加深对数字滤波器分类与结构的了解。 2、明确数字滤波器的基本结构及其相互间的转换方法。 3、掌握用MA TLAB 语言进行数字滤波器结构间相互转换的子函数及程序编写方法。 二、实验原理: 1、数字滤波器的分类 离散LSI 系统对信号的响应过程实际上就是对信号进行滤波的过程。因此,离散LSI 系统又称为数字滤波器。 数字滤波器从滤波功能上可以分为低通、高通、带通、带阻以及全通滤波器;根据单位脉冲响应的特性,又可以分为有限长单位脉冲响应滤波器(FIR )和无限长单位脉冲响应滤波器(IIR )。 一个离散LSI 系统可以用系统函数来表示: M -m -1-2-m m m=0 012m N -1-2-k -k 12k k k=1 b z b +b z +b z ++b z Y(z)b(z)H(z)=== =X(z)a(z) 1+a z +a z ++a z 1+a z ∑∑ 也可以用差分方程来表示: N M k m k=1 m=0 y(n)+a y(n-k)=b x(n-m)∑∑ 以上两个公式中,当a k 至少有一个不为0时,则在有限Z 平面上存在极点,表达的是以一个IIR 数字滤波器;当a k 全都为0时,系统不存在极点,表达的是一个FIR 数字滤波器。FIR 数字滤波器可以看成是IIR 数字滤波器的a k 全都为0时的一个特例。 IIR 数字滤波器的基本结构分为直接Ⅰ型、直接Ⅱ型、直接Ⅲ型、级联型和并联型。 FIR 数字滤波器的基本结构分为横截型(又称直接型或卷积型)、级联型、线性相位型及频率采样型等。本实验对线性相位型及频率采样型不做讨论,见实验10、12。 另外,滤波器的一种新型结构——格型结构也逐步投入应用,有全零点FIR 系统格型结构、全极点IIR 系统格型结构以及全零极点IIR 系统格型结构。 2、IIR 数字滤波器的基本结构与实现 (1)直接型与级联型、并联型的转换 例6-1 已知一个系统的传递函数为 -1-2-3 -1-2-3 8-4z +11z -2z H(z)=1-1.25z +0.75z -0.125z 将其从直接型(其信号流图如图6-1所示)转换为级联型和并联型。
实验一 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;
武汉工程大学 数字信号处理实验报告 姓名:周权 学号:1204140228 班级:通信工程02
一、实验设备 计算机,MATLAB语言环境。 二、实验基础理论 1.序列的相关概念 2.常见序列 3.序列的基本运算 4.离散傅里叶变换的相关概念 5.Z变换的相关概念 三、实验内容与步骤 1.离散时间信号(序列)的产生 利用MATLAB语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。 四实验目的 认识常用的各种信号,理解其数字表达式和波形表示,掌握在计算机中生成及绘制数字信号波形的方法,掌握序列的简单运算及计算机实现与作用,理解离散时间傅里叶变换,Z变换及它们的性质和信号的频域分
实验一离散时间信号(序列)的产生 代码一 单位样值 x=2; y=1; stem(x,y); title('单位样值 ') 单位阶跃序列 n0=0; n1=-10; n2=10; n=[n1:n2]; x=[(n-n0)>=0]; stem(n,x); xlabel('n'); ylabel('x{n}'); title('单位阶跃序列');
实指数序列 n=[0:10]; x=(0.5).^n; stem(n,x); xlabel('n'); ylabel('x{n}'); title('实指数序列');
正弦序列 n=[-100:100]; x=2*sin(0.05*pi*n); stem(n,x); xlabel('n'); ylabel('x{n}'); title('正弦序列');
随机序列 n=[1:10]; x=rand(1,10); subplot(221); stem(n,x); xlabel('n'); ylabel('x{n}'); title('随机序列');
数字信号处理实验答案 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),绘出四个周期。
实验四 有限长单位脉冲响应滤波器设计 朱方方 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];
实验5 抽样定理 一、实验目的: 1、了解用MA TLAB 语言进行时域、频域抽样及信号重建的方法。 2、进一步加深对时域、频域抽样定理的基本原理的理解。 3、观察信号抽样与恢复的图形,掌握采样频率的确定方法和插公式的编程方法。 二、实验原理: 1、时域抽样与信号的重建 (1)对连续信号进行采样 例5-1 已知一个连续时间信号sin sin(),1Hz 3 ππ=0001f(t)=(2f t)+6f t f ,取最高有限带宽频率f m =5f 0,分别显示原连续时间信号波形和F s >2f m 、F s =2f m 、F s <2f m 三情况下抽样信号的波形。 程序清单如下: %分别取Fs=fm ,Fs=2fm ,Fs=3fm 来研究问题 dt=0.1; f0=1; T0=1/f0; m=5*f0; Tm=1/fm; t=-2:dt:2; f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); subplot(4,1,1); plot(t,f); axis([min(t),max(t),1.1*min(f),1.1*max(f)]); title('原连续信号和抽样信号'); for i=1:3; fs=i*fm;Ts=1/fs; n=-2:Ts:2; f=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n); subplot(4,1,i+1);stem(n,f,'filled'); axis([min(n),max(n),1.1*min(f),1.1*max(f)]); end 程序运行结果如图5-1所示:
原连续信号和抽样信号 图5-1 (2)连续信号和抽样信号的频谱 由理论分析可知,信号的频谱图可以很直观地反映出抽样信号能否恢复原模拟信号。因此,我们对上述三种情况下的时域信号求幅度谱,来进一步分析和验证时域抽样定理。 例5-2编程求解例5-1中连续信号及其三种抽样频率(F s>2f m、F s=2f m、F s<2f m)下的抽样信号的幅度谱。 程序清单如下: dt=0.1;f0=1;T0=1/f0;fm=5*f0;Tm=1/fm; t=-2:dt:2;N=length(t); f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); wm=2*pi*fm;k=0:N-1;w1=k*wm/N; F1=f*exp(-j*t'*w1)*dt;subplot(4,1,1);plot(w1/(2*pi),abs(F1)); axis([0,max(4*fm),1.1*min(abs(F1)),1.1*max(abs(F1))]); for i=1:3; if i<=2 c=0;else c=1;end fs=(i+c)*fm;Ts=1/fs; n=-2:Ts:2;N=length(n); f=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n); wm=2*pi*fs;k=0:N-1; w=k*wm/N;F=f*exp(-j*n'*w)*Ts; subplot(4,1,i+1);plot(w/(2*pi),abs(F)); axis([0,max(4*fm),1.1*min(abs(F)),1.1*max(abs(F))]); end 程序运行结果如图5-2所示。 由图可见,当满足F s≥2f m条件时,抽样信号的频谱没有混叠现象;当不满足F s≥2f m 条件时,抽样信号的频谱发生了混叠,即图5-2的第二行F s<2f m的频谱图,,在f m=5f0的围,频谱出现了镜像对称的部分。
实验一 基于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 单位冲激序列
数字信处理上机实验答 案全 Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】
第十章 上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一系统响应及系统稳定性。 实验二时域采样与频域采样。 实验三用FFT对信号作频谱分析。 实验四 IIR数字滤波器设计及软件实现。 实验五 FIR数字滤波器设计与软件实现 实验六应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。 系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。 实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当∞ n时,系统的输出。如果系统稳定,信号加入 → 系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。 注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤
第二章上机作业 1、ljdt(A,B)函数定义 function ljdt(A,B) p=roots(A); q=roots(B); p=p'; q=q'; x=max(abs([p q 1])); x=x+0.1; y=x; clf hold on axis([-x x -y y]) w=0:pi/300:2*pi; t=exp(i*w); plot(t) axis('square') plot([-x x],[0 0]) plot([0 0],[-y y]) text(0.1,x,'jIm[z]') text(y,1/10,'Re[z]') plot(real(p),imag(p),'x') plot(ral(q),imag(q),'o') title('pole-zero diagram for discrete system') hold off 例2.26 a=[3 -1 0 0 0 1]; b=[1 1]; ljdt(a,b) p=roots(a) q=roots(b) pa=abs(p) 程序运行结果如下: P= 0.7255+0.4633i 0.7255+0.4633i -0.1861+0.7541i -0.1861-0.7541i -0.7455 q=
-1 pa= 0.8608 0.8608 0.7768 0.7768 0.7455 例2.27 b=[0 1 2 1];a=[1 -0.5 -0.005 0.3]; subplot 311 zplane(b,a);xlabel('实部');ylabel('虚部'); num=[0 1 2 1];den=[1 -0.5 -0.005 0.3]; h=impz(num,den); subplot 312
本科生实验报告 实验课程数字信号处理基础 学院名称地球物理学院 专业名称地球物理学 学生姓名 学生学号 指导教师王山山 实验地点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 文件名: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(实验一需要) 成都理工大学 《信号处理基础》实验 开设时间: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:频谱分析与显示 一、实验目的 初步认识频谱分析数字信号处理上机实验代码
数字信号处理基础实验报告 (2)