数字实验报告数字信号处理实验报告姓名:潘文才学号:08150227班级:0610802地点:YF303时间:第九、十、十一周星期三9-10节实验一:实验名称:时域采样定理一、实验目的:1. 学习掌握 matlab 的编程知识及其 matalab 在数字信号处理方面常用的12个函数2. 熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解。
二、实验内容:一、对给定的模拟信号Xa(t) =Ae-at sin(Ωt)U (t)进行采样!(fm=500)1,用鼠标双击电脑桌面的matlab6.5的快捷图标,运行matlab6.5主程序。
2,在matlab 命令窗口中输入,如下图示>>n = 0:50-1;>>fs = 1000;>>string = '1000';>>Xa=444.128*exp((-222.144)*n/fs).*sin(222.144*n/fs);>>DFT(Xa,50,string);3,如果输入的命令没有错误会出现如下绘图对话框。
从中大家可以再次体会函数DFT(x,N,str)的功能。
4,将实验图形导出,保存,选择Export 菜单项。
5,在导出对话框中选择文件格式为bmp,输入保存的文件名后,点击保存按钮。
这时保存的实验结果可以用WINDOWS自带的画图工具打开。
6,关闭matlab 的绘图对话框,在命令窗口中输入>>clear all;>>close all;>>clc;后,试将第三步中输入的 fs 改成 500Hz,或 1500Hz,画出采样后信号的波图和幅频特性曲线(如下图所示),并按第5步中的方法保存实验图形。
二、掌握 Matlab 基本的编程方法和基本的绘图函数。
1,用 Matlab 打开 C:\MATLAB6p5\work\chouyang.m 文件,(可按实验内容一,步骤11-12 的方法),该运行 M 文件后,绘制出模拟信号X(t)=1.5sin(2.5π )的波形,及其经过采样频率 fs= 4Hz 采样后,信号 X(nTs) , X(n) 的波形。
2,运行 chouyang.m 文件。
3,在仔细阅读chouyang.m文件中的内容后,在掌握figure( )、 subplot( )、plot( )、title( )、stem( )函数的基础上编写 M 文件绘制模拟信号Xa (t) = 444.128e -222.144t sin(222.144t)U (t)波形,及其经过采样频率 fs= 1000Hz 采样后,信号 Xa(nTs), Xa(n)的波形。
三、实验图形:四、思考题:1,观察实验内容 1 中,在分别采用 500Hz,1000Hz,1500Hz 采样后,对所得的到的信号 Xa(n)绘制的 3 个幅频特性曲线有何不同,并分析为什么?结合时域采样定理的内容对图形进行解释;答:在分别采用 500Hz,1000Hz,1500Hz 采样后,对所得的到的信号 Xa(n)绘制的 3 个幅频特性曲线分析可知:采样频率越大,其傅氏变换所得的图形的幅值变化越尖锐。
由时域采样定理知,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即:fsmax>=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息所得信号原形越完整地保留了原始信号中的信息,以保证可以从采样信号中无失真的恢复出原来的信号。
2,思考如何编写 Matlab M 文件,完成从 Xa(n)恢复出 Xa(t)的功能。
如果给定 Matlab函数 sinc(x)(sinc(x) = sin(πx)/πx),和 conv(a,b)函数完成矢量 a ,b 的卷积。
答:答:采样时在满足采样定理条件的情况下fs>=2fm,将Xa(jw)通过一个理想低通滤波器 ,利用它滤除高频成分,即可恢复原信号。
Ya(jw)=Xa(jw)H(jw),h(t)=⎰∞∞-dw jw H e jwt )(21π ya(t)=xa(t)*h(t)=∑∞-∞=--m a mT t TmT t T mT x )()](sin[)(ππ,有给定的matlab 函数sinc(x)及conv(a,b)恢复出xa (t )。
实验二:实验名称: 时域离散系统及其响应一、实验目的:1. 继续熟悉掌握 matlab 的使用和编程2. 熟悉掌握时域离散系统的时域特性。
3. 验证时域卷积定理。
二、实验内容:1. 给定系统h1(n)=δ(n) +2.5δ (n−1) +2.5δ (n− 2) + δ(n −3) ,输入信号为x1 (n) =δ(n), 用matlab 画出输入、系统和输出y1(n)在时域和频域的图形(提示可以调用 conv 和DFT(x,N,str)函数, 每次调用DFT(x,N,str)函数前先调用figure 函数) 。
在matlab 中可以对一矢量(矩阵)赋初值,除了像“实验一”中可以用冒号操作符外还可以下面的方法,比如我们定义矢量 h1 来表示h1(n),可以用 h1 = [ 1, 2.5, 2,5 ,1]; h1的长度可由length 函数求得。
保存三幅实验结果图形2. 给定系统h2 (n) =R10 (n) ,输入信号为x 2(n) = R 10 (n) ,用 matlab 画出输入、系统和输出y 2 (n)在时域和频域的图形。
保存三张实验结果图形。
3. 给定系统h3 (n) = R10 (n )、,输入信号为x3(t) =R5 (n ) ,用matlab画出输入、系统和输出y3(n) 在时域和频域的图形。
并将FT [y3(n)] 与X3 [exp*(jw )] •H 3 [exp *(jw)] 进行比较,我们先只是比较︱FT [y3(n)]︱与︱X 3[ exp*(jw)]︱•︱H3[exp* ( jw)]︱是否一样,验证时域卷积定理。
DFT(x,N,str)函数定义为function [c,l]=DFT(x,N,str),调用DFT函数后返回两个值,c 为给定的数字信号x 的X 3 [exp* (jw)]的值,当ω=[−4π,−3.99π,−3.98π,−3.97π …0.02π ,-0.01π,0,-0.01π,0.02π,3,97π ,3.98π ,3.99π ,4π],1的值为l=[−4π,−3.99π ,−3.98π,−3.97π…0.02π,-0.01π,0,-0.01π,0.02π,3,97π ,3.98π ,3.99π ,4π]试编写M 文件完成步骤3,保存如下四张实验结果图形,并保存M 文件(在编写文件过程中注意matlab中“*”和“.*”操作符的区别.)三、实验图形:四、思考题:1.比较y1(n)和h1(n)的时域和频域特性,注意它们之间有无差别,用所学理论解释所得结果。
判断y 2 (n) 图形及其非零序列长度是否与理论结果一致,说出一种判断y (n) 图形正确与否的方法。
答: y1和h1的时域和频域特性的波形是一致的。
H1是长度为 4的有限长序列,而频域采样的点数为9大于4点,所以可以有其主值序列不失真的恢复出原始信号。
y2图形及其非零序列长度与理论结果一致。
2. matlab 的工具箱函数conv,能用于计算两个有限长序列之间的卷积,但conv 函数假定这两个序列都从n=0开始。
试编写M文件计算x (n)=[3,11,7, 0, −1, 4, 2], −3 ≤n≤3和h (n) = [2,3,0, −5,2,1], −1≤n≤4之间的卷积,并绘制y (n)的波形图。
答:程序:nx=[-3,-2,-1,0,1,2,3]; x =[3,11,7,0,-1,4,2];nh=[-1,0,1,2,3,4];h=[2,3,0,-5,2,1];nyb=nx(1)+nh(1); nye=nx(length(x))+nh(length(h)); y=conv(x,h);figure;s tem(ny,y,’.’);实验三:实验名称:用FFT 进行谱分析一、实验目的1.进一步加深对DFT算法原理和基本性质的理解2.熟悉FFT算法原理和FFT子程序的应用。
3.学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
二.实验原理1.快速傅立叶变换(FFT)算法:长度为N的序列的离散傅立叶变换为N点的DFT 可以分解为两个N/2点的DFT,每个N/2点的DFT又可以分解为两个N/4点的DFT。
依此类推,当N为2的整数次幂时,由于每分解一次降低一阶幂次,所以通过M次的分解,最后全部成为一系列2点DFT运算。
2.利用FFT进行频谱分析:若信号本身是有限长的序列,计算序列的频谱就是直接对序列进行FFT运算求得,就代表了序列在幅度谱和相位谱之间的频谱值。
若信号是模拟信号,用FFT进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后就可按照前面的方法用FFT来对连续信号进行谱分析。
三、实验步骤1.复习DFT 的定义、性质和用DFT 作谱分析的有关内容。
2.复习FFT算法原理与编程思想,并对照DIT-FFT运算流图和程序框图,读懂本实验提供的FFT子程序。
3.编制信号产生子程序,产生以下典型信号供谱分析用:x1(n )= R4(n)(1-1)x2(n )=[1,2,3,4,4,3,2,1](1-2)x 3(n) = [4,3,2,1,1,2,3,4](1-3)x4(n) = cos(π/4 *n ) (1-4)x5 (n ) = sin(π/8* n) (1-5)x6 (t ) = cos(8πt) + cos(16πt) + cos(20πt) (1-6)4.编写M文件。
5.按实验内容要求,上机实验,并写出实验报告。
四、实验内容主要使用的MATLAB 函数:函数fft(x)可以计算R 点序列的R 点DFT值;而fft(x,N)则计算R 点序列的N 点DFT,若R>N,则直接截取R 点DFT的前N 点,若R<N,则x先进行补零扩展为N 点序列再求N 点DFT。
1、编写matlabM文件对信号x1 (n)做8点和16点的FFT,保存实验结果图形。
2、编写matlabM文件对信号x2( n )做8点和16点的FFT,保存实验结果图形。
3、编写matlabM文件对信号x4 (n )做8点和16点的FFT,保存实验结果图形。
4、编写matlab M文件对信号x6 (t )以fs=64(Hz)采样后做N=16、32、64点的FFT,保存三幅实验结果图形。
五、结果图形六、思考题1.在N=8 和N=16 两种情况下,x2 (n)、x3 (n)的幅频特性会相同吗?为什么?答:N=8时x2 (n)、x3 (n)的幅频特性是相同的,而N=16时x2 (n)、x3 (n)的幅频特性是不相同的。