实验2 常见数字信号的产生与显示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 常见数字信号的产生与显示

1.实验目的

复习MATLAB的使用方法和基本功能;熟悉单位冲激序列、单位阶跃序列、矩形序列和指数序列等常用序列的产生;掌握利用MATLAB画图函数显示信号波形的方法。

2.实例分析

2.1 常用离散序列的产生和图形显示

例1.1产生单位冲激序列

10 ()

00

n

n

n

δ

=

=⎨

在MATLAB中,函数zeros(1,N)产生一个N个零的行向量,利用它可以实现在有限区间上的单位冲激序列。按照之前学习过的MATLAB编程方法,将下列指令编辑到“exlimp.m”文件中。

% exe1imp.m 利用zeros(1,N)产生单位冲激序列

clear;%清除空间变量

clc;%清除屏幕

n=-49:49; %定义横坐标轴

x=zeros(1,99); %MATLAB中数组下标从1开始

x(50)=1;

close all;%关闭所有窗口

stem(n,x); %绘制离散序列数据

title('单位冲激序列');

运行“exe1imp.m”文件将产生如图1-1所示的序列。

例1.2产生单位阶跃序列

10 ()

00

n

u n

n

=⎨

<

在MATLAB中,函数ones(1,N)产生一个N个1的行向量,利用它可以实现在有限区间上的单位阶跃序列。同样,将下列指令编辑到“exe1step.m”文件中。

% exe1step.m 利用ones(1,N)产生单位阶跃序列

n=-49:49; %定义横坐标

x=ones(1,99); % MATLAB中数组下标从1开始

x(1:49)=0;

close all;

stem(n,x); %绘制离散序列数据

title('单位阶跃信号序列');

运行“exe1step.m”文件将产生如图1-2所示的序列。

图2-1 单位冲激序列

图2-2 单位阶跃序列

例1.3产生矩形序列

101 ()

N

n N

R n

else

≤≤-

=⎨

在MATLAB 中,符号函数sign(x)在x 大于0时其值为1;在x 等于0时其值为0;在x 小于0时其值为-1。利用它可以实现窗长度为N 的矩形序列。将下列指令编辑到 “exe1rectang.m ” 文件中。

% exe1rectang.m 利用sign(x)产生矩形序列

N=10;

n=0:30;%定义横坐标

x=sign(sign(N-1-n)+1); % MATLAB 中数组下标从1开始

n=-10:30;

x=[zeros(1,10),x];

close all ;

stem(n,x); %绘制离散序列数据

title('矩形序列');

运行“exe1rectang.m ” 文件将产生如图1-3所示的序列。

图2-3 矩形序列

例1.4 产生实指数序列 ()()

0n x n a u n n =≤<∞ 在MATLAB 中,可以用运算符 “.^”,即点乘方实现实指数序列。将下列指令编辑到 “exe1relexp.m ” 文件中。

作出实指数序列在a 分别等于 -0.5 和 -1.5时候的信号波形图

% exe1realexp.m 利用运算符 “.^” 产生实指数序列

N=10;

n=0:N-1;

a=0.5; b=2;

x=a.^n;

y=b.^n;

close all ;

subplot(1,2,1);

stem(n,x);

subplot(1,2,2);

stem(n,y);

运行“exe1realexp.m ” 文件将产生如图1-4所示的序列。

图2-4 实指数序列

例1.5 产生正弦和余弦序列

()sin()x n A n n ω=-∞≤<∞, ()cos()y n A n n ω=-∞≤<∞

将下列指令编辑到 “exe1sincos.m ” 文件中。

N=50;

A=1;

f=50;

fs=1000;

n=0:N-1;

x=A*sin(2*pi*f*n/fs);

y=A*cos(2*pi*f*n/fs);

close all ;

subplot(1,2,1);

stem(n,x);

subplot(1,2,2);

stem(n,y);

运行“exe1sincos.m ” 文件将产生如图1-5所示的序列。

图2-5 正弦和余弦序列

例1.6 产生复指数序列

()cos()sin()j n x n e n j n ωωω==+

复指数序列也称为复正弦序列,由余弦序列做实部,正弦序列做虚部构成。在MATLAB 中,函数exp(x)为指数函数,real(x)取x 的实部,imag(x)取x 的虚部,abs(x)求x 的模值,angel(x)求x 的幅角。将下列指令编辑到 “exe1exp.m ” 文件中。

N=50;

n=0:N-1;

x=exp(j*pi*n/6);

x_real=real(x);

x_imag=imag(x);

x_magnitute=abs(x);

x_phase=angle(x)*180/pi;

subplot(2,2,1);

stem(n,x_real);

xlabel('x-real');

subplot(2,2,2);

stem(n,x_imag);

xlabel('x-imag');

subplot(2,2,3);

stem(n,x_magnitute);

xlabel('x-magnitute');

subplot(2,2,4);

stem(n,x_phase);

xlabel('x-phase');

运行“exe1exp.m ” 文件将产生如图1-6所示的序列。

相关文档
最新文档