2015-2016下期数字信号处理实验指导书1实验一典型离散信号的生成及运算一、实验目的:1)熟悉MATLAB环境。2)理解离散时间信号。3)掌握几个典型离散信号类型及其运算。4)学会利用MATLAB表示和实现典型离散信号类型及其运算。二、实验原理:广义讲,信号可以分为模拟和离散信号【1】:一个模拟信号:)(txa,t可以代表任何物理量,现假定t代表时间,连续的。一个离散信号:)(nx,n是整数值,现假定n代表时间上离散的时刻。因此nx称为离散时间信号,是一个数值的序列。在MATLAB中,只需要两一个行向量来表示nx这个有限长序列:例如:图1命令窗口(CommandWindow)图2工作空间(WorkSpace)注意,要准确的表示一个离散信号,还需要另外一个向量表示n(样本位置信息),但是一般来说,当序列从位置n=1开始时(MATLAB中数组下标从1开始而不是从0开始),只用x向量表示该信号。下面说明几种典型离散信号类型和运算,及其MATLAB的表示:1、单位抽样序列,0,0,1,0,0,0,00,1)(nnn又称为单位脉冲序列/单位样本序列,其特点是在n=0时取值为1,其它取值为0。MATLAB中,使用函数zeros(1,N)可以产生一个N个零的行向量。然后对其中n=0这个位置进2015-2016下期数字信号处理实验指导书2行单独赋值为1即可。如:05101520253035404500.10.20.30.40.50.60.70.80.91图3没有明确样本的位置信息及其stem图-20-15-10-50510152000.10.20.30.40.50.60.70.80.91图4明确样本的位置信息及其stem图这里还有另外一种便利的表示方法——利用逻辑关系式表示方法:2015-2016下期数字信号处理实验指导书3-15-10-505101500.10.20.30.40.50.60.70.80.91图5使用逻辑关系式表示及其stem图2、单位阶跃序列,1,1,1,0,0,0,00,1)(nnnuMATLAB中,使用函数ones(1,N)可以产生一个N个1的行向量。下面通过N个0序列合并上N+1个1序列产生单位阶跃序列。注意1和0的样本位置。-8-6-4-20246800.10.20.30.40.50.60.70.80.91图6单位阶跃序列表示及其stem图请同学们思考,如果利用逻辑关系式,程序又该怎么写?3、实值指数序列nanx)(MATLAB中,使用运算符“.^”实现实指数序列。2015-2016下期数字信号处理实验指导书4-8-6-4-202468050100150200250300图7单位阶跃序列表示及其stem图请同学们思考:1)当a=1时是什么序列?2)图7横坐标为0时,纵坐标是多少?3)试画出a=-0.5、a=3时的指数序列图,判断收敛和发散。4、正弦序列)2sin()(sfnTAnx注意:是初始相位,正弦函数与余弦函数仅初相位不同。1)模拟正弦信号)2sin()(fttxt是时间上的自变量,连续变化从单位圆来看,f=1时,旋转一圈表示信号变化一个周期,那么f可以用来描述变化快慢即模拟频率,表示每秒信号旋转的圈数(即每秒可以变化f次/(圈))。单位Hz,1/s。2)从单位圆的角度变化来看,旋转一圈对应的角度变化范围是2,旋转f圈则角度变化范围是f2,所以用角频率f2描述变化快慢。单位rad/s,每秒经过多少弧度。所以,模拟正弦信号)sin()2sin()(tfttxt还是时间上的自变量,连续变化3)数字正弦信号是从模拟正弦信号采样而来。所以讲数字频率就离不开采样周期Ts(采样频率Fs=1/Ts)。在单位圆上以N点等间隔采样(点与点之间经过周期Ts这么长时间),那么相邻两个采样点之间的弧度值ssfTT20,表示数字角频率也称数字频率,它是一个相对频率,仅一个称呼,又称归一化数字角频率。此时自变量t=n*Ts=n/Fs了,离散值。所以,数字正弦信号)/2sin()sin()2sin()(0ssFfnnnfTnxN是数字周期,经过2需多少个点,即一个周期内有N个点,单位1,sssTTfFfT222N0。一般地,表示正弦信号,2015-2016下期数字信号处理实验指导书5需要确定幅值A,初始相位,频率f或0,确定采样点数N及采样频率Fs,则样本位置序列t=n*Ts=[0:N-1]*Ts,最后利用公式)2sin()(nfTAnxs得到正弦序列。如产生一个频率为50Hz,幅值为2,初始相位为2的正弦信号:00.010.020.030.040.050.060.070.080.090.1-2-1.5-1-0.500.511.52图8正弦序列表示及其stem图注意:1)采样频率Fs取值一定要满足奈奎斯特定理。2)采样频率和信号频率的比值:Fs/f=T/Ts,也就是一个信号周期内有多少个采样周期,即数字周期,也就确定了一个信号周期的采样点数。(上例是20)。3)总采样点数N和数字周期的区别。(上例是100)4)绘图时,注意样本位置序列的选取。5、复正弦序列jwnenx)(设)(0jz,那么复指数函数定义为:)sin(cos)(00)(00tjtAeeAeAetxttjttj欧拉公式复指数序列可以表示任意序列当0时,复正弦序列:njwenx0)(如产生一个频率为50Hz的复正弦信号,绘出它的实部,虚部,模,相角:clear;clc;Fs=1000;N=100;f=50;Ts=1/Fs;t=[0:N-1]*Ts;2015-2016下期数字信号处理实验指导书6x=cos(2*pi*f*t)+j*sin(2*pi*f*t);x_real=real(x);x_imag=imag(x);x_abs=abs(x);x_angle=angle(x);subplot(2,2,1),stem(t,x_real,'filled'),title('实部'),xlabel('t');subplot(2,2,3),stem(t,x_imag,'filled'),title('虚部');xlabel('t');subplot(2,2,2),stem(t,x_abs,'filled'),title('模');xlabel('t');subplot(2,2,4),stem(t,x_angle,'filled'),title('相角');xlabel('t');00.050.1-1-0.500.51实部t00.050.1-1-0.500.51虚部t00.050.100.51模t00.050.1-4-2024相角t图9复正弦序列表示及其stem图6、随机序列MATLAB中,有两种类型的(伪)随机序列:1)rand(1,N)2015-2016下期数字信号处理实验指导书7图10rand函数2)randn(1,N),产生均值为0,方差为1的高斯型随机序列。利用这两个函数的变换可以产生其他随机序列。7、基本运算1)信号加使用“+”符号来实现:x(n)=x1(n)+x2(n);x1(n)和x2(n)的长度必须相同,而且样本位置也要相同;否则必须对他们进行扩大或延长。2)信号乘样本对样本的相乘,或称点乘,用“.*”符号来实现:x(n)=x1(n).*x2(n);也需要x1(n)和x2(n)的长度必须相同。3)幅度变化或称加权,每个样本乘以常数,用“*”来实现:y(n)=a*x(n)。4)移位每个样本都向同一个方向移动一个量m,y(n)=x(n-m)5)翻褶每个样本以n=0为中心反转得到一个反转序列,样本值用fliplr(x)实现,样本位置通过-fliplr(n)来实现。6)累加knnxny1)()(y(1)=x(1);y(2)=x(1)+x(2);fori=1:3y=sum(x(1:i));end三、实验内容及要求:1、产生随机序列,分别实现序列的加、乘运算,使用stem绘图,显示原始序列,及运算结果序列;2、生成正弦序列信号:)31.0cos(3)(nnx,使用stem绘图,显示原始序列,及运算结果序列;3、生成单位阶跃序列,分别实现翻褶运算和累加运算,使用stem绘图,显示原始序列,及运算结果序列;四、实验结果:内容提要实验结果随机序列加运算1程序;2绘图结果;随机序列乘运算1程序;2绘图结果;正弦序列信号1程序;2绘图结果;2015-2016下期数字信号处理实验指导书8单位阶跃序列翻褶1程序;2绘图结果;单位阶跃序列累加1程序;2绘图结果;2015-2016下期数字信号处理实验指导书9