实验2 常见数字信号的产生与显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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所示的序列。