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])。
- 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 =。