实验一 常见离散信号的MATLAB产生和图形显示
实验一 常见离散信号的MATLAB产生和图形显示
一、实验目的
1. 学会用MATLAB在时域中产生一些基本的离散时间信号。 2. 了解信号的各种运算。
二、实验原理
(一)、序列的产生
由于MATLAB数值计算的特点,用它来分析离散时间信号与系统是很方便的。离散信号是数字信号处理的最基础的内容,由于内存有限,MATLAB无法表示无限序列。在MATLAB中,可以用一个列向量来表示一个有限长度的序列,但是这种表示方法没有包含采样位置的信息,要完全表示x(n),要用x 和n 两个向量,例如
x(n)={2,1,0,2,3,-1,2,3} ↑ 在MATLAB中表示为
n=[-4,-3,-2,-1,0,1,2,3]; x=[2,1,0,2,3,-1,2,3];
当序列从n=0开始,则不需要采样位置信息,这时可以只用x 来表示
1. 单位抽样序列
?(n)??
?0?1n?0n?0
在MATLAB中可以利用zeros()函数实现。
x?zeros(1,N);x(1)?1;
如果?(n)在时间轴上延迟了k个单位,得到?(n?k)即:
?(n?k)??
?0?1n?kn?0
2.单位阶跃序列
2
实验一 常见离散信号的MATLAB产生和图形显示
n?0?1 u(n)?
n?0?0在MATLAB中可以利用ones()函数实现。
x?ones(1,N)
3.正弦序列
x(n)?Asin(2?fn/Fs??)
在MATLAB中
n?0:N?1x?A*sin(2*pi*f*n/Fs?fai)
4.复正弦序列
x(n)?ej?n
在MATLAB中
n?0:N?1x?exp(j*w*n)
5.指数序列
x(n)?a
n在MATLAB中
n?0:N?1x?a.^n
(二)、简单运算 1.信号加
x(n)?x1(n)?x2(n) 在MATLAB中
x=x1+x2
注意:x1和x2应该具有相同的长度,位置对应,才能相加。否则,需要先通过Zeros函数左右补零后再相加。
2.信号延迟
3
实验一 常见离散信号的MATLAB产生和图形显示
给定离散信号x(n),若信号y(n)为 y(n)= x(n-k)
那么y(n)就是信号x(n)在时间轴上右移k个采样周期后得到的新的序列。 在MATLAB中
y(n)= x(n-k) 3.信号乘
x(n)?x1(n)?x2(n)
在MATLAB中
x?x1.?x2
这是信号的点乘运算,所以同样需要信号加需要的x1和x2二者的长度要相等这一前提条件。
4.信号变化幅度
y(n)= k×x(n) 在MATLAB中
y?k?x
5.信号翻转
y(n)= x(-n)
在MATLAB中
y=fliplr(x)
三、实验内容与步骤
1. 产生一个单位样本序列x1(n),起点为ns= -10, 终点为nf=20, 在n0=0时有一单位脉冲并显示它。修改程序,以产生带有延时11个样本的延迟单位样本序列x2(n)= x1(n-11),并显示它。
2.已知 c= -(1/12)+(pi/6)*i;产生一个复数值的指数序列x2(n)=2*exp(c*n),起点为ns= 0, 终点为nf=40;并显示它。
3.产生一个正弦序列x3(n) =1.5*cos(2*pi*f*n); 起点为ns= 0, 终点为nf=40;并显示它。
4.复杂信号的产生:复杂的信号可以通过在简单信号上执行基本的运算来产生 试产生一个振幅调制信号
y(n)?(1?m?cos(2?fLn))?cos(2?fHn)?(1?0.4?cos(2??0.01n))?cos(2??0.1n)
4
实验一 常见离散信号的MATLAB产生和图形显示
n=0:100
四、实验仪器设备
计算机,MATLAB软件
五、实验注意事项
预先阅读附录(MATLAB基础介绍);
六、思考题
1. 讨论复指数序列x2(n)的哪个参数控制该序列的增长或衰减率?哪个参数控制该序列的振幅?
2. 讨论正弦序列x3(n)的哪个参数控制该序列的相位?哪个参数控制该序列的振幅?
3. 讨论算术运算符*和. *之间的区别是什么?
5
实验二 离散时间系统的时域分析
实验二 离散时间系统的时域分析
一、实验目的
1. 运用MATLAB仿真一些简单的离散时间系统,并研究它们的时域特性。 2. 运用MATLAB中的卷积运算计算系统的输出序列,加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。
二、实验原理
离散时间系统其输入、输出关系可用以下差分方程描述:
N?k?0dky[n?k]?M?k?0pkx[n?k]
当输入信号为冲激信号时,系统的输出记为系统单位冲激响应
?[n]?h[n],则系统响应为如下的卷积计算式:
?y[n]?x[n]?h[n]??x[m]h[n?m]
m??? 当h[n]是有限长度的(n:[0,M])时,称系统为FIR系统;反之,称系统为IIR系统。在MATLAB中,可以用函数y=Filter(p,d,x) 求解差分方程,也可以用函数 y=Conv(x,h)计算卷积。 例2.1
clf; n=0:40; a=1;b=2; x1= 0.1*n; x2=sin(2*pi*n); x=a*x1+b*x2; num=[1, 0.5,3];
6