信号与系统实验(MATLAB西电版)实验2常用离散时间信号的实现课件_第1页
信号与系统实验(MATLAB西电版)实验2常用离散时间信号的实现课件_第2页
信号与系统实验(MATLAB西电版)实验2常用离散时间信号的实现课件_第3页
信号与系统实验(MATLAB西电版)实验2常用离散时间信号的实现课件_第4页
信号与系统实验(MATLAB西电版)实验2常用离散时间信号的实现课件_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、实验目的二、实验原理三、涉及的MATLAB函数四、实验内容与方法五、实验要求六、思考题一、实验目的一、实验目的

(1)了解离散时间信号的特点;

(2)掌握离散时间信号表示的向量法和符号法;

(3)熟悉stem函数的应用;

(4)会用MATLAB语言表示常用基本离散信号。

一、实验目的

(1)了解离散时间信号的特点;

二、实验原理

信号是随时间变化的物理量。离散信号是只在某些不连续的时间点上有信号值,其它时间点上信号没有定义的一类信号。离散信号一般可以利用模数转换由连续信号而得到。计算机所能处理的只是离散信号。二、实验原理

信号是随时间变化的物理量。离散信号是只在信号与系统实验(MATLAB西电版)实验2常用离散时间信号的实现课件信号与系统实验(MATLAB西电版)实验2常用离散时间信号的实现课件1)离散时间信号

MATLAB程序:

k1=-3;k2=3;k=k1:k2;

f=[1,3,-3,2,3,-4,1];

stem(k,f,′filled′);

axis([-4,4,-5,5]);

title(′离散时间信号′)

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的离散时间信号如图2.1所示。1)离散时间信号

MATLAB程序:

k1=-3;图2.1数值法生成的离散时间信号图2.1数值法生成的离散时间信号2)单位脉冲序列

MATLAB程序:

k1=-3;k2=6;k=k1:k2;

n=3;%单位脉冲出现的位置

f=[(k-n)==0];

stem(k,f,′filled′);title(′单位脉冲序列′)

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的单位脉冲序列如图2.2所示。2)单位脉冲序列

MATLAB程序:

k1=-3;图2.2数值法生成的单位脉冲序列图2.2数值法生成的单位脉冲序列3)单位阶跃序列

MATLAB程序:

k0=0;%单位阶跃开始出现的位置

k1=-3;k2=6;k=k1:k0-1;

n=length(k);

k3=-k0:k2;

n3=length(k3);

3)单位阶跃序列

MATLAB程序:

k0=0;u=zeros(1,n);

u3=ones(1,n3);

stem(k,u,′filled′);

holdon;

stem(k3,u3,′filled′);

holdoff;

axis([k1,k2,-0.2,1.5]);

title(′单位阶跃序列′);

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的单位阶跃序列如图2.3所示。u=zeros(1,n);

u3=ones(1,n3);图2.3数值法生成的单位阶跃序列图2.3数值法生成的单位阶跃序列4)复指数序列

MATLAB程序:

clf;

c=-(1/12)+(pi/6)*i;

K=2;

n=0:40;

x=K*exp(c*n);

subplot(2,1,1);

4)复指数序列

MATLAB程序:

clf;stem(n,real(x));

ylabel(′幅值f(k)′);

title(′实部′);

subplot(2,1,2);

stem(n,imag(x));

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

title(′虚部′);

用数值法生成的复指数序列如图2.4所示。stem(n,real(x));

ylabel(′幅值f图2.4数值法生成的复指数序列图2.4数值法生成的复指数序列5)指数序列

MATLAB程序:

clf;

k1=-1;k2=10;

k=k1:k2;

a=-0.6;

5)指数序列

MATLAB程序:

clf;

A=1;

f=A*a.^k;

stem(k,f,′filled′);

title(′指数序列′);

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的指数序列如图2.5所示。A=1;

f=A*a.^k;

stem(k,f,′f图2.5数值法生成的指数序列图2.5数值法生成的指数序列6)正弦序列

MATLAB程序:

clf;

k1=-20;k2=20;

k=k1:k2;

f=sin(k*pi/6);

stem(k,f,′filled′);

title(′正弦序列′);

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的正弦序列如图2.6所示。6)正弦序列

MATLAB程序:

clf;

图2.6数值法生成的正弦序列图2.6数值法生成的正弦序列7)单位斜坡序列

MATLAB程序:

clf;

k1=-1;k2=20;

k0=0;

n=[k1:k2];

ifk0>=k2

x=zeros(1,length(n));

elseif(k0<k2)&(k0>k1)

7)单位斜坡序列

MATLAB程序:

clf;x=[zeros(1,k0-k1),[0:k2-k0]];

else

x=(k1-k0)+[0:k2-k1];

end

stem(n,x);

title(′单位斜坡序列′);

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的单位斜坡序列如图2.7所示。x=[zeros(1,k0-k1),[0:k2-k0]];图2.7数值法生成的单位斜坡序列图2.7数值法生成的单位斜坡序列8)随机序列

MATLAB程序:

clf;

R=51;

d=0.8*(rand(R,1)-0.5);

m=0:R-1;

stem(m,d′,′b′);

title(′随机序列′);

xlabel(′k′);ylabel(′f(k)′);

用数值法生成的随机序列如图2.8所示。8)随机序列

MATLAB程序:

clf;

图2.8数值法生成的随机序列图2.8数值法生成的随机序列9)扫频正弦序列

MATLAB程序:

n=0:100;

a=pi/2/100;

b=0;arg=a*n.*n+b*n;

x=cos(arg);

clf;stem(n,x);

axis([0,100,-1.5,1.5]);

grid;axis;title(′扫频正弦序列′);

xlabel(′k′);ylabel(′f(k)′);

用数值法生成的扫频正弦序列如图2.9所示。9)扫频正弦序列

MATLAB程序:

n=0:1图2.9数值法生成的扫频正弦序列图2.9数值法生成的扫频正弦序列10)幅值调制序列

MATLAB程序:

clf;

n=0:100;

m=0.4;fH=0.1;fL=0.01;

xH=sin(2*pi*fH*n);

10)幅值调制序列

MATLAB程序:

clfxL=sin(2*pi*fL*n);

y=(1+m*xL).*xH;

stem(n,y);grid;

title(′幅值调制序列′);

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的幅值调制序列如图2.10所示。xL=sin(2*pi*fL*n);

y=(1+m*xL图2.10数值法生成的幅值调制序列图2.10数值法生成的幅值调制序列11)信号平滑

MATLAB程序:

clf;

R=51;

d=0.8*(rand(1,R)-0.5);%随机噪声

m=0:R-1;

s=2*m.*(0.9.^m);%正常信号

x=s+d;%加噪声后的信号

11)信号平滑

MATLAB程序:

clf;

xL=sin(2*pi*fL*n);

y=(1+m*xL).*xH;

stem(n,y);grid;

title(′幅值调制序列′);

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的幅值调制序列如图2.10所示。xL=sin(2*pi*fL*n);

y=(1+m*xLsubplot(2,1,1);

plot(m,d,′r-′,m,s,′g--′,m,x,′b-.′);

title(′信号平滑′)

xlabel(′n′);ylabel(′f(n)′);

legend(′d[n]′,′s[n]′,′x[n]′);

subplot(2,1,1);

plot(m,d,′r-x1=[00x];x2=[0x0];x3=[x00];

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(′f(n)′);

信号平滑结果如图2.11所示。x1=[00x];x2=[0x0];x3=[x图2.11信号平滑图2.11信号平滑12)滑动平均

MATLAB程序:

n=0:100;

s1=cos(2*pi*0.05*n);%低频信号

s2=cos(2*pi*0.47*n);%高频信号

x=s1+s2;混合信号

M=input(′滤波器长度=′);

num=ones(1,M);

y=filter(num,1,x)/M;

clf;

subplot(2,2,1);

12)滑动平均

MATLAB程序:

n=0:100;plot(n,s1);

axis([0,100,-2,2]);

xlabel(′时间n′);ylabel(′幅值′);

title(′信号#1′);

subplot(2,2,2);

plot(n,s2);

axis([0,100,-2,2]);

xlabel(′时间n′);ylabel(′幅值′);

title(′信号#2′);

subplot(2,2,3);

plot(n,x);

plot(n,s1);

axis([0,100,-2,2axis([0,100,-2,2]);

xlabel(′时间n′);ylabel(′幅值′);

title(′输入信号′);

subplot(2,2,4);

plot(n,y);

axis([0,100,-2,2]);

xlabel(′时间n′);ylabel(′幅值′);

title(′输出信号′);

axis;

信号的滑动平均如图2.12所示。axis([0,100,-2,2]);

xlabel(′图2.12信号的滑动平均图2.12信号的滑动平均2.程序设计实验

(1)编制程序,生成如下信号:

5exp(-k),3sin(k),u(k-3),u(k+5),r(k-4),r(k+3),

u(k-3)+r(k+7),sin(k),sin(2k),sin(3k),δ(k-1),δ(k+5),cos(3k)+sin(2k)等。

(2)寻找一些函数,编制程序生成信号。2.程序设计实验

(1)编制程序,生成如下信号五、实验要求

(1)在计算机中输入程序,验证实验结果,并将实验结果存入指定存储区域。

(2)对于程序设计实验,要求通过对验证性实验的练习,自行编制完整的实验程序,实现对信号的模拟,并得出实验结果。

(3)在实验报告中写出完整的自编程序,并给出实验结果。五、实验要求

(1)在计算机中输入程序,验证实验结果六、思考题

(1)单位冲激函数与单位脉冲函数有什么区别?

(2)信号的时域分解有哪几种方法?六、思考题

(1)单位冲激函数与单位脉冲函数有什么区一、实验目的二、实验原理三、涉及的MATLAB函数四、实验内容与方法五、实验要求六、思考题一、实验目的一、实验目的

(1)了解离散时间信号的特点;

(2)掌握离散时间信号表示的向量法和符号法;

(3)熟悉stem函数的应用;

(4)会用MATLAB语言表示常用基本离散信号。

一、实验目的

(1)了解离散时间信号的特点;

二、实验原理

信号是随时间变化的物理量。离散信号是只在某些不连续的时间点上有信号值,其它时间点上信号没有定义的一类信号。离散信号一般可以利用模数转换由连续信号而得到。计算机所能处理的只是离散信号。二、实验原理

信号是随时间变化的物理量。离散信号是只在信号与系统实验(MATLAB西电版)实验2常用离散时间信号的实现课件信号与系统实验(MATLAB西电版)实验2常用离散时间信号的实现课件1)离散时间信号

MATLAB程序:

k1=-3;k2=3;k=k1:k2;

f=[1,3,-3,2,3,-4,1];

stem(k,f,′filled′);

axis([-4,4,-5,5]);

title(′离散时间信号′)

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的离散时间信号如图2.1所示。1)离散时间信号

MATLAB程序:

k1=-3;图2.1数值法生成的离散时间信号图2.1数值法生成的离散时间信号2)单位脉冲序列

MATLAB程序:

k1=-3;k2=6;k=k1:k2;

n=3;%单位脉冲出现的位置

f=[(k-n)==0];

stem(k,f,′filled′);title(′单位脉冲序列′)

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的单位脉冲序列如图2.2所示。2)单位脉冲序列

MATLAB程序:

k1=-3;图2.2数值法生成的单位脉冲序列图2.2数值法生成的单位脉冲序列3)单位阶跃序列

MATLAB程序:

k0=0;%单位阶跃开始出现的位置

k1=-3;k2=6;k=k1:k0-1;

n=length(k);

k3=-k0:k2;

n3=length(k3);

3)单位阶跃序列

MATLAB程序:

k0=0;u=zeros(1,n);

u3=ones(1,n3);

stem(k,u,′filled′);

holdon;

stem(k3,u3,′filled′);

holdoff;

axis([k1,k2,-0.2,1.5]);

title(′单位阶跃序列′);

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的单位阶跃序列如图2.3所示。u=zeros(1,n);

u3=ones(1,n3);图2.3数值法生成的单位阶跃序列图2.3数值法生成的单位阶跃序列4)复指数序列

MATLAB程序:

clf;

c=-(1/12)+(pi/6)*i;

K=2;

n=0:40;

x=K*exp(c*n);

subplot(2,1,1);

4)复指数序列

MATLAB程序:

clf;stem(n,real(x));

ylabel(′幅值f(k)′);

title(′实部′);

subplot(2,1,2);

stem(n,imag(x));

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

title(′虚部′);

用数值法生成的复指数序列如图2.4所示。stem(n,real(x));

ylabel(′幅值f图2.4数值法生成的复指数序列图2.4数值法生成的复指数序列5)指数序列

MATLAB程序:

clf;

k1=-1;k2=10;

k=k1:k2;

a=-0.6;

5)指数序列

MATLAB程序:

clf;

A=1;

f=A*a.^k;

stem(k,f,′filled′);

title(′指数序列′);

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的指数序列如图2.5所示。A=1;

f=A*a.^k;

stem(k,f,′f图2.5数值法生成的指数序列图2.5数值法生成的指数序列6)正弦序列

MATLAB程序:

clf;

k1=-20;k2=20;

k=k1:k2;

f=sin(k*pi/6);

stem(k,f,′filled′);

title(′正弦序列′);

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的正弦序列如图2.6所示。6)正弦序列

MATLAB程序:

clf;

图2.6数值法生成的正弦序列图2.6数值法生成的正弦序列7)单位斜坡序列

MATLAB程序:

clf;

k1=-1;k2=20;

k0=0;

n=[k1:k2];

ifk0>=k2

x=zeros(1,length(n));

elseif(k0<k2)&(k0>k1)

7)单位斜坡序列

MATLAB程序:

clf;x=[zeros(1,k0-k1),[0:k2-k0]];

else

x=(k1-k0)+[0:k2-k1];

end

stem(n,x);

title(′单位斜坡序列′);

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的单位斜坡序列如图2.7所示。x=[zeros(1,k0-k1),[0:k2-k0]];图2.7数值法生成的单位斜坡序列图2.7数值法生成的单位斜坡序列8)随机序列

MATLAB程序:

clf;

R=51;

d=0.8*(rand(R,1)-0.5);

m=0:R-1;

stem(m,d′,′b′);

title(′随机序列′);

xlabel(′k′);ylabel(′f(k)′);

用数值法生成的随机序列如图2.8所示。8)随机序列

MATLAB程序:

clf;

图2.8数值法生成的随机序列图2.8数值法生成的随机序列9)扫频正弦序列

MATLAB程序:

n=0:100;

a=pi/2/100;

b=0;arg=a*n.*n+b*n;

x=cos(arg);

clf;stem(n,x);

axis([0,100,-1.5,1.5]);

grid;axis;title(′扫频正弦序列′);

xlabel(′k′);ylabel(′f(k)′);

用数值法生成的扫频正弦序列如图2.9所示。9)扫频正弦序列

MATLAB程序:

n=0:1图2.9数值法生成的扫频正弦序列图2.9数值法生成的扫频正弦序列10)幅值调制序列

MATLAB程序:

clf;

n=0:100;

m=0.4;fH=0.1;fL=0.01;

xH=sin(2*pi*fH*n);

10)幅值调制序列

MATLAB程序:

clfxL=sin(2*pi*fL*n);

y=(1+m*xL).*xH;

stem(n,y);grid;

title(′幅值调制序列′);

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的幅值调制序列如图2.10所示。xL=sin(2*pi*fL*n);

y=(1+m*xL图2.10数值法生成的幅值调制序列图2.10数值法生成的幅值调制序列11)信号平滑

MATLAB程序:

clf;

R=51;

d=0.8*(rand(1,R)-0.5);%随机噪声

m=0:R-1;

s=2*m.*(0.9.^m);%正常信号

x=s+d;%加噪声后的信号

11)信号平滑

MATLAB程序:

clf;

xL=sin(2*pi*fL*n);

y=(1+m*xL).*xH;

stem(n,y);grid;

title(′幅值调制序列′);

xlabel(′时间(k)′);ylabel(′幅值f(k)′);

用数值法生成的幅值调制序列如图2.10所示。xL=sin(2*pi*fL*n);

y=(1+m*xLsubplot(2,1,1);

plot(m,d,′r-′,m,s,′g--′,m,x,′b-.′);

title(′信号平滑′)

xlabel(′n′);ylabel(′f(n)′);

legend(′d[n]′,′s[n]′,′x[n]′);

subplot(2,1,1);

plot(m,d,′r-x1=[00x];x2=[0x0];x3=[x00];

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(′f(n)′);

信号平滑结果如图2.11所示。x1=[00x];x2=[0x0];x3=[x图2.11信号平滑图2.11信号平滑12)滑动平均

MATLAB程序:

n=0:100;

s1=cos(2*pi*0.05*n);%低频信号

s2=cos(2*pi*0.47*n);%高频信号

x=s1+s2;混合信号

M=input(′滤波器长度=′);

num=ones(1,M);

y=filter(num,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论