DTMF信号产生与检测实验报告(最终五篇)

时间:2020-09-30 12:22:27下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《DTMF信号产生与检测实验报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《DTMF信号产生与检测实验报告》。

第一篇:DTMF信号产生与检测实验报告

DSP 课程设计实验报告

DTMF 信号的产生与检测

指导老师:

申艳老师

时 时

间:

2014 年 年 7 月 月 18 日

设计任务书 双音多频 DTMF(Dual Tone Multi Frequency)信号是在按键式电话机上得到广泛应用的音频拨号信令,一个 DTMF 信号由两个频率的音频信号叠加构成。这两个音频信号的频率分别来自两组预定义的频率组:行频组和列频组。每组分别包括 4 个频率,据 CCITT 的建议,国际上采用的这些频率为 697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz和 1633Hz 等 8 种。在每组频率中分别抽出一个频率进行组合就可以组成 16 种 DTMF 编码,从而代表 16 种不同的数字或功能键,分别记作 0~9、*、#、A、B、C、D。如下图所示。

图 1-1 双音多频信号编码示意图 要用 DSP 产生 DTMF 信号,只要产生两个正弦波叠加在一起即可;DTMF 检测时采用改进的 Goertzel 算法,从频域搜索两个正弦波的存在。

实验目的 掌握 DTMF 信号的产生和检测的 DSP 设计可使学生更加透彻的理解和应用奈奎斯特采样定理,与实际应用相结合,提高学生系统地思考问题和解决实际问题的能力。通过对 DSP信号处理器及 D/A 和 A/D 转换器的编程,可以培养学生 C 语言编程能力以及使用 DSP 硬件平台实现数字信号处理算法的能力。

技术指标及设计要求

基本部分 1)使用C语言编写DSP下DTMF信号的产生程序,要求循环产生0~9、*、#、A、B、C、D对应的DTMF信号,并且符合CCITT对DTMF信号规定的指标。

2)使用C语言编写DSP下DTMF信号的检测程序,检测到的DTMF编码在CCS调试窗口中显示,要求既不能漏检,也不能重复检出。

3)DTMF信号的发送与接收分别使用不同的实验板完成。

发挥部分 1)

使用一个DSP工程同时实现DTMF信号的发送和检测功能。

2)

改进DTMF信号的规定指标,使每秒内可传送的DTMF编码加倍。

3)发送的DTMF信号的幅度在一定范围内可调,此时仍能完成DTMF信号的正常检测。

方案完成情况

在实现基本要求的基础上,我们又完成了发挥部分的全部要求:能够实现在一个 DSP 实验箱上同时实现自发自收,基本能实现无差错传输。通过改变处理信号的点数 N 的数值实现了 DTMF 信号编码加倍,能够在一秒内传送够多的数据。通过 gel 添加滑动条的方法实现输入信号幅度可调,并实现判决门限的自适应处理,能随着幅度的变化自动调整门限的值,进而了判决传输信号的正确性。

设计内容

DTMF 信号的的定义 双音多频(DTMF)信号是由两个不同频率的信号叠加而成,设V(t)为DTMF信号、  t V H和   t V L 分别为构成V(t)的两个信号,则它们应满足关系式(1)。

V(t)=   t V H +   t V L

(1)根据CCITT建议,国际上采用697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz、1633Hz8个频率,并将其分成两个群,即低频群和高频群。从低频群和高频群中任意抽出一个频率进行叠加组合,具有16种组合形式,让其代表数字和功率,如表3-1所列,则有关系式(2)。

V(t)=AsinH t+BsinL t

(2)其中AsinH t为低频群的值,BsinL t为高频组的值,A、B分别为低频群和高频群样值的量化基线,具体见表2-1。

Lf

Hf

1209 1336 1477 1633 697 1 2 3 A 770 4 5 6 B 852 7 8 9 C

941 * 0 # D 表2-1

DTMF频率及其对应的键值

DTMF 信号 生成方法

利用采用数学方法产生 DTMF 信号 buffer[k]= sin(2*pi*k *f0/fs)+ sin(2*pi*k *f1/fs)

(式 2-1)

f0 为行频频率,f1 为列频频率,fs 为 8000 采样频率,k 为对信号的采样。

利用两个二阶数字正弦波振荡器产生 DTMF 信号(本课程设计实际采用方法)

DTMF 编码器基于两个二阶数字正弦波振荡器,一个用于产生行频,一个用于产生列频。向 DSP 装入相应的系数和初始条件,就可以只用两个振荡器产生所需的八个音频信号。典型的 DTMF 信号频率范围是 700~1700Hz,选取 8000Hz 作为采样频率,即可满足 Nyquist条件。由数字振荡器对的框图,可以得到该二阶系统函数的差分方程

(式 2-2)

其中 a1=-2cosω0,a2=1,ω0=2πf0 /fs,fs 为采样频率,f0 为输出正弦波的频率,A 为输出正弦波的幅度。该式初值为 y(-1)=0,y(-2)=-Asinω 0。CCITT 对 DTMF 信号规定的指标是,传送/ 接收率为每秒 10 个数字,即每个数字 100ms。代表数字的音频信号必须持续至少45ms,但不超过 55ms。100ms 内其他时间为静音,以便区别连续的两个按键信号。编程的流程如图 1 所示,由 CCITT 的规定,数字之间必须有适当长度的静音,因此编码器有两个任务,其一是音频信号任务,产生双音样本,其二是静音任务,产生静音样本。每个任务结束后,启动下一个任务前(音频信号任务或静音任务),都必须复位决定其持续时间的定时器变量。在静音任务结束后,DSP 从数字缓存中调出下一个数字, 判决该数字信号所对应的行频和列频信号,并根据不同频率确定其初始化参数 a1=-2cosω0 与 y(-2)=-Asinω0。该流程图可采用 C 语言实现,双音信号的产生则由 54x 汇编代码实现。整个程序作为 C 5 4 x 的多通道缓冲串口(McBsp)的发射串口中断服务子程序,由外部送入的 16000Hz 串口时钟触发中断,可实时处理并通过 D / A 转换器输出 DTMF 信令信号。

图 2-1 DTMF 编码流程

DTMF 信号的检测方法 DTMF信号的检测方法可以有多种。主要分为从信号时间域处理和从信号频率域处理两大类。

前一种方法包括:过零点位置检测法、信号峰值位置检测法、过零点位置及信号幅值检测法。其特点是实现简单,可以通过MT8880等芯片加上外围电路实现,易于集成化。缺点是易受干扰,对信噪比要求高。现在广泛应用于一般的脉冲拨号电话机。通过神经网络等辅助判别方法可以大大提高信号的识别率。

后一种方法包括:频率判断、能量判断两类。频率判断主要通过滤波器提取DTMF相应的频率信号进行比较判断,滤波器可以用窄带、低通、高通滤波器,应用方式可以有并联、级联、混合联接等方式。能量判断是直接对DTMF信号相应的能量进行计算,找出高、低频率群中最强的信号,进行判断,包括有DFT法(Discrete Fourier Transform)、FFT(Fast Fourier Transform)、Goertzel法等。

本次实验我们采用的是能量判断法,并采用了 Goertzel 算法。

设计方案、算法原理说明

Goertzel 算法原理

Goertzel算法信号解码是将两个音频信号提取出来,并通过他们的频率,确定所接受的DTMF数字。原来使用模拟技术音频信号频率进行检测,一般通过模拟电路进行过零点检测,通过零点计数完成对输入信号的频率检测。在数字信号检测电路中,一般使用频域计算技术代替时域信号处理。我们可以直接通过付立叶变换,直接得到输入的信号频率。信号各个频率分量的幅值直接计算可以使用DFT。对于N点数据序列{x(n)}的DFT为:     1 N ,..., 1 , 0 k , W n x k XnkN1 N0 n   

(式 3-1)

如果用FFT算法来实现DFT计算,计算将涉及复数乘法和加法,并且计算量为 N Nlog2。虽然我们可以得到DFT的所有N个值,然而,如果希望计算DFT的M个点,并且M< N log 2 时,可以看到,直接计算DFT则更加有效。下面我们用到Goertzel法,是一种直接计算DFT有效的方法。我们应用Goertzel算法对DTMF信号的检测,并且对其进行改进。

Goertzel算法,从根本上说,是计算DFT的一种线性滤波算法,它可以通过调整滤波器的中心频率和带宽,直接计算出DFT的系数。

Goertzel算法利用相位因子  kNW 的周期性。我们可以同时将DFT运算表示为线性滤波运算,由于kNNW=1,我们可以用该因子对公式(4)(DFT表达式)两边相乘,得到:          m N kN1 N0 mkNNnkN1 N0 nkNNW m x W W n x k X k X W     

(式 3-2)

我们注意到,上式就是卷积形式。可以定义序列   n Y K 为:      m N kN1 N0 mkW m x n Y 

(式 3-3)

显然,Yk(n)就是长度为N的有限长输入序列   n Y K 与具有如下单位脉冲响应的滤波器的卷积:     n u W n hknN k

(式 3-4)

可以看到,当n=N时,该滤波器的输出就是DFT在频点 kN2k  值 即

   N nKn Y k X

(式 3-5)

我们可以通过比较式(6)和式(7)来验证上式。对于单位脉冲响应为   n h k 的滤波器来说,其系统函数为:  1 kNkz W 11z H 

(式 3-6)

这个滤波器只有一个位于单位圆上的极点,其频率为 kN2K 。因此,可以使用输入数据块通过N个并行的单极点滤波器或者谐振器组来计算全部的DFT,其中每个滤波器有一个位于DFT响应频率的极点。

因此,对于式(7)的卷积计算,我们可以使用差分方程形式来表示用式(9)给出的滤波器,通过迭代的方法计算   n Y K,从而得出DFT的计算结果:         0 1 y , n x 1 n y W n yk kkN k    

(式 3-7)

计算涉及复数加法和复数乘法,计算量大。由于我们只需要计算幅值信息,而不关心相位信息。我们在单位圆上另外引入一个极点,与原有的极点形成一对共扼极点。将两个滤波器组成一对复数共轭极点的谐振器。原有的单极点滤波器计算方式变成形如式(10)的方式。其系统函数为:   2 11 kNzz z N k 2 cos 2 1z W 1z H   

(式 3-8)上式中:N / k j2 KNe W,为差分方程的系数。由于引入了复数共扼极点,避免了式(9)中复杂的复数加法和复数乘法。

显然,对式(10)无法进行直接计算。为了便于计算实现,我们引入中间变量   n Q k,将式(9)表示为差分方程形式:         n x 2 n Q 1 n QNk 2cos 2 n Qk k k       

(式 3-9)

式中,初始条件为:     N ,..., 1 , 0 n , 0 2 Q 1 Qk k    

        1 N Q W N Q N Y k XkkN k k    

(式 3-10)

其中,Nk 2kNe W

Goertzel 算法改进与实现 Goertzel算法是计算离散傅立叶变换的方法,需要计算的频率点数不超过21092 N时Goertzel算法将比FFT(Fast Fourier Transform)更为有效。Goertzel算法相当于一个二阶IIR滤波器,(10)式是它的转移函数我们可以根据(10)式画出改进Goertzel算法的模拟框图,如图 3-1所示 + ++      N2nk2cos1z      n x1z  -1Q(n)Q(n-1)-KNW  Q(n-2)    n y k

图 3-1

Goertzel算法的模拟框图 图2中可看到,整个计算过程分为两部分:前向通路式(11)和反馈通路式(12)。显然,对于式(11)的递推关系计算需要重复N=1,?,N重复N+1次,但是式(12)中的反向计算只需要在n=N时计算一淡。每次计算只需要计算一次实数乘法和两次实数加法。所以,对实数序列x(n), 由于对称性,用这种算法求出X(k)和X(N-k)的值需要N+1次实数乘法运算。

我们现在可应用Goertzel算法完成实现DTMF解码器了。由于有8种可能的音频信号需要检测。所以需要至少8个由式(9)给出的滤波器,将每个滤波器调谐到这8个频率值上。在完成信号判决时,我们并不需要相位信息,只需要幅值信息|X(k)|。因此,对式(12)两边进行平方,计算幅度的平方值|X(k)| 2。我们将递推方程式(9,11, 12)进一步简化,得到滤波器计算的前向部分的简化表达方式,即滤波表达式的分子项部分: 由于我们只需要幅值信息,不需要相位信息,因此,对前向部分进行改进,输出幅度平方值。

              1 N Q N QNk 2cos 2 1 N Q N Q N y N y k Xk k2k2k k k2   

(式 3-1)

改进 Goertzel 算法原理小结 在式(12)中可以使用A, B分别代替递归项,令   1 N Q Ak ,  2 N Q Bk  将离散付里叶变换DFT的改进计算过程总结写为:  k2 22kABcoef B A N y   

(式 3-2)

其中

  kN2cos 2 coef k,   2 2kk X N y 

可以看到,由于上面两式中: 忽略相位信息,使用实数运算,无复数运算。等式右边全部是实数运算,大大提高了运算速度,降低计算量。

实际实现中误差分析

舍入误差问题 我们再次回到公式 3-1 进行分析:

            1 N Q N QNk 22cos 1 N Q N y N y k XK K2K k k2   

(式 3-1)

简单地说,在实际的DSP实现中将使用(4)式和(6)式来得到DTMF信号的频谱信息,(4)式实际就是一个递归线性滤波器的表达式,它在n=0…N之间进行循环。每N个样点对公式(6)进行了一次计算。

在这个算法中,DTMF频率(f i)变换成了离散傅立叶系数(k),它们之间存在如下关系:,Nkffsi

这里,N是滤波器的长度,f s 是采样频率。在给定的采样频率下,我们可以通过调整N和K值,得到相应的DTMF频率(if)上的能量幅值。

但是,由于k和N是整数,有可能不能取到合适的DTMF频率(f i)。实际上,计算时如果采用FFT变换,计算字长N将被限定为2得n次方,每次计算可以同时得到N/2个频率点的幅度值。而对于DFT或Goertzel算法来说,对于N长度的算法,其可以分辨的最高频率为采样频率的一半。其输出序列为

{X(0)、X(1)……,X(N)} 对应的信号计算频率为f i ,i=0,1,…,N。所以,我们可以知道,可计算的信号频率存在一定的限制。式(4-12)给出了Goertzel算法的频率分辨率。对于不是正好在输出序列计算点上的信号频率,其计算结果分布在相近的频率值上,将会出现泄漏,这不是我们所期望的。

计算字长 N 的问题提出 N和k的选择不同,计算的误差会有很大不同。缩小N值,将显着减少计算量,所以N值的选取,是完成实时计算的核心。

在相关文献中,N值的选取也有很大的不同。有使用16个106字长计算完成信号监测及语音检测的,也有使用105字长或205字长完成Goertzel算法完成检测的,由此我们提出这样一个问题,在文所利用的Goertzel算法中,进行DTMF信号检测的最佳字长是多少? 由采样频率公式可知,在采样率一定的情况下,N值的取值同时决定Goertzel算法计算时对应的频率,即Goertzel滤波器的中心频率。通过改变N值,计算出我们感兴趣的对应一组k值,即完成DTMF频率检测。但是,由式(14)可知k取整数,计算中心频率的位置与实际的DTMF频率必然会产生一定的舍入误差。我们将Goertzel算法中的中心频率与实际的DTMF频率的差值定义为D。可以计算出D的最大值为 Dmax=2Nf s,当k的误差 k  =时,对应的频率百分比为:dtmfs2Nff,dtmff为所需计算的DTMF频率。

这实际上是DTMF频率位于“所计算的信号窗口的边缘”。当N值取较大值时,同时采取较高的采样频率可以取得较准确的检测结果,但是也加大了计算量。

由于N的取值,影响了计算时的Goertzel滤波器的中心频率的位置。实际应用中,首先需要确定N,同时对应不同的DTMF频率,取相应的k值,通过Goertzel算法,得到相应的X(k)。可以看到,N的取值是Goertzel算法设计DTMF信号检测器的关键,它直接决定了检测器的性能及对ITU建议的满足性。以下讨论在满足ITU要求的情况下,寻找的N值的过程,同时,我们在这里讨论的是误差的百分比,因此,可以通过计算点数的误差百分比来估计频率的百分比。

Goertzel 算法中 N 的选择要求 N的选择应考虑如下的因素:

频率偏移度不但要求主瓣宽度存在一定的范围之内,同时也和计算窗口中心频率有关。Goertzel算法种计算长度N的取值也影响到计算窗口中心频率的取值。

例如,如果N=125,f s

=8000Hz,对于770Hz信号的完成检测,频域分辨率为8000/125=64Hz,ITU规定的对于频率误差大于%的信号拒识,即对于770Hz信号为中心,宽度为到。的频率分辨率将矗立的信号为为中心,其他范围的频率则不满足规定要求。

舍入误差的寻优 根据siffN k  ,在Goertzel算法进行递归计算时k要取整数,因而存在舍入误差。舍入误差是随机和离散的,不同的N值和不同的f i 舍入误差是不同的,因此造成的频率的偏移也是不同的。由于k的舍入误差反映的是频率的偏移,因此必须兼顾每个频率,选择k舍入误差小得N值。表3-1列出了当N=125时,不同的频率k值的舍入误差,表3-2列出了当N=205时,不同的频率k值的舍入误差.信号频率(Hz)

k 计算值 k 相对偏差(%)

679

770

852

941

1209

1336

1477

1633

表3-1

N=125时不同的频率值k的舍入误差

信号频率(Hz)

k 计算值 k 相对偏差(%)

679

770

852

941

1209

1336

1477

1633

表3-2

N=205时不同的频率值k的舍入误差 由于k的舍入误差反映的是频率的偏移,因此必须选择k舍入误差小的N值。同时还要兼顾每个频率,每个频率k舍入误差都比较小,或者尽可能的都取“舍”或者都取“入”,这样就会使偏移比较小或者都向同一个方向偏移。

复杂度比较

直接计算离散傅里叶变换,对于每一个k值,需要4N次实数乘法及4N-2次的实数加法,N点的傅里叶变换需要24N 次实数乘法及N(4N-2)次实数加法,因此,采用直接法计算的计算复杂度为O(2N)。

对于Goertzel算法来说。其输入的X(n),Wk,是复数,每计算一个新输出Y值需要做四次实数加法和四次实数乘法。由于我们只需要幅值信息,对于相位信息可以忽略,通过变换得到幅值信息。因此,共需要N+l次实数乘法,计算复杂度为O(MN)。

对于单个解码器来说,对于每次成功完成DTMF信号解码的时间估计十分重要。通过对解码器的处理时间估计,我们可以得到其处理性能,通过对处理性能评价,就可以预计单个解码器工作时可以承载的最大信道个数。在这里,定义DTMF解码器成功完成两个DTMF信号解码之间所耗费的时间可以这样估算: 每处理一个采样样本的时间间隔允许的最大值为:

 ssf1T 125 s 

(式3-3)

前向计算所需的时间为:sT N

可以看到,计算时间主要决定于计算字长N。对于每一个需要检测的频率,都必须进行(N+4)次实数乘法和(N十2)次加法。检测8个DTMF频率需要的总共的计算量为:(8N+ 32)次乘法与(16N十16)次实数加法。

算法流程图

图 4-1 程序算法流程图

源程序注释

初始化程序 rn“,ch);

}

else

中DTMF-SEND&RECEIVE,双击,即可加载.out 文件。CCS 将程序装载到目标 DSP 上,打开显示程序反汇编指令的 Disassembly 窗口。选择 Debug/Go Main,从主程序开始执行。最后单击 Debug-Run(或按 F5 键)运行程序。

图 6-10 下载 gel 文件

图 6-11

程序编译成功

图 6-12

将程序下载到实验箱

图 6-13

程序运行

图 6-13

打开 gel 文件滚动条

实验结果及图像 本次实验中,我们通过一台电脑循环产生 0——9、A、B、C、D、*、#,在另一台电脑上会循环显示检测到的 DTMF 信号,即循环显示 0——9、A、B、C、D、*、#。

下面我们从时域和频域两个角度观察一下检测信号的波形:

使用 CCS 中 Graph 显示 发送端的时域图形参数设置及显示结果如下所示 :

图 6-14

发送缓存区图形参数设置(时域及频域)

图 6-15 发送缓存区时域图形显示

图 6-16 发送缓存区波形频谱显示

检测端的时域图形参数设置及显示结果如下所示 :

图 4-17 检测缓存区图形参数设置(时域及频域)

图 6-18 发送缓存区时域图形显示

图 6-19 发送缓存区波形频谱显示

.2

使用虚拟仪器显示

图 6-20 发送端信号时域波形

图 6-21 发送端信号频谱 7.遇到的问题及解决方法 【 问题一】

新建工程时头文件路径不匹配,文件编译出错。

解决方法:在菜单栏中选中 Project-Build Options-Compiler-preprocessor-Include Search Path,添加正确路径即可。

【 问题二】

数据类型定义不当导致 cmd 文件中,内存分配不足,文件编译出错。

解决方法:打开 Debug 中的.map 文件,观察缓存溢出情况,修改 cmd 文件内存分配。

【 问题三】

声卡抽样频率设置有误,导致虚拟仪器观察输出波形时,出现多余频谱分量。

解决方法:打开,更改波特率设置,即采样频率设置为 8K 后,输出信号频谱正常。

【 问题四】

信号幅度控制与自适应阈值选取衔接有误。

解决方法:算法有误,后采取合理算法即原域值 30%+倍第二大频点的幅度平方值 70%(thresh=thresh*+*(linshi[1]*),信号检测正常。

【 问题五】

阈值选取不当,无法正常检测输出信号。

解决方法:经过多次尝试并修改阈值,最终选取合理阈值,正常判决、检测以及显示结果。

8.心得体会

刘璐:

双音多频DTMF信号是在按键式电话机上广泛应用的的音频信号,由于我家里最早接触的就是固话,一开始对这个题目比较感兴趣,就选择了这个题目。

通过看课件与查阅资料逐渐懂得了DTMF信号产生与检测的原理,熟悉了利用CSS这款软件和DSK板调试的过程。刚开始只知道按部就班的把过程操作一遍,后来通过学习也渐渐知道添加的*.lib,*.h这些文件的意义所在,比如(支持C语言运行的库)、、(是使用dsk板所需的库),c5400/cgtools/include里面含有dsp通用头文件,与硬件无关,而c5400/dsk5402/include中是硬件专用头文件等等。还有关于C语言在DSP课程设计中的应用和以前大一所学习的简单常用的C语言还是很有些区别,要掌握好编程还需要学习和努力。还有一个体会就是最后几天要接到实验板实在很困难,早上起的很早可能也没法借到板子来调试。

这次实验收获很大,掌握了一些对于CCS的运用,学习了DTMF信号的产生与检测的原理,学习了C语言的编程在dsp中的应用,真正体会到了DSP芯片强大的运算和处理能力,并且这次的课程设计不仅仅让我们学会如何使用DSP芯片以及应用,更是给我们今后在实际解决或系统设计时提供了一种设计思路,可根据不同系统的设计要求采用性能要求不同的DSP处理芯片来解决实际问题,同时有效地锻炼和提高了我们的软件编程能力。

总之,此次的课程设计使我收获颇丰,不仅掌握了 DTMF 信号的相关知识与 CCS 的操作,更锻炼了我处理问题的实际能力和思考问题的方法,这也必将对日后的科研相关工作奠定积极的意义。最后感谢老师对我的耐心细致的指导,谢谢老师。

9.参考文献 [1]高海林 钱满义编写《DSP技术及其应用》清华大学出版社 [2] 陈后金等 《信号分析与处理实验》 高等教育出版社

[3] DTMF Tone Generation and Detection:An Implementation Using the TMS320C54x.SPRA096a ,唐达强.双音多频信号接收器的设计与实现(硕士学位论文).北京:北方交通大学.1990 [5]陈通,曹小强.基于 NDFT Goertzel 滤波器的 DTMF 信号检测的改进方法.西南大学学报.2008 [6]李义府.双音多频信号检测在 DSP 中的实现.中南大学信息科学与工程学院.2006 [7]薛曼芳.基于改进的 Goertzel 算法的双音多频检测器的设计.甘肃:兰州工业高等专科学校.2008

第二篇:信号与系统仿真实验报告

信号与系统

仿真

实 验 报 告

班级: 学号: 姓名: 学院:

实验一

一、实验者姓名:

二、实验时间:

三、实验地点:

四、实验题目:

5(s25s6)求三阶系统H(s)3的单位阶跃响应,并绘制响应波形图。

s6s210s8

五、解题分析:要知道求单位阶跃响应需知道所用函数,以及产生波形图所需要用到的函数。

六、试验程序:

num=[5 25 30];den=[1 6 10 8];step(num,den,10);title(‘Step response’)

七、实验结果:

实验所得波形图如下:

Step response4.543.53Amplitude2.521.510.50012345Time(sec)678910

八、实验心得体会:通过本次试验了解学会了一些新的函数的应用。了解到了N阶系统的单位阶跃响应的计算方法,和系统的响应波形图的函数应用和绘制方法。为后面的实验打下基础,并对信号仿真和《信号与系统》这门课程之间的联系有所增加,对《信号与系统》这门课里的问题也有了更加深入地了解。

九、实验改进想法:无。

实验二

一、实验者姓名:

二、实验时间:

三、实验地点:

四、实验题目:

一个因果线性移不变系统y(n)0.81y(n2)x(n)x(n2),求:(1)H(z);(2)冲激响应h(n);(3)单位阶跃响应u(n);(4)H(ej),并绘出幅频和相频特性。

五、解题分析:离散卷积是数字信号处理中的一个基本运算,MTLAB提供的计算两个离散序列卷积的函数是conv,其调用方式为 y=conv(x,h)。其中调用参数x,h为卷积运算所需的两个序列,返回值y是卷积结果。

MATLAB函数conv的返回值y中只有卷积的结果,没有y的取值范围。由离散序列卷积的性质可知,当序列x和h的起始点都为k=0时,y的取值范围为k=0至length(x)+length(h)-2。

许多离散LTI都可用如下的线性常系数的差分方程描述

ay[kn]bx[kn]

nnn0n0NN其中x[k]、y[k]分别系统的输入和输出。在已知差分方程的N个初始状态y[k],和输入x[k],就可由下式迭代计算出系统的输出

y[k](an/a0)y[kn](bn/b0)x[kn]

n1n0NM利用MATLAB提供的filter函数,可方便地计算出上述差分方程的零状态响应。filter函数调用形式为 y=filter(b,a,x)。其中 a[a0,a1,...,aN],b[b0,b1,...,bM],分别表示差分方程系数。X表示输入序列,y表示输出序列。输出序列的长度和序列相同。

当序列的DTFT可写成ej的有理多项式时,可用MATLAB信号处理工具箱提供的freqz函数计算DTFT的抽样值。另外,可用MATLAB提供的abs、angle、real、imag等基本函数计算 DTFT的幅度、相位、实部、虚部。若X(ej)可表示为

b0b1ej...bMejMB(ej)X(e)jjjNA(e)a0a1e...aNe则freqz的调用形式为 X=freqz(b,a,w),其中的b和 a分别是表示前一个

j式子中分子多项式和分母多项式系数的向量,即a[a0,a1,...,aN],w为抽样的频率点,向量w的长度至少为2。返回值X就是DTFTb[b0,b1,...,bM]。在抽样点w上的值。注意一般情况下,函数freqz的返回值X是复数。

六、实验程序:

clc;clear;close;b=[1 0-1];a=[1 0-0.81];figure(1);subplot(2,1,1);dimpulse(b,a,20)subplot(2,1,2);dstep(b,a,50)w=[0:1:512]*pi/512;figure(2);freqz(b,a,w)

七、实验结果:

冲击响应图及阶跃响应图:

Impulse Response1Amplitude0.50-0.50246810Time(sec)Step Response12141618201Amplitude0.500510152025Time(sec)3035404550 100Magnitude(dB)0-100-200-30000.10.20.30.40.50.60.70.8Normalized Frequency( rad/sample)0.91100Phase(degrees)500-50-10000.10.20.30.40.50.60.70.8Normalized Frequency( rad/sample)0.91

八、实验心得体会:通过实验我们知道了使用Matlab来绘出出一个线性移不变系统的幅频和相频曲线。并知道了在《信号与系统》中得一些差分方程和各种响应,譬如零输入相应、零状态响应、全响应、自由响应、强迫响应、冲击响应、单位阶跃响应等等各种响应在Matlab中的函数表达方式和他们的求法,以及系统的幅频和相频曲线的绘制都有了一定深刻的认识。

九、实验改进想法:无。

实验三

一、实验者姓名:

二、实验时间:

三、实验地点:

四、实验题目:

模拟信号x(t)2sin(4t)5cos(8t),求N64的DFT的幅值谱和相位谱。

五、解题分析:在MATLAB信号处理工具箱中,MATLAB提供了4个内部函数用于计算DFT和IDFT,它们分别是:fft(x),fft(x,N),ifft(X),ifft(X,N)。

fft(x)计算M点的DFT。M是序列x的长度,即M=length(x)。

fft(x,N)计算N点的DFT。若M>N,则将原序列截短为N点序列,再计算其N点DFT;若M

ifft(X)计算M点的IDFT。M是序列X的长度。

ifft(X,N)计算N点IDFT。若M>N,则将原序列截短为N点序列,再计算其N点IDFT;若M

六、实验程序:

clc;clear;close;N=64;n=0:63;t=d*n;q=n*2*pi/N;x=2*sin(4*pi*t)+5*cos(8*pi*t);y=fft(x,N);subplot(3,1,1);plot(t,x);title(‘source signal’);subplot(3,1,2);plot(q,abs(y));title(‘magnitude’);subplot(3,1,3);plot(q,angle(y));title(‘phase’);

七、实验结果:

***0100806040200|F(k)|05101520Frequency253035

***0100806040200|F(k)|05101520Frequency253035 4321|jW|0-1-2-3-405101520Frequency253035Step Response400020000-2000 Amplitude-4000-6000-8000-10000-12000-1400001234n(samples)5678

八、实验心得体会:通过本次试验我知道了求取模拟信号在N等于一定值时的的DFT的幅值谱和相位谱的求法。通过本次实验,对幅值谱和相位谱有了更深的了解,并与课程《信号与系统》里的一些相关知识连接到了一起,使得学到的只是更加深刻、有意义。

九、实验改进想法:无。

实验四

一、实验者姓名:

二、实验时间:

三、实验地点:

四、实验题目:

将信号x(t)sin(240t)做离散序列,比较原序列与经过FFT和IFFT变换后的序列,并做出说明。

五、解题分析:此题需要对信号做离散序列,还要做FFT和IFFT变换,然后得到图像进行比较。连续时间函数与离散时间函数在编程中的区别主要体现在如下两个方面:第一,自变量的取值范围不同,离散时间函数的自变量是整数,而连续时间函数的自变量为一定范围内的实数;第二,绘图所用的函数不同,连续函数图形的绘制不止一个。本实验中要求绘制离散时间信号图,可以应用MATLAB中的函数来实现。用MATLAB表示一离散序列,可用两个向量来表示。其中一个向量表示自变量的取值范围,另一个向量表示序列的值。之后画出序列波形。当序列是从0开始时,可以只用一个向量x来表示序列。由于计算机内寸的限制,MATLAB无法表示一个无穷长的序列。对于典型的离散时间信号,可用逻辑表达式来实现不同自变量时的取值。

六、实验程序:

t=0:1/255:1;x=sin(2*pi*120*t);y=real(ifft(fft(x)));subplot(2,1,1);plot(t,x);title(‘原波形’);subplot(2,1,2);plot(t,y);

七、实验结果:

原波形10.50-0.5-100.10.20.30.40.50.60.70.80.91恢复的波形10.50-0.5-100.10.20.30.40.50.60.70.80.91

八、实验心得体会:通过对做信号的离散序列以及经FFT和IFFT的变换,了解了相关特性。通过计算机做出的信号波形图,我们能够很直白的看出原波形和经过变换后的波形的差别。

九、实验改进想法:无。

实验五

一、实验者姓名:

二、实验时间:

三、实验地点:

四、实验题目:

2s,激励信号22(s1)100x(t)(1cot)sco1s0(t)0,求(1)带通滤波器的频率响应;(2)输出稳态响应并绘制图形。已知带通滤波器的系统函数为H(s)

五、解题分析:需要知道求频率响应的方法,并绘制图形。

六、实验程序:

clear;t=linspace(0,2*pi,1001);w=[99,100,101];U=[0.5,1,0.5];b=[2,0];a=[1,2,10001];u1=U*cos(w’*t+angle(U’)*ones(1,1001));H=polyval(b,j*w)./polyval(a,j*w);H=freqs(b,a,w);subplot(2,1,1),plot(w,abs(H)),grid;subplot(2,1,2),plot(w,angle(H)),grid;u21=abs(U(1)*H(1))*cos(99*t+angle(U(1)*H(1)));u22=abs(U(2)*H(2))*cos(100*t+angle(U(2)*H(2)));u23=abs(U(3)*H(3))*cos(101*t+angle(U(3)*H(3)));u2=u21+u22+23;figure(2);subplot(2,1,1),plot(t,u1);subplot(2,1,2),plot(t,u2);

七、实验结果:

10.90.80.79910.50-0.5-19999.299.499.699.8100100.2100.4100.6100.810199.299.499.699.8100100.2100.4100.6100.8101

210-1-***222101234567

八、实验心得体会:通过本次试验,了解了频率响应求法,加深了对输出稳态响应的印象。

九、实验改进想法:无。

第三篇:信号与系统实验报告1

长江大学电工电子实验中心实验报告

野外获得的重力数据要作进一步处理和解释才能解决所提出的地质任务﹐主要分3个阶段﹕野外观测数据的处理﹐并绘制各种重力异常图﹔重力异常的分解(应用平均法﹑场的变换﹑频率滤波等方法)﹐即从叠加的异常中分出那些用来解决具体地质问题的异常﹔确定异常体的性质﹑形状﹑产状及其他特征参数。解释

解释分为定性的和定量的两个内容﹐定性解释是根据重力图并与地质资料对比﹐初步查明重力异常性质和获得有关异常源的信息。除某些构造外﹐对一般地质体重力异常的解释可遵循以下的一些原则﹕极大的正异常说明与围岩比较存在剩馀质量﹔反之﹐极小异常是由质量亏损引起的。靠近质量重心﹐在地表投影处将观测到最大异常。最大的水平梯度异常相应于激发体的边界。延伸异常相应于延伸的异常体﹐而等轴异常相应于等轴物体在地表的投影。对称异常曲线说明质量相对于通过极值点的垂直平面是对称分布的﹔反之﹐非对称曲线是由于质量非对称分布引起的。在平面上出现几个极值的复杂异常轮廓﹐表明存在几个非常接近的激发体。定量解释是根据异常场求激发体的产状要素建立重力模型。一种常用的反演方法是选择法﹐即选择重力模型使计算的重力异常与观测重力异常间的偏差小于要求的误差。

由于重力反演存在多解性﹐因此﹐必须依靠研究地区的地质﹑钻井﹑岩石密度和其他物探资料来减少反演的多解性。应用运用领域

在区域地质调查﹑矿产普查和勘探的各个阶段都可应用重力勘探﹐要根据具体的地质任务设计相应的野外工作方法。应用条件

应用重力勘探的条件是﹕被探测的地质体与围岩的密度存在一定的差别﹔被探测的地质体有足够大的体积和有利的埋藏条件﹔干扰水平低。意义 重力勘探解决以下任务﹕

1、研究地壳深部构造﹔研究区域地质构造﹐划分成矿远景区﹔

2、掩盖区的地质填图﹐包括圈定断裂﹑断块构造﹑侵入体等﹔

3、广泛用于普查与勘探可燃性矿床(石油﹑天然气﹑煤)﹐

4、查明区域构造﹐确定基底起伏﹐发现盐丘﹑背斜等局部构造﹔

5、普查与勘探金属矿床(铁﹑铬﹑铜﹑多金属及其他)﹐主要用于查明与成矿有关的构造和岩体﹐进行间接找矿﹔

6、也常用于寻找大的﹑近地表的高密度矿体﹐并计算矿体的储量﹔工程地质调查﹐如探测岩溶﹐追索断裂破碎带等。

第四篇:信号与系统 MATLAB实验报告

院系:

年级:

姓名:

实验时间:

实验地点:

MATLAB实验报告

专业:

班号:

学号:

《信号与系统》

实验一 连续时间信号的表示及可视化

实验题目:

f(t)(t);f(t)(t);f(t)eat(分别取a0及a0); f(t)R(t);f(t)Sa(t);f(t)Sin(2ft)(分别画出不同周期个数的波形)。

解题分析:

以上各类连续函数,先运用t = t1: p:t2的命令定义时间范围向量,然后调用对应的函数,建立f与t的关系,最后调用plot()函数绘制图像,并用axis()函数限制其坐标范围。

实验程序:

(1)f(t)(t)

t=-1:0.01:3 %设定时间变量t的范围及步长 f=dirac(t)%调用冲激函数dirac()plot(t,f)%用plot函数绘制连续函数 axis([-1,3,-0.5,1.5])%用axis函数规定横纵坐标的范围(2)f(t)(t)

t=-1:0.01:3 %设定时间变量t的范围及步长 f=heaviside(t)%调用阶跃函数heaviside()plot(t,f)%用plot函数绘制连续函数 title('f(t)=heaviside(t)')%用title函数设置图形的名称 axis([-1,3,-0.5,1.5])%用axis函数规定横纵坐标的范围(3)f(t)eat

a=1时:

t=-5:0.01:5 %设定时间变量t的范围及步长 f=exp(t)%调用指数函数exp()

plot(t,f)%用plot函数绘制连续函数 title('f=exp(t)')%用title函数设置图形的名称 axis([-5,5,-1,100])%用axis函数规定横纵坐标的范围 a=2时:

t=-5:0.01:5 f=exp(2*t)%调用指数函数exp()plot(t,f)title('f=exp(2*t)')axis([-5,5,-1,100])a=-2时: t=-5:0.01:5 f=exp(-2*t)plot(t,f)title('f=exp(-2*t)')axis([-5,5,-1,100])(4)f(t)R(t)

t=-5:0.01:5 f=rectpuls(t,2)%用rectpuls(t,a)表示门函数,默认以零点为中心,宽度为a plot(t,f)title('f=R(t)')axis([-5 5-0.5 1.5])(5)f(t)Sa(t)

ω=1时: t=-20:0.01:20 f=sin(t)./t %调用正弦函数sin(),并用sin(t)./t实现抽样函数 plot(t,f)title('f(t)=Sa(t)')axis([-20,-20,-0.5,1.1])3

ω=5时: t=-20:0.01:20 f=sin(5*t)./(5*t)plot(t,f)title('f(t)=Sa(5*t)')axis([-20,-20,-0.5,1.1])(6)f(t)Sin(2ft)

ω=1时: t=-10:0.01:10 f=sin(t)%plot(t,f);title('f=sin(t)')axis([-10,10,-2,2])ω=5时: t=-10:0.01:10 f=sin(5*t)plot(t,f);title('f=sin(5*t)')axis([-10,10,-2,2])

实验结果;

(1)

调用正弦函数sin()4

1.510.50-0.5-1-0.500.511.522.532)

f(t)=heaviside(t)1.510.50-0.5-1-0.500.511.522.533)((a=1时:

f=exp(t)***3020100-5-4-3-2-1012345a=2时:

f=exp(2*t)***3020100-5-4-3-2-1012345

a=-2时:

f=exp(-2*t)***3020100-5-4-3-2-1012345(4)

f=R(t)1.510.50-0.5-5-4-3-2-1012345

(5)ω=1时:

f(t)=Sa(t)10.80.60.40.20-0.2-0.4-20-15-10-505101520ω=5时:

f(t)=Sa(5*t)10.80.60.40.20-0.2-0.4-20-15-10-505101520(6)ω=1时:

f=sin(t)21.510.50-0.5-1-1.5-2-10-8-6-4-20246810

ω=5时:

f=sin(5*t)21.510.50-0.5-1-1.5-2-10-8-6-4-20246810

实验心得体会:(1)在 MATLAB中,是用连续信号在等时间间隔点的样值来近似地表示连续信号的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。在 MATLAB 中t = t1: p: t2的命令定义时间范围向量,t1为信号起始时间,t2为终止时间,p为时间间隔。

(2)plot()函数可用于连续函数的绘制。

(3)用axis()函数限制坐标范围,可使图像更加匀称美观。

改进想法:

本题中函数的表示方法都不只一种。如阶跃函数可以借助符号函数来实现可视化。其程序和结果如下: t=-5:0.05:5 f=sign(t)%调用符号函数sign()axis([-5,5,-1.1,1.1])

ff=1/2+1/2*f %运用阶跃函数与符号函数的关系,表示出阶跃函数ff plot(t,ff)axis([-5,5,-0.1,1.1])

f=heaviside(t)10.80.60.40.20-5-4-3-2-1012345

实验二 离散时间信号的表示及可视化

实验题目:

f(n)(n);f(n)(n);f(n)ean(分别取a0及a0);

f(n)RN(n)(分别取不同的N值);f(n)Sa(n); f(n)Sin(n)(分别取不同的值);

解题分析:

以上各类离散函数,可仿照连续函数的可视化,先运用n =n1: p: n2的命令定义自变量的范围及步长,然后调用对应的函数,建立f与t的关系,最后调用stem()函数绘制图像,并用axis()函数限制其坐标范围。

实验程序:

(1)f(n)(n)

n=-5:0.5:5 %设定时间变量n的范围及步长 f=dirac(n)stem(n,f)%调用stem()绘制离散函数 title('f=dirac(t)')axis([-5,5,-3,10])%用axis函数规定横纵坐标的范围(2)f(n)(n)

n=-5:0.5:5 f=heaviside(n)stem(n,f)title('f=Heaviside(t)')axis([-5,5,-0.5,1.5])(3)f(n)ean

a=1时:

n=-5:0.5:5 f=exp(n)stem(n,f)title('f=exp(n)')a=2时: n=-5:0.5:5 f=exp(2*n)stem(n,f)title('f=exp(2*n)')a=-2时: n=-5:0.5:5 f=exp(-2*n)stem(n,f)title('f=exp(-2*n)')(4)f(n)RN(n)

n=-5:0.5:5 f=rectpuls(n,2)stem(n,f)title('f=R(n)')axis([-5,5,-0.5,1.5])(5)f(n)Sa(n)

ω=1时: n=-20:0.5:20 f=sin(n)./(n)stem(n,f)title('f=Sa(n)')axis([-20,-20,-0.5,1.1])ω=5时: n=-20:0.5:20 f=sin(5*n)./(5*n)13

stem(n,f)title('f=Sa(5*n)')axis([-20,-20,-1,5])(6)f(n)Sin(n)

ω=1时: n=-5:0.5:5 f=sin(n)stem(n,f)title('f=sin(n)')axis([-5,5,-2,2])ω=5时: n=-5:0.5:5 f=sin(5*n)stem(n,f)title('f=sin(5*n)')axis([-5,5,-2,2])

实验结果;

(1)

f=dirac(t)1086420-2-5-4-3-2-10123452)

f=Heaviside(t)1.510.50-0.5-5-4-3-2-10123453)((a=1时:

f=exp(n)150100500-5-4-3-2-1012345a=2时:

2.5x 104f=exp(2*n)21.510.50-5-4-3-2-1012345

a=-2时:

4f=exp(-2*n)2.5x 1021.510.50-5-4-3-2-1012345(4)

f=R(n)1.510.50-0.5-5-4-3-2-1012345

(5)ω=1时:

f=Sa(n)10.80.60.40.20-0.2-0.4-20-15-10-505101520ω=5时:

f=Sa(5*n)0.250.20.150.10.050-0.05-0.1-0.15-0.2-20-15-10-505101520(6)ω=1时:

f=sin(n)21.510.50-0.5-1-1.5-2-5-4-3-2-1012345

ω=5时:

f=sin(5*n)21.510.50-0.5-1-1.5-2-5-4-3-2-1012345

实验心得体会: 用plot()函数可以绘制离散序列,但是与连续序列有所不同,需要在括号内加上'.'。但是plot()画出来的函数图像不直观,显得很凌乱。

改进想法:

(1)对于离散函数,如果使用stem(n,f, '.')函数,绘图效果更好。如抽样函数的程序: n=-20:0.5:20 f=sin(n)./(n)stem(n,f,'.')title('f=Sa(n)')axis([-20,-20,-0.5,1.1])绘图结果如下:

f=Sa(n)10.80.60.40.20-0.2-0.4-20-15-10-505101520

对比可知此法做出的图像更加清晰美观。

(2)MATLAB 可以自动地根据曲线数据的范围选择合适的坐标系,从而使得曲线尽可能清晰地显示出来,一般情况下不必选择坐标系。但是,如果对 MATLAB自动产生的坐标轴不满意,可以利用 axis 命令对坐标轴进行调整。

实验三 系统的时域求解

实验题目:

1.设h(n)(0.9)nu(n),x(n)u(n)u(n10),求y(n)x(n)*h(n),并画出x(n)、h(n)、y(n)波形。

y(n)0.81y(n2)x(n)x(n2)的单位

j2.求因果线性移不变系统抽样响应h(n),并绘出H(e)的幅频及相频特性曲线。

解题分析:

1.用heaviside()和exp()函数 表示出x(n)和h(n),然后调用conv()函数实现x(n)和h(n)的卷积y(n)。并且分别将三个函数图像绘出。

2.通过给矩阵a,b赋值,建立系统差分方程,然后调用impz()函数求系统的冲激响应,再用函数freqs(b,a)进行系统频率响应的分析。

实验程序:

(1)

n=-10:20 %设置变量范围,默认步长为1 f=heaviside(n)x=heaviside(n)-heaviside(n-10)%阶跃函数直接相减 figure(1)%产生图像窗口1 stem(n,x)%绘制函数x title('x(n)')h=0.9.^n.*f %函数h的表达式 figure(2)%产生图像窗口2 stem(n,h)%绘制函数h title('h(n)')n1=-20:40 y=conv(h,x)%调用conv()函数求h和x的卷积

figure(3)%产生图像窗口3 stem(y)%绘制函数y title('y(n)=x(n)*h(n)')(2)

a=[1 0-0.81] %描述系统的差分方程的系数 b=[1 0-1] %描述系统的差分方程的系数 figure(1)h=impz(n,m,-10:10)%调用impz()函数求系统的冲激响应 stem(h)%绘制函数h的离散序列 title('h(n)')figure(2)freqs(b,a)%对连续系统频率响应H(jw)进行分析的函数freqs()

实验结果;

(1)

x(n)10.90.80.70.60.50.40.30.20.10-10-505101520

h(n)0.90.80.70.60.50.40.30.20.10-10-505101520y(n)=x(n)*h(n)***05060702)

(h(n)1.210.80.60.40.20-0.20510152025

100.09udeti100.05agnM100.0110-210-1100101Frequency(rad/s)1)s0.5reeeg(d0e hasP-0.5-110-210-1100101Frequency(rad/s)

实验心得体会:

(1)计算离散序列的卷积时,应考虑其结果的横坐标范围的改变。(2)向量相乘时,注意用‘.’。

(3)借助MATLAB的内部函数conv()可以很容易地完成两个信号的卷积运算,并且其完成的是两个多项式的乘法运算,在MATLAB中它们的系数构成一个行向量来表示。

(3)表示系统的方法是用系统函数分子和分母多项式系数行向量来表示。

改进想法:

(1)n=-10:20 %f=heaviside(n)x=heaviside(n)-heaviside(n-10)%figure(1)%axis([-10,20,0,1])stem(n,x)%title('x(n)')h=0.9.^n.*f %figure(2)%stem(n,h)%axis([-10,20,0,1])title('h(n)')n1=-20:40 y=conv(h,x)%figure(3)%stem(y)%axis([0,62,0,7])title('y(n)=x(n)*h(n)')

运行结果:

设置变量范围,默认步长为1

阶跃函数直接相减 产生图像窗口1 绘制函数x 函数h的表达式 产生图像窗口2 绘制函数h 调用conv函数求h和x的卷积 产生图像窗口3 绘制函数y 26

x(n)10.90.80.70.60.50.40.30.20.10-10-505101520h(n)10.90.80.70.60.50.40.30.20.10-10-505101520

y(n)=x(n)*h(n)***405060

实验四 信号的DFT分析

实验题目:

计算余弦序列x(n)cos(8n)RN(n)的DFT。分别对N=10、16、22时计算DFT,绘出X(k)幅频特性曲线,分析是否有差别及产生差别的原因。

解题分析:

用矩阵代替门函数给变量n赋值,并设定不同的N值,然后调用fft()函数实现函数的傅里叶变换,然后用subplot()和stem()函数绘图。

实验程序:

(1)N=10时:

N=10 %设定N的值为10 n=[0:N-1] %用矩阵代替门函数给n赋值 x=cos((pi/8).*n)%调用cos()函数

y=fft(x)%调用fft()函数求x的傅里叶变换 subplot(2,1,1),stem(n,y)%绘制y的离散图 title('DFT[cos((pi/8)*n]')subplot(2,1,2),stem(n,abs(y))%绘制y的幅频特性曲线 title('X(k)')(2)N=16时:

N=16 %设定N的值为16 n=[0:N-1] %用矩阵代替门函数给n赋值 x=cos((pi/8).*n)%调用cos()函数

y=fft(x)%调用fft()函数求x的傅里叶变换 subplot(2,1,1),stem(n,y)%绘制y的离散图 title('DFT[cos((pi/8)*n]')subplot(2,1,2),stem(n,abs(y))%绘制y的幅频特性曲线

title('X(k)')(3)N=22时:

N=22 %设定N的值为22 n=[0:N-1] %用矩阵代替门函数给n赋值 x=cos((pi/8).*n)%调用cos()函数

y=fft(x)%调用fft()函数求x的傅里叶变换 subplot(2,1,1),stem(n,y)%绘制y的离散图 title('DFT[cos((pi/8)*n]')subplot(2,1,2),stem(n,abs(y))%绘制y的幅频特性曲线 title('X(k)')

实验结果;

(1)N=10时:

DFT[cos((pi/8)*n]3210-10123456789X(k)64200123456789(2)N=16时:

DFT[cos((pi/8)*n]1050-5051015X(k)864200510153)N=22时:

DFT[cos((pi/8)*n]6420-20510152025X(k)***1(实验结果分析:

由图可知,不同的N值所对应的DFT序列和幅频响应不同,是因为N代表DFT的变换区间长度,当N取不同的值时,函数所对应的离散傅里叶变换和幅频特性曲线也不同。

实验心得体会: MATLAB是计算机运算,无法实现无限时间信号和无限大数量的计算,故而周期信号只能取有限个谐波分量近似合成,即N值有限,且N值越大,仿真结果越接近。所以手工求取的傅里叶变换系数与MATLAB求取存在差别。

实验五 系统时域解的快速卷积求法

实验题目:

用快速卷积法计算系统响应

y(n)x(n)*h(n),已知:

x(n)sin(0.4n)R15(n),h(n)0.9nR20(n)。要求取不同的L点数,并画出x(n)、h(n)、y(n)波形,分析是否有差别及产生差别的原因。

解题分析:

根据离散序列卷积及傅里叶变换的性质,可先求出两函数x(n)和h(n)的L点傅里叶变换,分别得到Xk和Yk,然后求Xk和Yk之积Hk的傅里叶反变换,即得到了x(n)和h(n)的卷积y(n)。

实验程序:

L=10时:

n1=[0:14] %用矩阵代替门函数给n1赋值 x=sin(0.4.*n1)%写出x的表达式 n2=[0:19] %给n2赋值 y=0.9.^n2 %写出y的表达式

Xk=fft(x,10)%调用fft()函数求x的L(=10)点傅里叶变换 Yk=fft(y,10)%求y的L点傅里叶变换 Hk=Xk.*Yk %写出Hk的表达式

h=ifft(Hk)%调用ifft()函数求Hk的傅里叶反变换 subplot(3,1,1),stem(x)%绘制x的离散图 title('x(n)')subplot(3,1,2),stem(y)%绘制y的离散图 title('y(n)')subplot(3,1,3),stem(h)%绘制h的离散图 title('h(n)')xlabel('L=10')%横坐标处做标注

(2)L=18时: n1=[0:14] x=sin(0.4.*n1)n2=[0:19] y=0.9.^n2 Xk=fft(x,18)Yk=fft(y,18)Hk=Xk.*Yk h=ifft(Hk)subplot(3,1,1),stem(x)title('x(n)')subplot(3,1,2),stem(y)title('y(n)')subplot(3,1,3),stem(h)title('h(n)')xlabel('L=18')(3)L=28时: n1=[0:14] x=sin(0.4.*n1)n2=[0:19] y=0.9.^n2 Xk=fft(x,28)Yk=fft(y,28)Hk=Xk.*Yk h=ifft(Hk)subplot(3,1,1),stem(x)title('x(n)')subplot(3,1,2),stem(y)title('y(n)')subplot(3,1,3),stem(h)title('h(n)')34

xlabel('L=28')(4)L=35时: n1=[0:14] x=sin(0.4.*n1)n2=[0:19] y=0.9.^n2 Xk=fft(x,35)Yk=fft(y,35)Hk=Xk.*Yk h=ifft(Hk)subplot(3,1,1),stem(x)title('x(n)')subplot(3,1,2),stem(y)title('y(n)')subplot(3,1,3),stem(h)title('h(n)')xlabel('L=35')

实验结果;

(1)L=10时:

x(n)10-1051015y(n)10.***1820h(n)42012345678910L=102)L=18时:

x(n)10-1051015y(n)10.***1820h(n)50-***8L=183)L=28时:

36((x(n)10-1051015y(n)10.***1820h(n)50-5051015202530L=284)L=35时:

x(n)10-1051015y(n)10.***1820h(n)50-***L=35

37(实验结果分析:

由图可知,当L取不同的值时,对应的y(n)波形形状相似,但是有所不同,产生这种差别的原因是L代表傅里叶变换区间长度,当L取不同的值时,所对应的函数波形也有所差别。

实验心得体会:(1)计算离散序列的卷积,虽然本实验的快速卷积方法看上去多次变换了变量的域,使过程变复杂了,但实际上减少了计算量,是一种快速而简单的方法。(2)用subplot绘图函数可将图形窗口分成若干等份,便于将多个图像进行分组或者比较。

改进想法:

当L取不同的值时,matlab自动生成的图像的横纵坐标范围不同,不便于相互比较,因此可以自己规定坐标轴范围,这样可以更加直观地看出各波形间的差别。

第五篇:信号与系统实验报告总结

信号与系统实验

实验一常用信号的观察

方波:

正弦波:

三角波:

在观测中,虚拟示波器完全充当实际示波器的作用,在工作台上连接AD1为示波器的输入,输入方波、正弦波、三角波信号时,可在电脑上利用软件观测到相应的波形,其纵轴为幅值可通过设置实现幅值自动调节以观测到最佳大小的波形,其横轴为时间,宜可通过设置实现时间自动调节以观测到最佳宽度的波形。实验四非正弦周期信号的分解与合成

方波DC信号:

DC信号几乎没有,与理论相符合,原信号没有添加偏移。

方波基波信号:

基波信号为与原方波50Hz信号相对应的频率为50Hz的正弦波信号,是方波分解的一次谐波信号。

方波二次谐波信号:

二次谐波信号频率为100Hz为原方波信号频率的两倍,幅值较一次谐波较为减少。

方波三次谐波信号:

三次谐波信号频率为150Hz为原方波信号的三倍。幅值较一二次谐波大为减少。

方波四次谐波信号:

四次谐波信号的频率为200Hz为原方波信号的四倍。幅值较三次谐波再次减小。

方波五次谐波信号:

五次谐波频率为250Hz为原方波信号的五倍。幅值减少到0.3以内,几乎可以忽略。

综上可知:50Hz方波可以分解为DC信号、基波信号、二次、三次、四次、五次谐波信号…,无偏移时即无DC信号,DC信号幅值为0。分解出来的基波信号即一次谐波信号频率与原方波信号频率相同,幅值接近方波信号的幅值。二次谐波、三次谐波、四次谐波、五次谐波依次频率分别为原方波信号的二、三、四、五倍,且幅值依次衰减,直至五次谐波信号时几乎可以忽略。可知,方波信号可分解为多个谐波。方波基波加三次谐波信号:

基波叠加上三次谐波信号时,幅值与方波信号接近,形状还有一定差异,但已基本可以看出叠加后逼近了方波信号。

方波基波加三次谐波信号加五次谐波信号:

基波信号、三次谐波信号、五次谐波信号叠加以后,比基波信号、三次谐波信号叠加后的波形更加接近方波信号。

综上所述:方波分解出来的各次谐波以及DC信号,叠加起来以后会逼近方波信号,且叠加的信号越多,越是接近方波信号。说明,方波信号可有多个谐波合成。

三角波DC信号:

三角波基波信号:

三角波二次谐波信号:

三角波三次谐波信号:

三角波四次谐波信号:

三角波五次谐波信号:

三角波基波加三次谐波信号:

三角波基波加三次谐波加五次谐波信号:

三角波信号的分析与方波信号的分析基本一致,可以看出三角波也可以分解为多个谐波,并且相应的多个多次谐波可以合成三角波信号,且参与合成的波形越多,合成波越是逼近三角波信号。

综合两个波形来看,可知任何周期性函数均可分解为相应的傅里叶展开式里所包含的直流分量和各次谐波项。且任何周期性函数均可由锁对应的直流分量和各次谐波项所合成,参与合成的信号越多,结果越逼近周期性函数的图形。

实验思考题

1.什么样的周期性函数没有直流分量和余弦项;

答:无偏移的周期性函数没有直流分量,当周期性函数为奇函数时没有直流分量和余弦项。

2.分析理论合成的波形与实验观测到的合成波形之间误差产生的原因。

答:理论合成的波形不能把所有无限个谐波合成起来,故必然产生误差,且实验设备、实验方法也存在一定的误差。

实验二 零输入、零状态级完全响应

零输入响应下降沿采样:

零输入响应上升沿采样:

可见,零输入响应按照指数形式下降,最终降为零。其规律符合-1tU(t)=RCc2e。

下载DTMF信号产生与检测实验报告(最终五篇)word格式文档
下载DTMF信号产生与检测实验报告(最终五篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    统计信号分析与处理实验报告

    实验2 随机过程的计算机模拟 一、实验目的 1、给定功率谱(相关函数)和概率分布,通过计算机模拟分析产生相应的随机过程; 2、通过该随即过程的实际功率谱(相关函数)和概率分布验证......

    信号分析与处理实验报告2

    信号分析与处理实验报告合肥工业大学电气与自动化工程学院实验报告 专业班级学号姓名日期指导教师共页 第页 实验报告要求: 1、实验内容为实验指导书实验三第2题、实验四第1......

    《随机信号分析》实验报告

    《随机信号分析》实验报告学号: 姓名: 2009年12月21日实验一:平稳随机过程的数字特征 1、 实验目的 “正文、小四宋体1.5倍行距” 2、 实验任务 3、 实验流程 4、 实验结果 5、......

    信号检测与变换实验教案

    电子科技大学 自动化 学院 实验教学教案汇总 (实验)课程名称 信号检测与变换电子科技大学教务处制表 金属箔式应变片性能:单臂实验 一、实验名称: 金属箔式应变片性能:单臂实验......

    语音信号处理实验报告要求

    实验一: 1.简述本次试验的目的,关于基音周期的理论; 2.使用相关法的同学,给出程序的同时要说明所使用语音段的长度(短时平稳性),解释怎样在matlab中实现三电平削波(for...end循环和i......

    高频小信号放大器实验报告

    南京信息工程大学滨江学院 高频电子线路实验报告 作者 徐飞 学号 20092334925 系部 电子工程系 专业班级 通信三班 实验一 高频小信号放大器实验 一、实验原理 高频小信号......

    函数信号发生器设计实验报告

    函数信号发生器的设计 实验报告 院 系:电子工程学院 班 级:2012211209 姓 名:陈炳文 班内序号:学 号: 0 实验目的: 设计一个设计制作一个可输出方波、三角波、正弦波信号的函数......

    噪声检测实验报告

    噪声检测预习报告 一、 噪声的来源 噪声的种类很多,因其产生的条件不同而异。地球上的噪声主要来源于自然界的噪声和人为活动产生的噪声。自然界形成的这些噪声是不以人们的......