matlab实现:常见的离散时间信号
实验一常见离散信号的MATLAB产生和图形显示
实验一 常见离散信号的MATLA B 产生和图形显示 授课课时:2学时一、实验目的:(1)熟悉MATL A B 应用环境,常用窗口的功能和使用方法。
(2)掌握MATL A B 在时域内产生常用离散时间信号的方法。
(3)掌握离散信号的基本运算。
(4)掌握简单的绘图命令。
二、实验原理:(一)信号的表示和产生① 单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n 如果在时间轴)(n δ上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ0≠=n k n参考程序:例1-1:)2010(()(<<-=n n n x )δclear all n1=-10;n2=20;n0=0;%在起点为n1,终点为n2的范围内,于n0处产生冲激。
n=n1:n2;%生成离散信号的时间序列x=[n==n0];%生成离散信号x (n)stem(n,x);%绘制脉冲杆图xlabel (' n');ylabel ('x(n)');%横坐标和纵坐标的标注说明。
title('Unit Sample Sequen c e');%图形上方标注图名axis([-10 20 0 1.2]);%确定横坐标和纵坐标的取值范围② 单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n 例1-2:)202((u )(<<-=n n n x )clear alln1=-2;n2=20;n0=0;n=n1:n2;%生成离散信号的时间序列x=[n>=n0];%生成离散信号x (n)stem(n,x,'filled ');xlabel ('n');ylabel ('x(n)');title('Unit step Sequen c e');axis([-2 20 0 1.2]);③ 正弦序列)sin()(ϕ+=wn A n x例1-3:一正弦信号的频率为1HZ ,振幅值幅度A 为1V ,在窗口显示2个周期的信号波形,并对该信号的一个周期进行32点采样获得离散信号并显示该连续信号和离散信号的波形。
Matlab实验1-离散时间信号与系统
M
∏
(1
−
ξi
z
−1
)
H (z)
=
i=0
N
∑
d
k
z
−i
=
K
i=1 N
∏ (1−
λi z −1)
i=0
i=1
,其中 ξi 和 λ i 称为零、
极点。
在 MATLAB 中,可以用函数 H=Freqz(num,den,w)计算 DTFT;可
以用函数[z,p,K]=tf2zp(num,den)求得有理分式形式的系统转
实验要求: 给出理论计算结果和程序计算结果并讨论。
实验 3 离散系统的频率响应分析和零、极点分布
实验目的:加深对离散系统的频率响应分析和零、极点分布的概念理
解。
实验原理:离散系统的时域方程为
N
M
∑ dk y(n − k ) = ∑ pk x(n − k )
k =0
k =0其变换域分析方法如下: Nhomakorabea∑ 频域
实验 2 离散系统的差分方程、冲激响应和卷积分析
实验目的:
加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。
实验原理:
x[n]
y[n]
Discrete-time
systme
离散系统输入、输出关系可用以下差分方程描述:
N
M
∑ ak y[ n − k ] = ∑ bk x[ n − k ]
k =0
实验 1 常见离散信号的 MATLAB 产生和图形显示
实验目的:加深对常用离散信号的理解;
实验原理:
1. 单位抽样序列
δ
(n)
=
⎧1 ⎩⎨0
n =0 n≠0
实验一:用MATLAB产生时域离散信号
实验一:用MA TLAB 产生时域离散信号一、实验目的1、了解常用时域离散信号及其特点2、掌握用MATLAB 产生时域离散信号的方法二、实验内容及步骤1、编写程序,产生以下离散序列: (1)f (n )=δ(n ) (-3<n<4) n1=-3;n2=4;n0=0;n=n1:n2; x=[n==n0]; stem (n ,x,'filled’); axis([n1,n2,0,1。
1*max(x)]);xlabel(’时间(n)');ylabel(’幅度x (n )'); title ('单位脉冲序列’);时间(n)幅度x (n )单位脉冲序列(2)f (n )=u (n) (—5<n 〈5)n1=-5;n2=5;n0=0; n=n1:n2;x=[n>=n0]; stem(n ,x ,’filled’);axis ([n1,n2,0,1.1*max (x)]); xlabel('时间(n )');ylabel ('幅度x(n)’); title ('单位阶跃序列’); box时间(n)幅度x (n )单位阶跃序列(3)f (n )= e (0。
1+j1。
6∏)n (0<n 〈16)n1=16;a=0.1;w=1。
6*pi; n=0:n1;x=exp((a+j *w )*n );subplot (2,2,1);plot (n,real(x)); title(’复指数信号的实部');subplot (2,2,3);stem (n ,real(x ),'filled’); title (’复指数序列的实部'); subplot (2,2,2);plot(n,imag (x)); title('复指数信号的虚部');subplot (2,2,4);stem (n ,imag (x),'filled'); title (’复指数序列的虚部'); box5101520-4-20246复指数信号的实部05101520复指数序列的实部5101520-6-4-2024复指数信号的虚部05101520复指数序列的虚部(4)f (n)=3sin (nП/4) (0〈n 〈20)f=1/8;Um=3;nt=3; N=20;T=1/f ; dt=T/N; n=0:nt*N-1; tn=n *dt;x=Um*sin (2*f*pi*tn ); subplot (2,1,1);plot (tn,x);axis([0,nt *T ,1.1*min (x),1。
常见离散信号产生和实现实验报告
常见离散信号产生和实现实验报告实验1常见离散信号产生和实现学院信息科学与工程学院专业通信工程1班姓名学号一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB在时域中产生一些基本的离散时间信号。
二、实验原理MATLAB语言提供了一系列函数用来产生信号,如exp,sin,cos, square,sawtooth,ones,zeros等函数。
1.基本信号序列1)单位抽样序列???=01)(nδ≠=n n在MATLAB中可以利用zeros()函数实现。
x=[1zeros(1, n-1)]程序:clear all;n=-20:20;u=[zeros(1,20)ones(1,21)];stem(n,u)xlabel('Time index n');ylabel('Amplitude'); title('p21');axis([-20200 1.2]);图形:Request1:编写一个)(k n-δ的函数。
???=-01)(k nδ≠=n kn程序:clear all;n=-20:20;k=5;u=[zeros(1,20+k)ones(1,21-k)];stem(n,u)xlabel('Time index n');ylabel('Amplitude'); title('p22');axis([-20200 1.2]);图形:(2)单位阶跃序列???01)(n u00<≥n n在MATLAB中可以利用ones()函数实现。
);,1(N ones x=Request2:编写一个)(k n u-的函数。
程序:clf;n=-20:20;u=[zeros(1,20)1zeros(1,20)];stem(n,u);xlabel('Time index n');ylabel('Amplitude');title('Unit Sample Sequence p10');axis([-20200 1.2]);图形:Request2:编写一个)(k n u-的函数。
实验1 离散时间信号的MATLAB实现
n=[-10:9];x4=[1,0,1,2,3];xtilde=x4'*ones(1,4);xtilde=(xtilde(:))';
subplot(2,2,4);stem(n,xtilde);xlabel('n');
ylabel('x4(n)');axis([-10,9,-1,4])
程序运行结果如图 1.6 所示。
其运行结果如图1.4(a)、(b)、(c)所示。如图可见,当r>1时,复指数序列的实部和虚部 分别为幅度按指数增长的正弦序列;当0<r<1时,复指数序列的实部和虚部分别为幅度按指数 衰减的正弦序列;当r=1时,复指数序列的实部和虚部分别为等幅正弦序列。
(a) r>1
(b) 0<r<1
(c) r=1
图1.4 复指数序列波形
function[]=dxzsu(n1,n2,w) %n1:绘制波形的虚指数序列的起始时间序号 %n2:绘制波形的虚指数序列的终止时间序号 %w:虚指数序列的角频率 k=n1:n2; f=exp(i*w*k); Xr=real(f) Xi=imag(f)
Xa=abs(f)
Xn=angle(f)
subplot(2,2,1), stem(k,Xr,'filled'),title('实部');
为 {y(n) : nx1 + nh1 ≤ n ≤ nx2 + nh2},这样就可构成一个新的卷积函数 conv_m,求出带下
标的序列卷积。
function [y,ny]=conv_m(x,nx,h,nh)
ny1=nx(1)+nh(1);ny2=nx(length(x))+nh(length(h));
用MATLAB实现常用的离散时间信号及其时域运算
实验四用M A T L A B实现常用的离散时间信号及其时域运算——摘要:在MATLAB中,只能用向量来表示离散时间信号。
与连续信号不同,离散时间信号无法用符号运算来表示。
用适当的MATLAB语句表示出信号后,就可以利用MATLAB 的绘图命令stem来绘出直观的信号波形图,stem是专门用于绘制离散时间信号的。
在MATLAB中离散序列的时域运算和变换不能用符号运算来实现,而必须用向量表示的方法,即在MATLAB中离散序列的相加、相乘需表示成两个向量的相加、相乘,因而参加运算的两序列向量必须有相同的维数。
一、实验目的:(1)学习MATLAB语言及其常用指令;(2)学习和掌握用MATLAB语言产生离散时间信号的编程方法;(3)通过编程绘制出离散时间信号的波形,加深理解信号的时域运算。
二、实验内容:(1)运用MATLAB的绘图指令绘制离散时间信号;(2)用MATLAB语言实现离散时间信号的时域运算。
三、实验原理:(1)单位阶跃序列和单位样值序列。
离散时间信号只在某些离散的瞬时给出信号的值,因此,它是时间上不连续的序列。
单位阶跃序列和单位样值序列在离散时间信号与系统的分析中是两个非常典型的序列,分别记为u(n)和δ(n)。
它们的定义分别如下:1 n≥0 1 n≥0u(n)= δ(n)=0 n<0 0 n≠0若单位阶跃序列的起始点为n0,单位样值序列出现在n0时刻,则表达式分别为:1 n≥n0 1 n=n0u(n-n0)= δ(n-n0)=0 n<n0 0 n≠n0应注意,离散时间的单位阶跃序列与连续时间的单位阶跃信号的异同,以及离散时间的单位样值序列与连续时间的单位冲激信号的异同。
(2)离散时间信号的时域运算。
与连续时间系统的研究类似,在离散系统分析中,经常遇到离散时间信号的运算,包括两信号的相加、相乘以及序列自身的移位、反褶、尺度等等,也需要了解在运算过程中序列的表达式以及对应的波形的变化。
实验一 离散信号的MATLAB实现
实验一离散信号的MATLAB实现一、目的要求1)学习典型的离散时间信号的MATLAB实现方法;2)学习离散时间序列的基本运算:相加、相乘、移位等;3)学习噪声的产生;4)掌握两个序列的卷积和相关运算5)掌握离散系统单位脉冲响应的求解。
二、实验内容1)典型的离散信号的表示方法:用matlab产生单位抽样信号δ(n) 、单位阶跃序列u(n) 、矩形序列R N(n) 、实指数序列a n u(n)、正弦序列sin(ωn)。
编写程序、并画出图形。
n=-20:20;n0=0;n1=10;w0=pi/4;x=[(n-n0)==0];x1=[(n-n0)>=0];x2=[(n-n0)>=0& (n-n1)<=0];x3=0.9.^n.*x1;x4=sin(w0*n);subplot(511);stem(n,x);axis([ -20 20 0 2]);ylabel('\sigma(n)'); subplot(512);stem(n,x1);axis([ -20 20 0 2]);ylabel('u(n)');subplot(513);stem(n,x2);axis([ -20 20 0 2]);ylabel('B N(n)');subplot(514);stem(n,x3);axis([ -20 20 0 2]);ylabel('a n u(n)');subplot(515);stem(n,x4);axis([ -20 20 -2 2]);ylabel('sin(w0n)');xlabel('n');2)离散信号的基本运算:对序列x(n)={2,3,4,1,2,5} ,n=0,1,2,3,4,5,的移位、乘法、加法、翻转及尺度变换。
编写程序、并画出图形。
n=-10:10;k=2;N=length(n);x=zeros(size(n));x1=zeros(size(n));y=zeros(size(n));y1=zeros(size(n));y2=zeros(size(n));y3=zeros(size(n));y4=zeros(size(n));x(11:16)=[2 3 4 1 2 5];x1(11:16)=[1 2 3 4 5 6];y(1+k:N)=x(1:N-k);y1(1:N-k)=x(1+k:N);y2=x.*x1;y3=x+x1;y4=fliplr(x);y5=x(1:2:N);n1=fix(n(1:2:N)/2);subplot(421);stem(n,x);xlabel('n');ylabel('x(n)');subplot(422);stem(n,x1);xlabel('n');ylabel('x1(n)');subplot(423);stem(n,y);xlabel('n');ylabel('x(n-2)');subplot(424);stem(n,y1);xlabel('n');ylabel('x(n+2)');subplot(425);stem(n,y2);xlabel('n');ylabel('x(n)*x1(n)');subplot(426);stem(n,y3);xlabel('n');ylabel('x(n)+x1(n)');subplot(427);stem(n,y4);xlabel('n');ylabel('x(-n)');subplot(428);stem(n1,y5);xlabel('n');ylabel('x(2n)');3)噪声的产生:产生方差为1,2,0.5的白噪声。
用MATLAB实现常用的离散时间信号及其时域运算
⽤MATLAB实现常⽤的离散时间信号及其时域运算⽤MATLAB 实现常⽤的离散时间信号及其时域运算摘要:1.运⽤MATLAB 的绘图指令绘制离散时间信号;2.⽤MATLAB 实现离散时间信号的时域运算。
关键词:MATLAB 离散时间信号时域运算实验⽬的:1.复习MATLAB 语⾔以及常⽤指令2.学习和掌握⽤MATLAB 语⾔产⽣离散时间信号的编程⽅法3.通过编程绘制出离散时间信号波形,加深理解信号的时域运算实验原理:1.1单位阶跃序列和单位样值序列离散时间信号只在某些离散瞬间时给出信号的值,因此,它是时间上不连续的序列。
单位阶跃序列和单位样值序列在离散信号与系统的分析中是两个⾮常典型的序列,分别记为u(n)和δ(n),他们的定义分别如下:≠≡=)0(0)0(1)(n n n δ≥<=)0(1)0(0)(n n n u若单位节约序列的起始点为n 0,单位样值序列出现在n 0时刻,则表达式为:2.离散时间信号的时域运算与连续时间信号的研究类似,在离散系统分析中,经常遇到离散时间的运算,包括两信号的相加、相乘以及序列本⾝的移位、反褶、尺度等等,也需要了解在运算过程中序列的以及相应的波形的变化。
序列)(n x 的反褶:序列)(n x 的移位:序列)(n x 的尺度:两序列)(1n x 和)(2n x 相加减:两序列)(1n x 和)(2n x 相乘: )()(21n x n x ?≥<=-)(1)(0)(000n n n n n n u ≠==-)(0)(1)(000n n n n n n δ)(n x -)(0n n x -)(an x )()(21n x n x ±试验任务:1.绘制⽤于产⽣以下信号的通⽤程序1 )()(0n n A n x -=δ2 )]()([)(21m n u m n u A n x ---=1.1 程序和图形见附录11.2 程序和图形见附录22.已知波形,求表达式并绘出各信号波形①)()2(k u k f - ②)2(+-k f ③)2()2(--k u k f 2.程序和图形见附录3附录1:clear% n1:起始时刻;n0:跳变时刻;n2:终⽌时刻;t1=input('请输⼊起始时刻n1=');t0=input('请输⼊跳变时刻n0=');t2=input('请输⼊终⽌时刻n2=');A=input('请输⼊幅度A=');t=t1:t2;n=length(t);tt=t1:t0;n1=length(tt);x=zeros(1,n);x(n1)=A*1;stem(t,x),grid ontitle('x(n)')axis([t1 t2 -0.2 A+1])n1=-2,n0=1,n2=3,A=2附录2:Clear%n1:起始时刻;m1第⼀次跳变时刻;m2:第⼆次跳变时刻;n2:终⽌时刻;t1=input('请输⼊起始时刻n1=');t0=input('请输⼊第⼀次跳变时刻m1=');t3=input('请输⼊第⼆次跳变时刻m2=');t2=input('请输⼊终⽌时刻n2=');A=input('请输⼊幅度A=');t=t1:t2;n=length(t);tt=t0:t2;n1=length(tt);x=[zeros(1,n-n1),ones(1,n1)];ttt=t3:t2;n2=length(ttt);y=[zeros(1,n-n2),ones(1,n2)];z=A*(x-y);stem(t,z),grid ontitle('x(n)')axis([t1, t2 ,min(z)-1, max(z)+1]) n1=-3,n2=3,m1=-1,m2=1,A=2附录3:1.离散序列反褶函数(lsfz.m)function[f,k]=lsfz(f1,k1)f=fliplr(f1);k=-fliplr(k1);2.离散序列移位函数(lspy.m)function[f,k]=lspy(ff,kk,k0)k=kk+k0;f=ff;3.离散序列相乘函数(lsxc.m)function[f,k]=lsxc(f1,f2,k1,k2)k=min(min(k1),min(k2)):max(max(k1),max(k2)); s1=zeros(1,length(k));s2=s1;s1(find((k>=min(k1))&(k<=max(k1))==1))=f1;s2(find((k>=min(k2))&(k<=max(k2))==1))=f2;f=s1.*s2;Return4.主程序:cleari=1;for m=-3:4if m<0f(i)=m+3;elseif(m==4)f(i)=0;elsef(i)=3;endi=i+1;end%f(k)m=-3:4subplot(221),stem(m,f,'filled'),grid on,title('f(k)') axis([min(m)-1,max(m)+1,min(f)-0.5,max(f)+1]) i=1;for n=-4:6if n<0u(i)=0;elseu(i)=1;endi=i+1;endn=-4:6m=-3:4%f(k-2)[y1,k1]=lspy(f,m,2);%f(-k)[y2,k2]=lsfz(f,m);%u(k-2)[y3,k3]=lspy(u,n,2);%f(k-2)u(k)[z1,k]=lsxc(y1,u,k1,n)subplot(222),stem(k,z1,'filled'),grid on,title('f(k-2)u(n)')axis([min(k)-1,max(k)+1,min(z1)-0.5,max(z1)+1])%f(-k+2)[z2,w2]=lspy(y2,k2,2)subplot(223),stem(w2,z2,'filled'),grid on,title('f(-k+2)')axis([min(w2)-1,max(w2)+1,min(z2)-1,max(z2)+1])%f(k-2)u(k-2)[z3,w3]=lsxc(y1,y3,k1,k3)subplot(224),stem(w3,z3,'filled'),grid on,title('f(k-2)u(k-2)') axis([min(w3)-1,max(w3)+1,min(z3)-0.5,max(z3)+0.5])。
连续时间信号和离散时间信号在MATLAB中的绘制
南京信息工程大学实验(实习)报告实验(实习)名称实验一实验(实习)日期 2019年3月19 指导教师院专业年级班次姓名学号一、实验目的(1)学会使用MA TLAB产生常见的连续时间信号和离散时间信号;(2)学会使用MA TLAB完成一些信号的基本运算;(3)熟悉MATLAB的基本操作,以及一些基本函数的使用,为后续的实验奠定基础。
二、实验内容1.利用MATLAB绘制单位冲击信号,单位阶跃信号,指数信号,单位矩形信号,抽样信号,正弦信号(分别取不同周期)(1)单位冲击信号代码:T=1000;t=linspace(0,10,T);t1=linspace(-5,5,T);f1=stepfun(t1,-1/T)-stepfun(t1,1/T);plot(t1,f1);grid on;axis([-5 5 -1 2])xlabel('t');ylabel('c(t)');title('单位冲击信号');(2)单位阶跃信号T=1000;t=linspace(-5,5,T);f1=stepfun(t,0);plot(t,f1);grid on;axis([-5 5 -1 2]);xlabel('t');ylabel('u(t)');title('单位阶跃信号');(3)指数信号T=1000;t=linspace(-5,5,T);xe=exp(t);subplot(2,1,1);plot(t,xe);grid on;axis([-5 3 -0.5 20]); xlabel('t');ylabel('x(t)');title('指数信号1');subplot(2,1,2);xe=exp(-t);plot(t,xe);grid on;axis([-3 3 -0.5 20]); xlabel('t');ylabel('x(-t)');title('指数信号2');(4)单位矩形信号T=1000;t=linspace(-5,5,T);xt=rectpuls(t,1);plot(t,xt);grid on;axis([-2 2 -0.5 1.5]); xlabel('t');ylabel('x(t)');title('单位矩形信号');(5)抽样信号T=10000;t=linspace(-100,100,T);xt=sinc(t/pi);plot(t,xt);grid on;axis([-100 100 -0.3 1.1]);(6)正弦信号w=100;T=12000;t=linspace(-1,10,T);xt=sin(w*t);subplot(3,1,1);plot(t,xt);grid on;axis([-0.2 0.2 -1.5 1.5]); xlabel('t');ylabel('x(t)');title('w=100');w2=50;T=12000;t=linspace(-1,10,T);xe=sin(w2*t);subplot(3,1,2);plot(t,xe);grid on;axis([-0.2 0.2 -1.5 1.5]); xlabel('t');ylabel('x(t)');title('w=50');w3=200;T=12000;t=linspace(-1,10,T);xr=sin(w3*t);subplot(3,1,3);plot(t,xr);grid on;axis([-0.2 0.2 -1.5 1.5]); xlabel('t');ylabel('x(t)');title('w=200');2.利用MATLAB绘制单位冲击序列,单位阶跃序列,实指数序列(1)单位冲击序列n=50;x=zeros(1,n);x(1)=1;xn=0:n-1;stem(xn,x);grid on;axis([-1 25 0 1.2]);xlabel('n');ylabel('c(n)');title('单位冲击序列');(2)单位阶跃序列n=50;x=ones(1,n);xn=0:n-1;stem(xn,x);grid on;axis([-5 25 0 1.2]);xlabel('n');ylabel('u(n)');title('µ¥Î»½×Ô¾ÐòÁÐ');(3)实指数序列n=0:20;a1=2;a2=-2;a3=0.5;a4=-0.5;xn1=a1.^n;xn2=a2.^n;xn3=a3.^n;xn4=a4.^n;subplot(2,2,1);stem(xn1);grid on;axis([0 20 0 600000]);xlabel('n');ylabel('xn1(n)');title('实指数序列xn1(n)[a>1]');subplot(2,2,2);stem(xn2);grid on;axis([0 20 -150000 300000]); xlabel('n');ylabel('xn2(n)');title('实指数序列xn2(n)[a<-1]');subplot(2,2,3);stem(xn3);grid on;axis([0 20 0 1.3]);xlabel('n');ylabel('xn3(n)');title('实指数序列xn3(n)[1>a>0]');subplot(2,2,4);stem(xn4);grid on;axis([0 20 -0.7 1.3]);xlabel('n');ylabel('xn4(n)');title('实指数序列xn4(n)[0>a>-1]');3.讨论题:已知连续信号,当抽样间隔分别取T=0.08, 0.16,和0.24时所对应的离散余弦信号的波形。
离散信号及离散系统的MATLAB编程实现
数字信号处理课程实验报告实验名称离散信号及离散系统的MATLAB编程实现系别教师姓名实验地点实验日期一、实验内容1、用MATLAB仿真(编写)离散序列2、常见序列运算3、差分方程的求解4、系统零极点的求解。
(红色部分为必做项目)二、实验目的1. 复习离散时间的信号和系统,复习离散时间重要类型的信号和它们的运算的实现。
2. 熟悉MATLAB软件的集成开发环境,学会利用MATLAB编程及获得帮助的方法。
3. 学会利用MATLAB的绘图功能。
三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况)matlab软件,计算机四、实验试做记录(含程序、数据记录及分析)1、 Matlab表示序列MATLAB中,可采用向量表示序列,由于MATLAB中对序列下标默认为从1开始递增,因此要表示离散信号,一般应采用两个向量分别对信号的自变量和因变量进行描述。
如, n= -3~4,在MATLAB中表示为>> n = [-3, -2, -1, 0, 1, 2, 3, 4]; %自变量取值>> x = [ 2, 1, -1, 0, 1, 4, 3, 7]; %因变量取值说明:(1)向量可用方括号[ ]表示。
(2)当向量取值连续变化时可用冒号运算符“:”简化赋值过程,如的n值,可简化为n=[-3:4]或n= -3:4 。
(3)分号“;”表示不回显表达式的值。
(4)“%”表示其后内容为注释对象。
(5)符号“>>”是MATLAB命令窗口的输入提示符,此外,为便于多次调用,也可在m文件中输入相应的命令语句。
利用MATLAB,还可对信号的波形进行描述,常采用的绘图语句有stem,plot,subplot, axis,title,xlabel,ylabel,gtext, hold on, hold off, grid 等。
其中stem 绘制离散图形;plot 绘制连续图形;subplot 用于绘制子图,应在stem 或plot 语句前调用;axis 指定x 和y轴的取值范围,用在stem或plot语句后;title 标注图形名称,xlabel, ylabel 分别标注x轴和y轴名称;gtext可将标注内容放置在鼠标点击处;hold on和 hold off 用于控制对象绘制方式,是在原图上还是在新图上绘制;grid用于绘制网格。
matlab实现:常见的离散时间信号
1. 单位抽样序列,或称为离散时间冲激,单位冲激:⎩⎨⎧=01)(n δ 00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ0≠=n k n 2.单位阶跃序列⎩⎨⎧01)(n u 00<≥n n 在MATLAB 中可以利用ones( )函数实现。
);,1(N ones x =3.正弦序列)(cos )(0φω+=n A n x 这里,,,0ωA 和φ都是实数,它们分别称为本正弦信号)(n x 的振幅,角频率和初始相位。
πω200=f 为频率。
4.复正弦序列 n j e n x ω=)(5.实指数序列n A n x α=)(6. 随机序列长度为N 的随机序列基本数学函数参考教材P69页以及随后的使用说明。
注意使用行向量,特别是冒号运算符。
举例,长度为N 的实指数序列在MATLAB 中实现:n a x N n .^1:0=-=1. 单位采样长度为N 的单位采样序列u(n)可以通过下面的MATLAB 命令获得:u=[1 )1,1(-N zeros ];延迟M 个采样点的长度为N 的单位采样序列ud(n)(M<N)可以用下面命令获得:ud=[),1(M zeros 1 )1,1(--M N zeros ];2. 单位阶跃序列长度为N 的单位阶跃序列s(n)可以用下面的MATLAB 命令获得:)];,1([N ones s =延迟的单位阶跃序列可以使用类似于单位采样序列的方法获得。
3. 正弦序列长度为N 的正弦序列在MATLAB 中实现:)/***2cos(*1:0phase Fs n f pi A x N n +=-=4. 指数序列长度为N 的指数序列在MATLAB 中实现:)**exp(1:0n j x N n ω=-=5. 实指数序列长度为N 的实指数序列在MATLAB 中实现:n a x N n .^1:0=-=6. 随机序列长度为N 的随机序列在MATLAB 中实现:);,1(N rand x =。
实验一离散信号的MATLAB实现
实验一离散信号的MATLAB实现实验一:离散信号的MATLAB实现一、实验目的本实验旨在通过MATLAB实现离散信号的生成、绘制和基本操作,加深对离散信号处理的理解,并为后续实验做好准备。
二、实验原理离散信号是指在时间域或幅值域上取值有限的信号。
常见的离散信号包括矩形波、三角波、正弦波等。
在MATLAB中,可以使用不同的函数和参数来生成这些离散信号。
同时,使用MATLAB的绘图功能可以将离散信号绘制出来,以便观察和分析。
三、实验步骤1.生成离散信号首先,我们需要生成一个离散信号。
在MATLAB中,可以使用以下代码生成一个长度为N的离散信号:N = 100; % 信号长度t = 0:N-1; % 时间向量x = sin(2*pi*t/N); % 离散正弦波信号这段代码将生成一个长度为100、采样频率为N Hz的正弦波信号。
其中,t是时间向量,表示信号在每个采样点上的时间;x是信号的幅值向量,表示在每个采样点上的幅值。
2.绘制离散信号生成离散信号后,我们可以使用MATLAB的绘图功能将其绘制出来。
在MATLAB 中,可以使用以下代码将离散信号绘制出来:plot(t, x); % 绘制离散正弦波信号xlabel('Time (s)'); % 设置X轴标签ylabel('Amplitude'); % 设置Y轴标签title('Discrete Sine Wave'); % 设置标题这段代码将绘制出离散正弦波信号的图形,并添加了X轴和Y轴标签以及标题。
3.基本操作除了生成和绘制离散信号外,我们还可以对离散信号进行一些基本操作,如加减、乘除、翻转等。
例如,我们可以使用以下代码将两个离散信号相加:y = x + 2; % 将离散正弦波信号加上2这段代码将生成一个新的离散信号y,它是原来信号x的基础上加上2。
同样地,我们还可以对离散信号进行其他基本操作。
四、实验结果与分析通过本实验,我们成功地生成了离散正弦波信号,并将其绘制出来。
实验一 常见离散信号的MATLAB产生和图形显示
实验一 常见离散信号的MATLAB 产生和图形显示授课课时:2学时一、实验目的:(1)熟悉MATLAB 应用环境,常用窗口的功能和使用方法。
(2)掌握MATLAB 在时域内产生常用离散时间信号的方法。
(3)掌握离散信号的基本运算。
(4)掌握简单的绘图命令。
二、实验原理:(一)信号的表示和产生① 单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ≠=n k n 参考程序:例1-1:)2010(()(<<-=n n n x )δclear all n1=-10;n2=20;n0=0;%在起点为n1,终点为n2的范围内,于n0处产生冲激。
n=n1:n2;%生成离散信号的时间序列x=[n==n0];%生成离散信号x(n)stem(n,x);%绘制脉冲杆图xlabel(' n');ylabel('x(n)');%横坐标和纵坐标的标注说明。
title('Unit Sample Sequence');%图形上方标注图名axis([-10 20 0 1.2]);%确定横坐标和纵坐标的取值范围② 单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n 例1-2:)202((u )(<<-=n n n x )clear alln1=-2;n2=20;n0=0;n=n1:n2;%生成离散信号的时间序列x=[n>=n0];%生成离散信号x(n)stem(n,x,'filled');xlabel('n');ylabel('x(n)');title('Unit step Sequence');axis([-2 20 0 1.2]);③ 正弦序列)sin()(ϕ+=wn A n x例1-3:一正弦信号的频率为1HZ ,振幅值幅度A 为1V ,在窗口显示2个周期的信号波形,并对该信号的一个周期进行32点采样获得离散信号并显示该连续信号和离散信号的波形。
实验一 离散信号的MATLAB实现
实验一离散信号的MATLAB实现一、目的要求1)学习典型的离散时间信号的MATLAB实现方法;2)学习离散时间序列的基本运算:相加、相乘、移位等;3)学习噪声的产生;4)掌握两个序列的卷积和相关运算5)掌握离散系统单位脉冲响应的求解。
二、实验内容1)典型的离散信号的表示方法:用matlab产生单位抽样信号δ(n) 、单位阶跃序列u(n) 、矩形序列R N(n) 、实指数序列a n u(n)、正弦序列sin(ωn)。
编写程序、并画出图形。
n=-20:20;n0=0;n1=10;w0=pi/4;x=[(n-n0)==0];x1=[(n-n0)>=0];x2=[(n-n0)>=0& (n-n1)<=0];x3=0.9.^n.*x1;x4=sin(w0*n);subplot(511);stem(n,x);axis([ -20 20 0 2]);ylabel('\sigma(n)'); subplot(512);stem(n,x1);axis([ -20 20 0 2]);ylabel('u(n)');subplot(513);stem(n,x2);axis([ -20 20 0 2]);ylabel('B N(n)');subplot(514);stem(n,x3);axis([ -20 20 0 2]);ylabel('a n u(n)');subplot(515);stem(n,x4);axis([ -20 20 -2 2]);ylabel('sin(w0n)');xlabel('n');2)离散信号的基本运算:对序列x(n)={2,3,4,1,2,5} ,n=0,1,2,3,4,5,的移位、乘法、加法、翻转及尺度变换。
编写程序、并画出图形。
n=-10:10;k=2;N=length(n);x=zeros(size(n));x1=zeros(size(n));y=zeros(size(n));y1=zeros(size(n));y2=zeros(size(n));y3=zeros(size(n));y4=zeros(size(n));x(11:16)=[2 3 4 1 2 5];x1(11:16)=[1 2 3 4 5 6];y(1+k:N)=x(1:N-k);y1(1:N-k)=x(1+k:N);y2=x.*x1;y3=x+x1;y4=fliplr(x);y5=x(1:2:N);n1=fix(n(1:2:N)/2);subplot(421);stem(n,x);xlabel('n');ylabel('x(n)');subplot(422);stem(n,x1);xlabel('n');ylabel('x1(n)');subplot(423);stem(n,y);xlabel('n');ylabel('x(n-2)');subplot(424);stem(n,y1);xlabel('n');ylabel('x(n+2)');subplot(425);stem(n,y2);xlabel('n');ylabel('x(n)*x1(n)');subplot(426);stem(n,y3);xlabel('n');ylabel('x(n)+x1(n)');subplot(427);stem(n,y4);xlabel('n');ylabel('x(-n)');subplot(428);stem(n1,y5);xlabel('n');ylabel('x(2n)');3)噪声的产生:产生方差为1,2,0.5的白噪声。
实验一离散信号与系统时域分析的Matlab实现
实验1 离散信号与系统时域分析的Matlab实现一、实验目的1.掌握用Matlab表示常用离散信号的方法;2.掌握用Matlab求解离散系统的单位取样响应与零状态响应;3.掌握用Matlab实现离散信号卷积的方法;二、实验原理与内容1. Matlab基本操作打开Matlab 6.5,只保留命令窗口(Command Window),点击文本编辑窗口(M-file)创建、编辑M程序。
图1命令窗口在文本编辑窗口输入指令程序。
当输入完整程序后,点击DEBUG→RUN运行程序,或用键盘F5键直接运行。
另外,也可点击窗口快捷运行程序键。
图2文本编辑窗口编辑完成一个程序后,第一次运行或另存为时,需要保存M程序,保存的路径为命令窗口所示的当前目录路径(Current Directory),该路径可自行设置。
图3当前目录路径注意:M 文件在命名时有一定规则,错误命名时会使M 文件不能正常运行。
(1)M 文件名首字符不能是数字或下划线。
(2)M 文件名不能与Matlab 的内部函数名相同(3)M 文件名中不能有空格,不能含有中文。
一般应采用英文或拼音对M 文件命名。
2.离散信号的Matlab 表示表示离散时间信号x(n)需要两个行向量,一个是表示序号n=[ ],一个是表示相应函数值x=[ ],画图指令是stem 。
(1)正、余弦序列正、余弦序列为MATLAB 内部函数,可直接调用,文件名为sin 和cos 。
例1-1 画出()sin()4x n n π=的波形。
打开文本编辑窗口,输入波形程序:n=0:40;xn=sin(pi*n/4);stem(n,xn,'.')title('sin(pi*n/4)')运行,输出波形如下图4。
图4 ()x n 的波形图对于0cos()n ωϕ+或0sin()n ωϕ+,当2/πω是整数或有理数时,才是周期信号。
练习:(1)把上述程序中第三行分别改为stem(n,xn)、stem(n,xn,'*') 、stem(n,xn,' filled ') 后依次运行,看输出波形有何变化。
利用matlab产生离散时间信号,实验常见离散时间信号的MATLAB产生和图形显示.doc...
利⽤matlab产⽣离散时间信号,实验常见离散时间信号的MATLAB产⽣和图形显⽰.doc...实验常见离散时间信号的MATLAB产⽣和图形显⽰实验1 常见离散时间信号的MATLAB产⽣和图形显⽰实验⽬的加深对常⽤离散信号的理解;掌握⽤MATLAB实现常⽤离散时间信号的⽅法。
实验原理1.单位抽样序列在MATLAB中可以利⽤zeros()函数实现,如果在时间轴上延迟了k个单位,得到即:2.单位阶跃序列在MATLAB中可以利⽤ones()函数实现,3.正弦序列在MATLAB中4.复正弦序列在MATLAB中5.指数序列在MATLAB中实验内容编制程序产⽣上述5种信号(长度可输⼊确定),并绘出其图形。
实验程序与结果分析单位抽样序列clear all;close all;clc;x=zeros(1,25);x(1)=1;stem(0:24,x);xlabel('n');ylabel('fudu');grid on;单位阶跃序列clc;N=25;x=ones(1,N);stem(0:24,x);xlabel('n');ylabel('幅度');grid on;正弦序列clear all;close all;clc;f0=input('please input f0:')fs=input('please input fs:')A=input('please input A:')fai=pi/3;n=0:99;x=A*sin(2*pi*f0*n/fs+fai);stem(x)(1)f0=10Hz fs=30Hz;(2) A=1,f0=10Hz fs=50Hz;(3A=1,)f0=10Hz fs=100Hz;(4)A=1,f0=10Hz fs=1000Hz;改变发f0和fs,由w=2*pi*f0/fs的序列的数字⾓频率发⽣变化,这⾥f0/fs均为有理数,所以所得序列是周期的,随着w的变化,序列的周期也在变化。
离散时间信号与系统实验的matlab实现
离散时间信号与系统[实验目的]1.了解信号处理的基本操作2.熟悉一些常用的序列及其应用[实验原理]我们所接触的信号大多为连续信号,为使之便于处理,往往要对其进行采样,对信号抽样并保证其能完全恢复,对抽样频率有一定的限制。
基本的离散序列的定义如下:1.单位采样序列2.单位阶跃序列3.实指数序列,;a为实数4.复数指数序列,5.正余弦序列,6.周期序列,[实验内容]1.用MATLAB实现函数impseq(n0,n1,n2),使函数实现,。
函数定义:function [x,n]=impseq(n0,n1,n2)if (n1〉n2||n0〉n2||n0<n1)error(’parameter error');end;if (n1〈=n2)for n=1:n2-n1+1if (n==n0)x(1,n)=n1-1+n;x(2,n)=1;end;x(1,n)=n1—1+n;x(2,n)=0;end;x(2,n0—n1+1)=1;end;运行结果:impseq(3,1,9)ans =6 7 8 9 10 11 12 13 140 0 0 0 1 0 0 0 0注:上面一行为自变量n,下面一行为函数值,以下运行结果为两行的,都与此题同,不在表明。
2.用MATLAB实现函数stepseq(n0,n1,n2),使函数实现u(n-n0),。
函数定义:function[x,n]=stepseq(n0,n1,n2)if (n0〉n2||n0〈n1||n1>n2)error(’parameter error’);end;for n=1:n2—n1+1if(n+n1-1〈n0)x(1,n)=n1+n-1;x(2,n)=0;elsex(1,n)=n1+n—1;x(2,n)=1;end;end;运行结果:Stepseq(4,2,10)ans =2 3 4 5 6 7 8 9 100 0 1 1 1 1 1 1 1 注:与上同,上面一行是自变量,下面一行是函数值。
实验一离散时间信号在MATLAB中的表示
实验一离散时间信号的表示及运算一、实验目的1、学会运用MATLAB 表示的常用离散时间信号;2、学会运用MATLAB 实现离散时间信号的基本运算。
二、实验原理及实例分析2.1 离散时间信号在MATLAB中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用x(n)来表示,自变量n 必须是整数。
离散时间信号的波形绘制在MA TLAB 中一般用stem( )函数(注释:stem中文意思是茎、干、柄)。
stem( )函数的基本用法和plot( )函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。
如果要实心,需使用参数“ fill ”、“ filled ”,或者参数“ .”。
由于MATLAB 中矩阵元素的个数有限,所以MATLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。
类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。
0、判断n 是否为整数function y = isInt(n)y = (n==fix(n)); % fix(n) 为取整运算end1、单位取样序列单位取样序列(n) ,也称为单位冲激序列,定义为1 (n 0)1)0 (n 0)要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n=0 处是取确定的值1。
在MA TLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即function y=impDT(n)y=(n==0); %当参数n 为0 时冲激为1,否则为0end调用该函数时n 必须为整数或整数向量。
【实例1】利用MA TLAB 的impDT 函数绘出单位冲激序列的波形图。
解:MATLAB 源程序为>>n=-3:3; % n=[-3,-2,-1,0,1,2,3]>>x=impDT(n);>>stem(n,x,'fill'), xlabel('n'), grid on>>title(' 单位冲激序列')>>axis([-3 3 -0.1 1.1])程序运行结果如图 1 所示。
用MATLAB产生时域离散信号
实验一:用MATLAB 产生时域离散信号一、实验内容2、编写程序,产生以下离散序列: (1)f(n)=δ(n) (-3<n<4)n1=-3;n2=4;n0=0; n=n1:n2; x=[n==n0]; stem(n,x,'filled');axis([n1,n2,0,1.1*max(x)]); xlabel('时间(n)');ylabel('幅度x(n)'); title('单位脉冲序列');-3-2-1012340.20.40.60.81时间(n)幅度x (n )单位脉冲序列课程名称 实验成绩 指导教师 实 验 报 告院系 班级 学号 姓名日期 2011年10月17日(2)f(n)=u(n) (-5<n<5)n1=-5;n2=5;n0=0; n=n1:n2; x=[n>=n0]; stem(n,x,'filled');axis([n1,n2,0,1.1*max(x)]); xlabel('时间(n)');ylabel('幅度x(n)'); title('单位阶跃序列'); box-5-4-3-2-101234500.20.40.60.81时间(n)幅度x (n )单位阶跃序列(3)f(n)= e(0.1+j1.6∏)n(0<n<16)n1=16;a=-0.1;w=1.6*pi; n=0:n1;x=exp((a+j*w)*n);subplot(2,2,1);plot(n,real(x)); title('复指数信号的实部');subplot(2,2,3);stem(n,real(x),'filled'); title('复指数序列的实部'); subplot(2,2,2);plot(n,imag(x)); title('复指数信号的虚部');subplot(2,2,4);stem(n,imag(x),'filled'); title('复指数序列的虚部'); box5101520-1-0.500.51复指数信号的实部5101520-1-0.500.51复指数序列的实部5101520-1-0.500.51复指数信号的虚部5101520-1-0.500.51复指数序列的虚部(4)f(n)=3sin(n П/4) (0<n<20)f= 1/8;Um=3;nt=2; N=32; T=1/f; dt=T/N;n=0:nt*N-1; tn=n*dt;x=Um*sin(2*f*pi*tn); subplot(2,1,1);plot(tn,x);axis([0,nt*T,1.1*min(x),1.1*max(x)]); ylabel('x(t)');subplot(2,1,2);stem(tn,x);axis([0,nt*T,1.1*min(x),1.1*max(x)]); ylabel('x(n)'); box246810121416-202x (t )246810121416-202x (n )3、一个连续的周期性方波信号频率为200Hz ,信号幅度在-1~+1V 之间,要求在图形窗口上显示其两个周期的波形。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 单位抽样序列,或称为离散时间冲激,单位冲激:
⎩
⎨⎧=01)(n δ 00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:
⎩⎨⎧=-01)(k n δ
0≠=n k n 2.单位阶跃序列
⎩
⎨⎧01)(n u 00<≥n n 在MATLAB 中可以利用ones( )函数实现。
);,1(N ones x =
3.正弦序列
)(cos )(0φω+=n A n x 这里,
,,0ωA 和φ都是实数,它们分别称为本正弦信号)(n x 的振幅,角频率和初始相位。
πω200=f 为频率。
4.复正弦序列 n j e n x ω=)(
5.实指数序列
n A n x α=)(
6. 随机序列
长度为N 的随机序列
基本数学函数参考教材P69页以及随后的使用说明。
注意使用行向量,特别是冒号运算符。
举例,长度为N 的实指数序列在MATLAB 中实现:
n a x N n .^1
:0=-=
1. 单位采样
长度为N 的单位采样序列u(n)可以通过下面的MATLAB 命令获得:
u=[1 )1,1(-N zeros ];
延迟M 个采样点的长度为N 的单位采样序列ud(n)(M<N)可以用下面命令获得:
ud=[),1(M zeros 1 )1,1(--M N zeros ];
2. 单位阶跃序列
长度为N 的单位阶跃序列s(n)可以用下面的MATLAB 命令获得:
)];,1([N ones s =
延迟的单位阶跃序列可以使用类似于单位采样序列的方法获得。
3. 正弦序列
长度为N 的正弦序列在MATLAB 中实现:
)/***2cos(*1
:0phase Fs n f pi A x N n +=-=
4. 指数序列
长度为N 的指数序列在MATLAB 中实现:
)**exp(1
:0n j x N n ω=-=
5. 实指数序列
长度为N 的实指数序列在MATLAB 中实现:
n a x N n .^1
:0=-=
6. 随机序列
长度为N 的随机序列在MATLAB 中实现:
);,1(N rand x =。