数字信号处理实验总结

上传人:re****.1 文档编号:504435171 上传时间:2023-08-23 格式:DOC 页数:33 大小:891.01KB
返回 下载 相关 举报
数字信号处理实验总结_第1页
第1页 / 共33页
数字信号处理实验总结_第2页
第2页 / 共33页
数字信号处理实验总结_第3页
第3页 / 共33页
数字信号处理实验总结_第4页
第4页 / 共33页
数字信号处理实验总结_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《数字信号处理实验总结》由会员分享,可在线阅读,更多相关《数字信号处理实验总结(33页珍藏版)》请在金锄头文库上搜索。

1、实验一 离散信号及运算一、 实验目的1. 掌握MATLAB语言的基本功能及实现方法;2. 掌握MATLAB中各种常用序列的表示和显示方法;3. 熟练运用MATLAB进行离散信号的各种运算。二、 实验原理我们所接触的信号大多为连续信号,而计算机及其他设备处理的大多为数字信号。为了便于处理,往往要对信号进行处理使之变成离散数字信号。对信号进行时间上的量化(即采样)是对信号作数字化处理的第一个环节,要求理解采样的原理和采样的性质,知道采样前后信号的变化及对离散信号和系统的影响。三、 实验内容1、用MATLAB实现下列序列,并画出图形: 单位采样序列移位,;提示:实现单位采样序列:,可通过以下语句实现

2、:x=zeros(1,N);x(1)=1;n=0:10;x=zeros(1,3),1,zeros(1,7);stem(n,x); 单位阶跃序列移位,提示:实现单位阶跃序列:,可通过以下语句实现:x=ones(1,N);n=0:10; x=zeros(1,3),1,ones(1,7); stem(n,x)正弦序列,其中A=2;f=10;=0.005;A=2; f=10; Ts=0.005; n=0:10;x=A*sin(2*pi*f*n*Ts); stem(n,x) 指数序列,n=0:10; x=0.9.n; stem(n,x) 复指数序列,画出该序列的实部、虚部,幅值和相位。提示:可通过下列语

3、句实现: 实部real(x),虚部imag(x),幅值abs(x),相位angle(x)n=-20:20; x=exp(0.05+j*pi/6*n);xr=real(x); xi=imag(x); xm=abs(x); xa=angle(x);figure;subplot(411);stem(n,xr);title(实部);subplot(412);stem(n,xi);title(虚部);subplot(413);stem(n,xm);title(模);subplot(414);stem(n,xa);title(相角);2、用MATLAB实现两个序列相加:序列1:x1=1 0.5 0.3 0

4、,n1=1:4;序列2:x2=0.2 0.3 0.4 0.5 0.8 1,n2=1:6;实现x=x1+x2,n=1:8,并画出x的图形。提示:MATLAB中可用算术运算符“+”实现序列相加,但两个序列的长度必须相等。如果序列长度不等,或者长度虽然相等但采样的位置不同,就不能运用“+”了。当两序列的长度不等或位置不对应时,首先应使两者位置对齐,然后通过zeros函数左右补零使其长度相等后再进行相加。x1=1,0.5,0.3,0;x2=0.2,0.3,0.4,0.5,0.8,1;n1=1:4; n2=1:6; n=1:8; x3=x1,0,0; x=x3+x2;y=x,0,0; stem(n,y)

5、3、用MATLAB实现序列的反转:实现,序列x(n)采用,并画出y(n)的图形。提示:可利用fliplr(x) 函数,例如:x=1 2 3 4;y=fliplr(x);结果为y=4 3 2 1,要实现对fliplr(x) 函数进行合理运用。n=0:10;x=zeros(1,3),1,ones(1,7); y=fliplr(x);n1=-fliplr(n); stem(n1,y);4、序列的尺度变换,实现插值和抽取:已知序列用MATLAB分别实现下列尺度变换。提示:可对序列x(n)的下标进行取余计算,余数为零即为插值和抹去的点,函数如下:mod(nx,m),nx为序列x(n)的下标,m为插值或抽

6、取的倍数。clear all;x=1,2,3,4,5,6,7,8;n=-4:3;n1=n(1:2:length(n);y1=x(1:2:length(x); subplot(211); stem(n1,y1);axis(-5 3 0 7); y2=zeros(1,16);for k=1:8 y2(2*k)=x(k);End;subplot(2,1,2);stem(-8:6,y2(2:end);四、 思考题1. 若用C语言实现有限长序列的加法,编程如何实现?与MATLAB相比,优缺点,繁简度如何?2. MATLAB中可用算术运算符“+”实现序列相加,用算术运算符“*”实现序列相乘,试问用MATL

7、AB求任意序列相加、相乘时,分别应注意什么?3. 分析stem(n,x)和plot(t,x)函数使用时的异同点。实验二 离散时间系统的表达及计算一、 实验目的1. 掌握离散系统的性质、输入输出关系及卷积运算;2. 掌握离散系统常系数线性差分方程的解法。二、 实验原理一个离散时间系统在数学上的定义是将输入序列x(n)映射成输出序列y(n)的唯一性变换或运算。它的输入是一个序列,输出也是一个序列,其本质是将输入序列转变成输出序列的一个运算。在数字信号处理中,通常研究的离散系统大都为LSI系统。三、 实验内容1.求两个序列的卷积(离散线性卷积)对于一个LSI系统,设其输入序列为,其中。系统为单位冲激

8、响应,编程求出输出序列,并画出图形。提示:输出序列应是输入序列和系统单位冲激相应序列的卷积,在Matlab中可用conv函数来实现两个序列的卷积。但是使用conv函数求卷积时,两序列卷积后的输出序列的下标不是任意的(具体是多少,查函数),所以需要自己构造下标。n=-5:50;u1=stepseq(0,-5,50);u2=stepseq(10,-5,50);x=u1-u2; h=(0.9).n).*u1; y,ny=conv1(x,n,h,n); stem(ny,y);functionx,n=stepseq(n0,n1,n2);if nargin=3disp(Usage:Y=stepseq(n0

9、,n1,n2);elseif(n0n2)|(n1n2)error(arguments?must?satisfy?n1=n0=0;functiony,ny=conv1(x,nx,h,nh)if nargin=4disp(Usage:Y=conv_m(x,nx,h,nh);return; end;nyb=nx(1)+nh(1); nye=nx(length(x)+nh(length(x);ny=nyb:nye; y=conv(x,h);2.求两个序列的卷积(离散周期卷积)已知序列,计算它们的周期卷积。提示:将和的主值序列x(n)和y(n)作线性卷积,然后再将线性卷积序列以N为周期进行周期延拓。cl

10、ear all;x=1,0,1,2,1; y=1,1,0,1,2; z=conv(x,y); m=0:4;h=z(6:9),0; h1=h+z(1:5); h2=h1 h1 h1;stem(h2)3.已知LSI系统的差分方程为:,其中 求单位冲激响应,并画出图形。提示:可以使用filter函数来完成,其调用格式为,注意b,a,x参数都代表什么,如何设置。clear allb=1; a=1 -1 0.9;n=-20:100; N=120;x=zeros(1,20),1,zeros(1,100); y=filter(b,a,x);stem(n,y); axis(-20 100 -2 2);4.已知

11、LSI系统的差分方程为:,其中 求单位阶跃响应,并画出图形。提示:可以使用filter函数来完成,其调用格式为,注意b,a,x参数都代表什么,如何设置。b=1; a=1 -1 0.9;N=120; n=-20:100;x=zeros(1,20),1,ones(1,100);g=filter(b,a,x); stem(n,g);思考题1. conv函数来实现两个序列的卷积,其默认下标为?(10分)2. 离散线性卷积与离散周期卷积的区别?(20分)3. 解差分方程时,a、b分别代表什么?(10分)当差分方程为时,a、b分别为多少?4. 解释filter函数?(10分)实验三 z变换及反变换一 实验

12、目的1.通过Matlab编程,熟悉z变换定义及逆z变换常用方法,加深对z变换性质及其收敛域的理解;2.通过Matlab编程实现离散信号及系统的z域分析;3.掌握利用Matlab编程求解差分方程的方法。二实验原理z变换性质、求逆z变换的方法、系统的z域表示方法及差分方程的求解方法。三实验内容1. z正变换:已知序列x1=1,0,5,6,其中;与x2=1,3,5,2,其中,求其卷积信号x=x1*x2的z变换。提示:例将序列x1进行Z变换,则根据公式 (与序列x1比较)也就是说,没必要在Matlab命令窗口中显示出完整序列z变换的表达式,通过序列的位置信息和该位置信息上所对应的序列值,即可在报告中将

13、该序列的z变换写出来。clear allx1=1,0,5,6;x2=1,3,5,2;syms z;x=conv(x1,x2); s=0;for n=1:length(x) s=s+x(n)*z(-n+1);End;sx = 1 3 10 23 43 40 12s = 3/z + 10/z2 + 23/z3 + 43/z4 + 40/z5 + 12/z6 + 12. z反变换:已知与,求的逆z变换;提示:思路与上题相同。通过X1(z)和X2(z)找出序列x1(n)和x2(n),直接求x1(n)和x2(n)的卷积,即是求X1(z)X2(z)的逆z变换。注意序列x1(n)和x2(n)的n的取值范围。

14、n1=-1:1; n2=-2:1;x1=1,2,3; x2=2,4,3,5;y=conv(x1,x2); n=n1(1)+n2(1):n1(3)+n2(4);stem(n,y);3.离散时间线性时不变系统的时域实现:已知因果LSI系统的差分方程为:,写出系统传递函数H(z)及其收敛域,编程实现以下内容: 系统冲激响应h(n),并绘图; 系统的单位阶跃响应g(n),并绘图; 系统函数的幅频响应H(ejw),并绘出幅频和相频特性。提示:冲激响应可用impz(b,a,n)函数,可查看Matlab Help了解它的相关用法。impz函数:数字滤波器的冲激响应,用来求系统的冲激响应h(n)。b是差分方程中输入的系数,a是差分方程中输出的系数。注意缺项的系数前要添加系数0。这个函数本身就有画图功能。如果n是一个整形变量,impz计算的是在这些整数点位置上的冲激响应,且从0开始。单位阶跃响应可用stepz(b,a,n)函数,可查看Matlab Help了解它的相关用法。与impz用法相似。幅频响应可用f

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号