实验1 常见离散信号的MATLAB产生和图形显示
- 格式:pdf
- 大小:132.94 KB
- 文档页数:7
实验一:用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 常见离散信号的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)绘出单位阶跃序列、矩形序列序列的图形长度任意设定并给出程序。
/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 产生和图形显示授课课时: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实现一、目的要求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的白噪声。
实验一离散时间信号的表示及运算一、实验目的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 所示。
《数字信号处理》实验指导书实验一 常见离散信号的产生一、实验目的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 ω=; ④指数序列:(),nx n a n =-∞<<+∞⑤复指数序列:用exp 函数实现()0()a jb nx n K e+=,并给出该复指数序列的实部、虚部、幅值和相位的图形。
(其中00.2,0.5,4,40a b K N =-===.)参考流程图:四、实验报告要求1. 写出实验程序,绘出单位阶跃序列、单位阶跃序列、正弦序列、指数序列的图形以及绘 出复指数序列的实部、虚部、幅值和相位的图形。
2. 序列信号的实现方法。
3. 在计算机上实现正弦序列0()sin(2)x n A fn πϕ=+。
实验二 离散信号的运算一、实验目的1. 掌握离散信号的时域特性。
2. 用MATLAB 实现离散信号的各种运算。
实验一 实验名称:常见离散信号的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)是非周期的。
实验一离散信号及其MATLAB实现一. 实验目的(1)熟悉MATLAB的主要操作命令;(2)学会离散信号的表示方法及基本操作运算;(3)掌握简单的绘图命令;(4)用MATLAB编程并学会创建函数;二. 实验原理1.离散信号表示与运算在数字信号处理中,所有信号都是离散时间信号——序列,表示为x(n)={...,x(-1),x(0),x(1),...} -∞<n<∞MATLAB一般把普通的一维抽样数据信号即抽样序列表示成向量的形式。
本实验用到的典型信号表示如下:(1)实指数序列 x(n)=a n a∈RMATLAB实现n=0:N-1;x=a.^n;+β)n1≤ n≤ n2(2) 正(余)弦序列x(n)=Asin(2fπnTSMATLAB实现n=n1:n2;x=A*sin(2*pi*f*n*Ts + β);(3) 复指数序列 x(n)=e(α + jw)n 任意nMATLAB实现n=0:N-1;x=exp(( r + j*w)*n);(4)单位阶跃序列:在MATLAB中可用函数ones(1,N)产生一个由N个1组成的行向量,实现有限区间的u(n)x=ones(1,N);(5)单位抽样序列:在MATLAB中可用函数zero(1,N)产生一个由N个零组成的行向量,实现有限区间x=zeros(1,N)x(1)=1;(6)定义函数格式:例:function [d]=mysum(a,b,c)2.MATLAB的绘图方法(1)函数:figure()figure:创建一个图形窗口并返回它的句柄;(2)子图函数:subplot()subplot(m, n, p):将窗口划分为m*n的小窗口矩阵,选择第p个为当前绘图窗口并返回句柄.具体窗口的计数是沿着顶部的行进行,然后再到下一行.(3)绘制离散序列数据杆状图函数:stem()stem(x, y):在x的制定值处画数据序列y的杆状图。
(4)设置网格线命令:gridgrid ON : 对当前坐标线加上网格线grid OFF :撤销网格线grid :设置或撤销网格线(5)添加坐标轴标志函数:xLabel(), yLabel()三.实验内容(1)序列的加、减、乘、除和乘方运算。
实验一 Matlab 中常用离散信号产生及绘图命令的练习一、实验目的:1. 了解Matlab 的基本操作,为以后的实验奠定基础;2. 熟悉Matlab 操作环境,并进行一些简单的计算和m 文件的编写; 3. 加深对常用离散信号的理解; 二、实验原理: 1.离散信号产生1)单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n在MA TLAB 中可以利用 [x,n] = impseq(n0,n1,n2) 函数实现 如果)(n δ在时间轴上延迟了m 个单位,得到)(m n -δ即:⎩⎨⎧≠==-mn mn m n ,0,1)(δ2)单位阶跃序列⎩⎨⎧>=nn n u 其他,00,1)(在MATLAB 中可以利用 ones () 函数实现3)余弦序列)/2cos()(φπ+=S F fn A n x在MA TLAB 中)/***2cos(*1:0φ+=-=s F n f pi A x N ns F :采样频率 4)复正弦序列n j e n x ω=)(在MA TLAB 中)**exp(1:0n j x N n ω=-=5)指数序列)()(n u a n x n =在MA TLAB 中na x N n .^1:0=-=2. 绘图语句 1)figurefigure 有两种用法,只用一句figure 命令,会创建一个新的图形窗口,并返回一个整数型的窗口编号。
figure(n)表示将第n 号图形窗口作为当前的图形窗口, 并将其显示在所有窗口的最前面; 如果该图形窗口不存在, 则新建一个窗口,并赋以编号n 。
2)plot线型绘图函数。
用法为plot(x,y,′s ′)。
参数x 为横轴变量,y 为纵轴变量,s 用以控制图形的基本特征如颜色、粗细等,通常可以省略。
3)Stem绘制离散序列图,常用格式stem(y)和stem(x,y)分别和相应的plot 函数的绘图规则相同,只是用stem 命令绘制的是离散序列图。
常见离散信号的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其可表⽰⼀个余弦信号与⼀个正弦信号的叠加,这两个信号呈正交关系。
实验一 常见离散信号的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点采样获得离散信号并显示该连续信号和离散信号的波形。
实验1-1 基本信号产生及matlab 使用练习训练1 常见离散信号的MATLAB 产生和图形显示1.单位抽样序列⎩⎨⎧=01)(n δ≠=n n n=-50:50;x=[zeros(1,50),1,zeros(1,50)]; stem(n,x,'fill');grid on ;图1-1 单位抽样序列2. 单位阶越序列⎩⎨⎧01)(n u00<≥n n n=-50:50;x=[zeros(1,50),ones(1,51)]; stem(n,x,'fill');grid on ;图1-2 单位阶跃序列3.正弦序列)/2sin()(ϕπ+=Fs fn A n xA=2; phi=pi/6; n=-10:10; f=0.1; fs=1;x=A*sin(2*pi*n*f/fs+phi); stem(n,x,'fill'); grid on ;图1-3 正弦序列4.复正弦序列nj=()enxϖn=0:50;f=0.1;fs=1;x=exp(j*2*pi*f*n/fs);stem(n,x,'fill');grid on;图1-4 复正弦序列5.指数序列n)(x=nan=0:10;a=2;x=a.^n;stem(n,x,'fill');grid on;图1-5 指数序列训练2 常见离散信号的MATLAB 产生和图形显示1 令()sin()()x n A n u n ω=+,其中16πω=,u(n)是白噪声。
(1)使用matlab 中的有关文件产生均值为0,功率为0.1的均匀分布白u(n),求其自相关函数并画出其波形。
(2)欲使x(n)的信噪比为10dB ,试决定A 的数值并画出x(n)及其自相关函数的图形。
解:(1) 产生均值为0,功率为0.1的均匀分布的白u(n)的程序如下:clear; p=0.1; N=5000; u=rand(1,N); u=u-mean(u); a=sqrt(12*p); u1=u*a;power_u1=dot(u1,u1)/N; subplot(211) plot(u1(1:200)); grid on ; ylabel('u(n)') xlabel('n')求u(n)自相关函数的程序如下:fs=1000;[cory,lag]=xcorr(u1,'unbiased'); plot(lag/fs,cory);图1-6 均匀分布u(n)的波形图1-7 均匀分布u(n)自相关函数的波形(2)求A的数值的程序如下:clear;p=0.1;N=5000;u=rand(1,N);u=u-mean(u);a=sqrt(12*p);u1=u*a;power_u1=dot(u1,u1)/N;A=10*max(u1) ||程序运行结果:A=5.5349产生x(n)的波形的程序:clear;p=0.1;N=5000;u=rand(1,N);u=u-mean(u);a=sqrt(12*p);u1=u*a;power_u1=dot(u1,u1)/N;A=10*max(u1);n=0:5000;x=A*sin(pi*n/16)+rand(size(n));figure(1);stem(x(1:100));grid on;图1-8 x(n)的波形求x(n)自相关函数的程序如下:fs=1000;[cory,lag]=xcorr(x(1:100),'unbiased');stem(lag/fs,cory);图1-9 x(n)自相关函数的波形2. 下面数组给出的是从1870年至1969年这100年间每12个月所记录到的太阳黑子出现次数的平均值。
实验一程序代码及实验结果图:(1)阅读并上机验证实验原理部分的例题程序,理解每一条语句的含义。
改变例题中的有关参数(如信号的频率、周期、幅度、显示时间的取值范围、采样点数等),观察对信号波形的影响。
实验程序代码及结果如下:例1-1 用MATLAB 的关系运算式来产生单位抽样序列。
n1= -5; n2=5; n0=0; %确定起始点和基准点位置n=n1:n2; %取值区间x=[n==n0]; %仅当n=n0时,x值为1stem(n,x,'filled');axis([n1,n2,0,1.1*max(x)]); %确定坐标轴范围xlabel('时间(n)'); ylabel('幅度x(n)'); %横纵坐标名称title('单位脉冲序列'); %标题例1-2 用zeros 函数和抽样点直接赋值来产生单位抽样序列。
n1=-5; n2=5; k=0; %确定起始点和基准点位置n=n1:n2; %取值区间nt=length(n); %确定参数的长度nk=abs(k-n1)+1; %取绝对值x=zeros(1,nt); %生成零矩阵x(nk)=1; %抽样点直接赋值为1stem(n,x,'filled');axis([n1,n2,0,1.1*max(x)]); %确定坐标轴范围xlabel('时间(n)'); ylabel('幅度x(n)'); %横纵坐标名称title('单位脉冲序列'); %标题例1-3 生成移位的单位脉冲序列。
n1=-5; n2=5; n0=2; %确定起始点和基准点位置n=n1:n2; %取值区间x=[(n-n0)==0]; %仅当n-n0=0,n=2时取1 stem(n,x,'filled');axis([n1,n2,0,1.1*max(x)]); %确定坐标轴范围xlabel('时间(n)'); ylabel('幅度x(n)'); %横纵坐标名称title('单位脉冲序列'); %标题例1-4 用MATLAB 的关系运算式来产生单位阶跃序列。
实验1 常见离散信号产生和实现一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB 在时域中产生一些基本的离散时间信号。
二、实验原理MATLAB 语言提供了一系列函数用来产生信号,如exp, sin, cos, square, sawtooth ,ones, zeros 等函数。
1. 基本信号序列 1) 单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n 程序:n=-10:20; %生成一个从-10到20的序列u=[zeros(1,10) 1 zeros(1,20)]; %生成一个前10位为0,第十一位为1,后20位为0的矩阵stem(n,u); %画出n 为横轴,u 为纵轴的序列xlabel('Time indexn');ylabel('Amplitude'); %添上x y 轴的标签title('Unit Sample Sequence'); %图表的标签axis([-10 20 0 1.2]); %规定横轴,纵轴的显示范围图形:如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ 0≠=n k n程序:n=-10:20;u=[zeros(1,15) 1 zeros(1,15)];stem(n,u);xlabel('Time indexn');ylabel('Amplitude');title('Unit Sample Sequence');axis([-10 20 0 1.2]);图形:2) 单位阶跃序列⎩⎨⎧01)(n u 00<≥n n 程序:n=-10:20;x=[zeros(1,10),ones(1,21)];stem(n,x);图形:3) 实指数序列 R a n a n x n∈∀=,)(程序:a1=1.1;a2=0.9;a3=-1.1;a4=-0.9;n=[-5:15];x1=(a1.^n);x2=(a2.^n);x3=(a3.^n);x4=(a4.^n); subplot(2,2,1);stem(n,x1,'.k');title('a>1');axis([-5,15,-0.5,5]);subplot(2,2,2);stem(n,x2,'.k');title('0<a<1');axis([-5,15,-0.2,1.2]);subplot(2,2,3);stem(n,x3,'.k');title('a<-1');axis([-5,15,-6,4]);subplot(2,2,4);stem(n,x4,'.k');title('<-1a<0');axis([-5,15,-1,1.2]);图形:4) 复指数序列n e n x nj ∀=+)()(ωσ程序:n=0:10;lu=0.2;w0=pi;x=exp((lu+j*w0)*n);stem(n,x);xlabel('Time indexn');ylabel('Amplitude');title('Unit Sample Sequence'); axis tight图形:5)随机序列程序:x=rand(1,20);stem(x);xlabel('Time indexn');ylabel('Amplitude');title('Unit Sample Sequence');axis tight图形:基本周期波形1)方波程序:t=0:0.1*pi:6*pi; %定义t为从0开始,间距为0.1pi,截止为6pi的序列y=square(t); %由函数生成方波axis([0 7*pi -1.5 1.5]); %规定尺度距离plot(t,y); %画出横轴为t 纵轴为y 的方波函数xlabel(‘时间 t’); % 为x 轴添加标签ylabe l(‘幅度y’); % 为y 轴添加标签axis([0 20 0 2])图形:2) 正弦波)/2sin()(ϕπ+=Fs fn A n x程序:t=0:0.1:15;A=2;x=A*sin(0.7*pi*t+0.5);plot(t,x);xlabel('Time index t');ylabel('Amplitude x');axis([0 2*pi -3 3])title('正弦波')图形:3)锯齿波程序:Fs=10000;t=0:1/Fs:2;x=sawtooth(2*pi*40*t);plot(t,x);xlabel('Time index t');ylabel('Amplitude x');axis([0 0.2 -2 2])title('锯齿波')图形:2.基本非周期波形程序:t=0:1/1000:2;x=chirp(t,0.1,80);plot(t,x);xlabel('Time index t');ylabel('Amplitude x'); specgram(x,256,100,256,250); title('基本非周期波形')图形:3.sinc信号程序:t=linspace(-5,5);x=sinc(t);plot(t,x);xlabel('Time index t');ylabel('Amplitude x');title('sinc信号')图形:4.序列的操作1)信号加x(n)=x1(n)+x2(n)MATLAB实现:x=x1+x2;注意:x1和x2序列应该具有相同的长度,位置对应,才能相加。
实验1 常见离散信号的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 kn2.单位阶越序列:⎩⎨⎧01)(n u 00<≥n n在MATLAB 中可以利用ones()函数实现。
(1,)x ones N = 3.正弦序列:)/2sin()(ϕπ+=Fs fn A n x 在MATLAB 中)/***2sin(*1:0fai Fs n f pi A x N n +=−=4.复正弦序列:n j e n x ϖ=)( 在MATLAB 中)**exp(1:0n w j x N n =−=5.指数序列:n a n x =)( 在MATLAB 中na x N n .^1:0=−=三、实验内容:1、编制程序产生上述5种信号(长度可输入确定),并绘出其图形。
2、讨论正弦序列、复指数序列的性质: (1)绘出信号()zn x n e =,当1126z j π=−+、1126z j π=+、112z =、62πj z +=、6πj z =时信号的实部和虚部图;当6πjz =时信号的周期为多少?(2)绘出信号() 1.5sin(2*0.1)x n n π=的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期。
3、使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc 函数,并绘图。
四、实验要求:1、预先阅读MATLAB 基础;2、讨论复指数序列的性质。
程序参考:1、绘制5中常见离散信号(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、讨论正弦序列、复指数序列的性质: (1)绘出信号()zn x n e =,当1126z j π=−+、1126z j π=+、112z =、62πj z +=、6π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。
计算序列周期为2*6=12。
实验和理论相符。
(2)绘出信号() 1.5sin(2*0.1)x n n π=的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期。
程序如下:clf; n=0:40;x1=1.5*sin(2*pi*0.1*n);x2=sin(0.9*n); subplot(1,2,1);stem(n,x1); xlabel ('时间序列n');ylabel('振幅');title('正弦序列x1=1.5*sin(2*pi*0.1*n)'); subplot(1,2,2);stem(n,x2); xlabel ('时间序列n');ylabel('振幅');title('正弦序列x2=sin(0.9*n)'); 运行结果如下:由上图看出:x1=1.5*sin(2*pi*0.1*n)的周期是10,而x2=sin(0.9*n)是非周期的。
理论计算中对第一个,N =2*pi/(0.1*pi )=10,第二个0.9不是pi 的倍数,所以不是周期的。
因此可以看出,实验结果和理论相符。
3、使用帮助功能学习 square(方波),sawtooth (锯齿波)和sinc 函数,并绘图。
(1)方波绘图程序如下:t=-2*pi:0.001:2*pi; x=square(t);plot(t,x); xlabel('t'),ylabel(' x=square(t)');(2) 三角波绘图程序如下:t=-2*pi:0.001:2*pi;y=sawtooth(t);plot(t,y); xlabel('t'),ylabel(' y=sawtooth(t);');(3)sinc函数绘图程序如下:t=-pi:0.001:pi;x=sinc(t);plot(t,x); xlabel('t'),ylabel('sinc(t);');四、问题讨论与总结:1、离散正弦序列的性质:离散正弦序列就是一个连续的正弦信号被一系列冲激函数采样后的结果,原连续正弦函数一定是周期的,但采样后的离散序列却不一定是周期的。
对于离散序列x=sin(n*w)来说,只有当2*pi/w是一个有理数时,也就是说当w是pi的倍数时,此离散序列才是周期的。
所以在本实验中x1=1.5*sin(2*pi*0.1*n)的周期是10,而x2=sin(0.9*n)是非周期的。
因为0.9不是pi的倍数。
2、离散复指数序列性质:对于离散复指数函数x=a*exp(z*n),只有当z是纯虚数,且纯虚数的系数是pi的倍数时,才是周期的。
其它情况下均不是。
这个性质由本次实验中的五个函数的图像可以被证明。