数字信号处理实验总结.doc

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
 数字信号处理实验总结

实验一 离散信号及运算 实验目的 掌握MATLAB语言的基本功能及实现方法; 掌握MATLAB中各种常用序列的表示和显示方法; 熟练运用MATLAB进行离散信号的各种运算。 实验原理 我们所接触的信号大多为连续信号,而计算机及其他设备处理的大多为数字信号。为了便于处理,往往要对信号进行处理使之变成离散数字信号。对信号进行时间上的量化(即采样)是对信号作数字化处理的第一个环节,要求理解采样的原理和采样的性质,知道采样前后信号的变化及对离散信号和系统的影响。 实验内容 1、用MATLAB实现下列序列,并画出图形: 单位采样序列移位,; 提示:实现单位采样序列:,可通过以下语句实现: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) 复指数序列,,画出该序列的实部、虚部,幅值和相位。 提示:可通过下列语句实现: 实部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],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) 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为插值或抽取的倍数。 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)); 思考题 若用C语言实现有限长序列的加法,编程如何实现?与MATLAB相比,优缺点,繁简度如何? MATLAB中可用算术运算符“+”实现序列相加,用算术运算符“*”实现序列相乘,试问用MATLAB求任意序列相加、相乘时,分别应注意什么? 分析stem(n,x)和plot(t,x)函数使用时的异同点。 实验二 离散时间系统的表达及计算

文档评论(0)

naiwu003 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档