实验1 常见离散信号的MATLAB产生和图形显示
- 格式:doc
- 大小:48.50 KB
- 文档页数:2
常见离散信号产生和实现实验报告实验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-的函数。
常见离散信号的MATLAB产⽣和图形显⽰实验报告实验⼀常见离散信号的MATLAB 产⽣和图形显⽰⼀实验⽬的加深对常⽤离散信号的理解⼆实验原理及实验内容1.单位抽样序列=01)(n δ 00≠=n nMATLAB 程序:%单位抽样序列t=-20:20; %产⽣⼀个-20到20的矩阵 x=zeros(1,41); %产⽣⼀个全为1的矩阵 x(21)=1; %x 的第21个元素为1 stem(t,x); %绘制x 的序列图 grid on; %画⽹格线 title('单位抽样序列') %加标题绘图:2.单位阶越序列01)(n u 00<≥n nMATLAB 程序: %单位阶越序列x=[zeros(1,20),ones(1,21)]; %产⽣⼀个前20个元素为0,后21个元素为1的数组 stem(t,x); %绘制x 的序列图 grid on; %画⽹格线title('单位阶越序列') %加标题绘图:3.正弦序列)/2sin()(?π+=Fs fn A n xMATLAB 程序: %正弦序列n=0:100; %产⽣⼀个0到100的矩阵 fai=pi/4; %相位赋值 A=2; %振幅赋值 f=1/50; %频率赋值Fs=1; %采样频率赋值 x=A*sin(2*pi*f*n/Fs+fai) ; %⽣成正弦序列x stem(n,x); %绘制x 的序列图 axis([0 50 -3 3]); %限定坐标轴范围 title('正弦序列'); %加标题绘图:4.复正弦序列jn)(=enx?MATLAB程序:%复正弦序列n=0:20;%产⽣⼀个0到20的矩阵x=exp(j*pi/20*n);%⽣成复正弦序列subplot(1,2,1),stem(n,real(x));%绘制x的实数部分title('复正弦序列实部');%加标题grid on; %画⽹格线subplot(1,2,2),stem(n,imag(x),'filled');%绘制x的虚部部分title('复正弦序列虚部');%加标题grid on%画⽹格线5.指数序列n)x=(naMATLAB程序:%指数序列n=0:10;%产⽣⼀个0到10的矩阵x=(0.6).^n;%⽣成⼀个底数为0.6的指数序列stem(n,x);%绘制x的序列图grid on%画⽹格线三.思考题1讨论复指数序列的性质(1)正交性,复指数序列⽤欧拉公式展开可得:e^jωn=cosωn+jsinωn其可表⽰⼀个余弦信号与⼀个正弦信号的叠加,这两个信号呈正交关系。
数字信号处理实验报告班级:硕姓名:学号:实验1 常见离散信号的MATLAB 产生和图形显示实验目的:加深对常用离散信号的理解;实验内容:(1)单位抽样序列clc;x=zeros(1,11); x(1)=1; n=0:1:10;stem(n,x, 'fill'); title('单位抽样序列'); xlabel('n'); ylabel('x[n]')延迟5个单位:clc;x=zeros(1,11); x(6)=1; n=0:1:10;stem(n,x, 'fill'); title('单位抽样序列'); xlabel('n'); ylabel('x[n]')nx [n ](2)单位阶跃序列clc;x=[zeros(1,5),ones(1,6)]; n=-5:1:5;stem(n,x,'fill'); title('单位阶跃序列'); xlabel('n'); ylabel('x[n]');nx [n ](3)正弦序列clc; N=50; n=0:1:N-1; A=1; f=1; Fs=50; fai=pi;x=A*sin(2*pi*f*n/Fs+fai); stem(n,x,'fill'); title('正弦序列'); xlabel('n'); ylabel('x[n]'); axis([0 50 -1 1]);nx [n ](4)复正弦序列clc; N=50; n=0:1:N-1; w=2*pi/50; x=exp(j*w*n); subplot(2,1,1); stem(n,real(x)); title('复正弦序列实部'); xlabel('n');ylabel('real(x[n])'); axis([0 50 -1 1]); subplot(2,1,2); stem(n,imag(x)); title('复正弦序列虚部'); xlabel('n');ylabel('imag(x[n])'); axis([0 50 -1 1]);nx [n ](5)指数序列clc; N=10; n=0:1:N-1; a=0.5; x=a.^n;stem(n,x,'fill'); title('指数序列'); xlabel('n'); ylabel('x[n]'); axis([0 10 0 1]);nr e a l (x [n ])ni m a g (x [n ])(6)复指数序列性质讨论:0(j )()enx n σω+=将复指数表示成实部与虚部为00()e cos j sin n n x n n e n σσωω=+1.当σ=0时,它的实部和虚部都是正弦序列。
实验一 常见离散信号的MATLAB 产生和图形显示一、 实验目的加深对常见离散信号的理解二、实验内容及步骤编制程序产生以下信号,并绘出其图形。
1)产生64点的单位抽样序列)(n δN=64x=[1,zeros(1,N-1)]stem(x)2)产生64点并移位20位的单位抽样序列)20(-n δN=64x=[0,zeros(1,N-1)]x(20)=1stem(x)3)任意序列)5(7.0)4(9.2)3(6.5)2(8.1)1(4.3)(0.8)(-+-+-+-+-+=n n n n n n n f δδδδδδ4)产生幅度A=3,频率f=100,初始相位ϕ=1.2,点数为32 点的正弦序列。
n=0:31;x=3*exp(j*314*n)figure(1)stem(n,x)5)产生幅度A=3,角频率ω=314,点数为32 点的复正弦序列。
n=0:31A=3;w=314;x=A*exp(w*j*n)stem(x)6)产生幅度A=3,a=0.7,点数为32 点的实指数序列。
n=0:31;A=3;a=0.7;x=A*a.^nstem(x)实验二 离散系统的时域分析一、 实验目的(1)熟悉并掌握离散系统的差分方程表示方法(2)加深对冲激响应和卷积方法的理解二、 实验内容与要求编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。
要求分别用 filter 、conv 、impz 三种函数完成。
y [n ]+ 0.75y [n −1]+ 0.125y [n − 2] = x [n ]− x [n −1]y [n ] = 0.25{x [n −1]+ x [n − 2]+ x [n −3]+ x [n − 4]}给出理论计算结果和程序计算结果并讨论。
三、实验原理系统响应为如下的卷积计算公式:][][][*][][m n h m x n h n x n y m -==∑∞-∞=h[n]是有限长度的(n:0,M),称系统为FIR系统;反之,称系统为IIR系统。
实验报告实验题目:基本离散信号的MATLAB产生和图形显示姓名:杨全任伟院别:电气工程学院专业:电子信息工程班级:电子一班指导教师:许春和时间: 2014 年10 月 31 日电气工程学院一、实验目的:(1)熟悉MATLAB应用环境,常用窗口的功能和使用方法。
(2)加深对常用离散时间信号的理解。
(3)掌握简单的绘图命令。
二、实验仪器:PC机一台MATLAB软件三、实验用MATLAB函数介绍:(1)数字信号处理中常用到的绘图指令(具体调用格式参看help) close all; %关闭所有图形窗口clear; %清除工作空间中的所有变量clc; %清除命令窗口显示figure( ); %新建一个图形窗口并给定序号stem( ); %函数序列柄状图形绘制plot( ); % 线性坐标图形绘制subplot( ); %将图形窗口分成若干个区域grid on(off); %给图形加网格线hold on(off); %当前图形保护模式linde([xmin,xmax],[0,0])%绘制X轴线axis([xmin,xmax,ymin,ymax]) %设置X\Y坐标轴刻度title (‘‘); % 给图形加标题ylabel (‘‘); %给图形加y坐标说明(2)离散时间信号产生可能涉及的函数zeros(); ones(); exp(); sin();length(); real();imag();四、实验内容:(1)产生冲击%单位冲击序列的产生n=0:6;%定义序列长度xn=[zeros(1,1),1,zeros(1,5)];%产生序列stem(n,xn,'k.');%绘制图形grid on; %图形添加网格axis([-2,2,0,1]);%定义X,Y轴xlabel ('时间n'); %X轴注释ylabel('幅度');%Y轴注释title('单位冲击序列\delta(n-1)');%添加标题(2)绘出单位阶跃序列、矩形序列序列的图形长度任意设定并给出程序。
实验一 离散信号及其MATLAB 实现一、实验目的(1) 熟悉MATLAB 的主要操作命令; (2) 学会离散信号的表示方法及其基本运算; (3) 掌握简单的绘图命令;(4) 用MATLAB 编程并学会创建函数;二、实验内容(1) 序列的加、减、乘、除和乘方运算。
输入A=[1 2 3 4],B=[3 4 5 6],起点n=0,求C=A+B ,D=A-B ,E=A.*B ,F=A./B ,G=A.^B ,并用stem 语句画出A ,B ,C ,D ,E ,F ,G 。
(2) 用MATLAB 实现下列序列:①()n n x 8.0= 150≤≤n ②()()n j e n x 32.0+= 150≤≤n③()()()ππππ1.025.0sin 22.0125.0cos 3+++=n n n x 150≤≤n (3) 编写函数如()2,1,0n n n stepshift 实现()n u 的移位序列()0n n u -,21n n n ≤≤,绘出该函数的图形。
设n1=0,n2=9,n0=2(4) ()]5,3,1,1[-=n x , 起点n=0, 产生并绘出下列序列的样本:()()()()n x n x n x n x 21221---+=三、实验图形记录(1)序列的加、减、乘、除和乘方运算输入序列,和输出序列图形分别如下图所示nAnBnCnD00.511.522.53nE序列的运算00.511.522.53nFnG(2)序列的表示051015nx 1序列的表示051015nx 2051015nx 3(3)序列的移位0123456789nx阶跃序列nx 1阶跃序列的移位(4)序列相加-2-101234nx 1序列相加四、实验小结通过本次实验学会了编写M文件实现离散信号的运算图像绘制等;更加熟练地掌握了序列的几个基本运算:加法、乘法、移位、翻转和尺度变换;知道了模拟信号经过等间隔采样可以得到时域离散信号,如()nx32.0+=、nx8.0n=、()()n je()()()ππππ1.0++=n3+x等模拟信号经过16点等间隔采nnsincos252.02.0125.0样可得到上述所示16点离散序列;熟悉了stepshift的编写来实现序列的移位;熟悉了MATLAB的主要操作命令,同时掌握了离散信号的表示方法及基本运算和绘制命令。
计算机与信息工程学院验证性实验报告1. 加深对离散信号的理解。
2. 掌握典型离散信号的Matlab 产生和显示。
二、实验原理及方法在MATLAB 中,序列是用矩阵向量表示,但它没有包含采样信息,即序列位置信息,为此,要表示一个序列需要建立两个向量;一是时间序列n,或称位置序列,另一个为取值序列x ,表示如下:n=[…,-3,-2,-1,0,1,2,3,…]x=[…,6,3,5,2,1,7,9,…]一般程序都从0 位置起始,则x= [x(0), x(1), x(2),…]对于多维信号需要建立矩阵来表示,矩阵的每个列向量代表一维信号。
数字信号处理中常用的信号有指数信号、正弦信号、余弦信号、方波信号、锯齿波信号等,在MATLAB 语言中分别由exp, sin, cos, square, sawtooth 等函数来实现。
三、实验内容1. 用MATLAB 编制程序,分别产生长度为N (由输入确定)的序列: ①单位冲击响应序列:δ(n )可用MATLAB 中zeros 函数来实现; ②单位阶跃序列:U (n )可用MATLAB 中ones 函数来实现;③正弦序列:()()sin x n n ω=;④指数序列:(),n x n a =-∞<∞<+∞⑤复指数序列:用exp 函数实现()0a jb n K e +,并给出该复指数序列的实部、虚部、幅值和相位的图形。
(其中a=-0.2;b=0.5;K0=4;N=40.)参考流程图:四、实验报告要求1. 写出实验程序,绘出单位阶跃序列、单位阶跃序列、正弦序列、指数序列的图形以及绘出复指数序列的实部、虚部、幅值和相位的图形。
2. 序列信号的实现方法。
3. 在计算机上实现正弦序列0()sin(2)x n A fn πϕ=+。
五、实验程序及结果%编写一个长度为N 的单位冲激响应序列function [x,n]=impseq1(N)n1=-5; %设置的起始时间点n2=N+n1-1; %设置的终止时间点n=n1:n2;x=[zeros(1,-n1),1,zeros(1,n2)];stem(n,x,'r*')title('长度为N 的单位冲激响应序列')xlabel('n')在MATLAB Command Window 中输入[x,n]=impseq1(40),结果如下:%编写一个长度为N 的单位阶跃序列function [x,n]=stepseq1(N)n1=-10; %设置的起始时间点n2=N+n1-1; %设置的终止时间点n=n1:n2;x=[zeros(1,-n1),ones(1,n2+1)];plot(n,x,'*')hold onplot(n,x,'r')title('长度为N 的单位阶跃序列')xlabel('n')在MATLAB Command Window中输入[x,n]=stepseq1(40),结果如下:%编写一个长度为N角频率为w的正弦序列function [y,n]=wqq_sin(N,w)n1=-5; %设置的起始时间点n2=N+n1-1; %设置的终止时间点n=n1:.01:n2;y=sin(w*n);plot(n,y,'r')hold ontitle('长度为N角频率为w的正弦序列')xlabel('n')在MATLAB Command Window中输入[x,n]=wqq_sin(40,0.2*pi),结果如下:%编写一个长度为N幂底数为a的指数序列function [y,n]=wqq_zhishu(N,a)n1=-5; %设置的起始时间点n2=N+n1-1; %设置的终止时间点n=n1:.01:n2;y=a.^n;plot(n,y,'r')title('长度为N幂底数为a的指数序列')xlabel('n')在MATLAB Command Window中输入[y,n]=wqq_zhishu(10,0.5),结果如下:%编写一个长度为N的复指数序列function [y,n]=wqq_fuzhishu(a,b,K0,N)n1=-20; %设置的起始时间点n2=N+n1-1; %设置的终止时间点n=n1:n2;y=K0.*exp((a+b*j).*n);y1=real(y); %复指数的实部y2=imag(y); %复指数的虚部y3=abs(y); %复指数的幅值y4=angle(y); %复指数的相位subplot 221stem(n,y1,'*')title('复指数序列')ylabel('实部'); gridsubplot 222stem(n,y2,'*')title('复指数序列')ylabel('虚部');gridsubplot 223stem(n,y3,'*')ylabel('幅值');xlabel('n');gridsubplot 224stem(n,y4,'*')ylabel('相位');xlabel('n');grid在MATLAB Command Window中输入[y,n]=wqq_fuzhishu(-0.2,0.5,4,40),结果如下:六、实验小节经本次实验我了解了单位阶跃序列、单位阶跃序列、正弦序列、指数序列及复指数序列的实现方法,并通过绘出它们的图形掌握了各个函数的特点,此次实验编写的均是子程序,方便以后随时调用。
/p-267512371.html实验1 常见离散信号的MATLAB 产生和图形显示一、实验目的:1、加深对常用离散信号的理解;2、掌握matlab 中一些基本函数的建立方法。
二、实验原理:1.单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n 在MATLAB 中可以利用zeros()函数实现。
;1)1();,1(==x N zeros x 如果)(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.正弦序列)/2sin()(ϕπ+=Fs fn A n x在MATLAB 中)/***2sin(*1:0fai Fs n f pi A x N n +=-= 4.复指数序列n j e r n x ϖ⋅=)(在MATLAB 中)**exp(1:0n w j r x N n ⋅=-= 5.指数序列n a n x =)(在MATLAB 中na x N n .^1:0=-= 三、实验内容实现和图形生成1、五种基本函数的生成程序如下:(1)、单位抽样序列% 单位抽样序列和延时的单位抽样序列clf;n=0:10;x1=[1 zeros(1,10)];x2=[zeros(1,5) 1 zeros(1,5)];subplot(1,2,1);stem(n,x1);xlabel ('时间序列n');ylabel('振幅');title('单位抽样序列x1');subplot(1,2,2);stem(n,x2); xlabel('时间序列n');ylabel('振幅');title('延时了5的单位抽样序列');(2)、单位阶越序列clf;n=0:10;u=[ones(1,11)];stem(n,u);xlabel ('时间序列n');ylabel('振幅');title('单位阶越序列');所得的图形如下所示:(3)正弦函数clf;n=1:30;x=2*sin(pi*n/6+pi/3);stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('正弦函数序列x=2*sin(pi*n/6+pi/3)');(4)、复指数序列clf;n=1:30;x=2*exp(j*3*n);stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('复指数序列x=2*exp(j*3*n)');图形如下:(5)指数序列clf;n=1:30;x=1.2.^n;stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('指数序列x=1.2.^n');2、绘出信号zn e n x =)(,当6)12/1(πj z +-=、6)12/1(πj z +=时、121=z 、62πj z +=、6πj z =时的信号实部和虚部图;程序如下:clf;z1=-1/12+j*pi/6;z2=1/12+j*pi/6;z3=1/12;z4=2+j*pi/6;z5=j*pi/6;n=0:20;x1=exp(z1*n);x2=exp(z2*n); x3=exp(z3*n);x4=exp(z4*n); x5=exp(z5*n);subplot(5,2,1);stem(n,real(x1)); xlabel ('时间序列n');ylabel('实部');title('复指数z1=-1/12+j*pi/6时序列实部'); subplot(5,2,2);stem(n,imag(x1)); xlabel ('时间序列n');ylabel('虚部');title('复指数z1=-1/12+j*pi/6时序列虚部'); subplot(5,2,3);stem(n,real(x2)); xlabel ('时间序列n');ylabel('实部');title('复指数z2=1/12+j*pi/6时序列实部'); subplot(5,2,4);stem(n,imag(x2)); xlabel ('时间序列n');ylabel('虚部');title('复指数z2=1/12+j*pi/6时序列虚部'); subplot(5,2,5);stem(n,real(x3)); xlabel ('时间序列n');ylabel('实部');title('复指数z3=1/12时序列实部'); subplot(5,2,6);stem(n,imag(x3)); xlabel ('时间序列n');ylabel('虚部');title('复指数z3=1/12时序列虚部'); subplot(5,2,7);stem(n,real(x4)); xlabel ('时间序列n');ylabel('实部');title('复指数z4=2+j*pi/6时序列实部'); subplot(5,2,8);stem(n,imag(x4)); xlabel ('时间序列n');ylabel('虚部');title('复指数z4=2+j*pi/6时序列虚部'); subplot(5,2,9);stem(n,real(x5)); xlabel ('时间序列n');ylabel('实部');title('复指数z5=j*pi/6时序列实部'); subplot(5,2,10);stem(n,imag(x5)); xlabel ('时间序列n');ylabel('虚部');title('复指数z5=j*pi/6时序列虚部');由上图的实部部分可以看出,Z=pi/6时,序列周期为12。
实验一 实验名称:常见离散信号的Matlab 产生和图形显示一、实验目的1、加深对常用离散信号的理解;2、掌握matlab 中一些基本函数的建立方法。
二、实验步骤(附源代码及仿真结果图)1、使用状况1)创建M 文件File-→New-→M-file 2)运行Debug->run 2、实验原理1)单位抽样序列 ⎩⎨⎧=01)(n δ00≠=n n 在MATLAB 中可以利用zeros()函数实现。
%创建一个1行N 列的0矩阵,将第一个值重新赋值为1;1)1();,1(==x N zeros x 如果在时间轴上延迟了k 个单位,得到即:)(n δ)(k n -δ ⎩⎨⎧=-01)(k n δ0≠=n k n 2)单位阶越序列⎩⎨⎧01)(n u 00<≥n n 在MATLAB 中可以利用ones()函数实现。
%一个长度为N 的零矩阵);,1(N ones x =3)正弦序列)/2sin()(ϕπ+=Fs fn A n x在MATLAB 中)/***2sin(*1:0fai Fs n f pi A x N n +=-=4)复指数序列nj e r n x ϖ⋅=)(在MATLAB 中)**exp(1:0n w j r x N n ⋅=-=5)指数序列n a n x =)(在MATLAB 中n a x N n .^1:0=-=3、实验内容(1)、单位抽样序列(2)、单位阶越序列)正弦函数(3(4)2、绘出信号,当、时、、zn e n x =)(6)12/1(πj z +-=6)12/1(πj z +=121=z 、时的信号实部和虚部图;62πj z +=6πj z =程序如下: 由上图的实部部分可以看出,Z=pi/6时,序列周期为12。
计算序列周期为2*6=12。
实验和理论相符。
3、绘出信号的频率是多少?周期是多少?产生一个数)1.0*2sin(5.1)(n n x π=字频率为0.9的正弦序列,并显示该信号,说明其周期?程序如下:由上图看出:x1=1.5*sin(2*pi*0.1*n)的周期是10,而x2=sin(0.9*n)是非周期的。
实验1 常见离散信号的MATLAB 产生和图形显示
一、 实验目的
1、 加深对常用离散信号的理解;
2、 熟悉使用MATLAB 在时域中产生一些基本的离散时间信号。
二、 实验原理
1. 单位抽样序列
⎩
⎨⎧=01)(n δ 00≠=n n 在MATLAB 中可以利用zeros()函数实现。
x=[1 zeros(1,N-1)]
2.单位阶越序列
⎩⎨⎧0
1)(n u 00<≥n n 在MATLAB 中可以利用ones()函数实现。
);,1(N ones x =
3.正弦序列
)/2sin()(ϕπ+=Fs fn A n x
在MATLAB 中实现过程如下
0:1*sin(2***/)
n N x A pi f n Fs ϕ=-=+ 4.复指数序列
n j e r n x ϖ⋅=)(
在MATLAB 中实现过程如下
)**exp(1:0n w j r x N n ⋅=-= 5.指数序列
n a n x =)(
在MATLAB 中实现过程如下
n a x N n .^1:0=-=
三、 预习要求
(1)预先阅读附录(MATLAB 基础介绍);
(2)讨论正弦序列、复指数序列的性质。
A .绘出信号zn e n x =)(,当z=6)12/1(πj +-、 z=6)12/1(π
j +时、z =1/12、z =62π
j +时的信号实部和虚部图;当z =6π
j 时呢?此时信号周期为多少?
B .绘出信号)1.0*2sin(5.1)(n n x π=的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期?
(3) 使用帮助功能学习 square(方波), sawtooth(锯齿波)和sinc 函数,并绘图。
四、 实验内容
编制程序产生上述5种信号,长度可输入确定,函数需要的参数可输入确定,并绘出其图形。