9 离散信号和系统分析的MATLAB 实现 1
1 利用MATLAB 产生离散信号 用MATLAB 表示一离散序列x[k]时,可用两个向量来表示
其中一个向量表示自变量k 的取值范围,另一个向量表示序列x[k]的值
例如序列x[k]={2,1,1,-1,3,0,2}可用 MATLAB 表示为 K=-2:4;x=[2,1,1,-1,3,0,2] 可用stem(k,f)画出序列波形
当序列是从 k=0 开始时,可以只用一个向量x 来表示序列
由于计算机内寸的限制,MATLAB 无法表示一个无穷长的序列
例1-38 利用MATLAB 计算单位脉冲序44]2[kk在范围内各点的取值
解: %progran 1_1 产生单位脉冲序列 Ks=-4;ke=4;n=2; K=[ks:ke]; X=[(k-n)==0]; Stem(k,x):xlabel(‘k’); 程序产生的序列波形如图 1-49 所示
例1-39 利用MATLAB 画出信号 X[k]=10sin(0
02 k )+n[k], 1000 k 的波形
其中 n[k]表示为均值为 0 方差为 1 的Gauss 分布随机信号
解: 2 MALAB 提供了两个产生(伪)随机序列的函数
Rand(1,N)产生1 行 N 列的[0,1]均匀分布随机数
Randn(1,N)产生1 行 N 列均值为0 方差为 1 的Gau ss 分布随机数
%program 1_2 产生受噪声干扰的正弦信号 N=100;k=0:N; X=10*sin(0
02*pi*k)+randn(1,N+1); Plot(k,x ); Xlabel(‘k’); Ylabel(‘x [k]’); 程序产生序列如图 1-50 所示
2 离散卷积的计算 离散卷积是数字信号处理中的一个基本运算,MTLAB 提供的计算两个