数字信号处理实验指导书15级 下载本文

内容发布更新时间 : 2025/3/2 1:21:15星期一 下面是文章的全部内容请认真阅读。

数字信号处理实验指导书

实验一常见序列的产生及基本运算的MATLAB实现

一、实验目的

掌握离散信号的产生及基本运算的MATLAB实现方法。 二、实验原理

利用MATLAB编写程序实现常用离散信号的产生及其基本运算。 三、实验设备

电脑(windows xp 以上系统),MATLAB7.1以上版本软件。 四、骤与内容实验步骤 (一)、离散信号及其MATLAB实现 1、 单位冲激序列

?(n)????1,??0,n?0n?0

例1:用MATLAB产生64点的单位冲激序列 clear all; N=64;

x=zeros(1,N); x(1)=1; xn=0:N-1; stem(xn,x)

axis([-1 65 0 1.1])

2、 任意序列

f(n)?m?????f(m)?(n?m)

例2:用MATLAB画出如下表达式的脉冲序列

f(n)?8.0?(n)?3.4?(n?1)?1.8?(n)?5.6?(n?3)?2.9?(n?4)?0.7?(n?5)

clear all; N=8;

x=zeros(1,N); x(1)=8.0; x(2)=3.4 x(3)=1.8; x(4)=5.6; x(5)=2.9; x(6)=0.7; xn=0:N-1; stem(xn,x)

axis([-1 8 0 8.2])

3、 单位阶跃序列

?1,?u(n)????0,n?0n?0

例3:用MATLAB实现单位阶跃函数 clear all; N=32;

x=ones(1,N); xn=0:N-1; stem(xn,x)

axis([-1 32 0 1.1])

4、 斜坡序列

g(n)?B(n?n0)

例4:用MATLAB实现g(n)=3(n-4)点数为32的斜坡序列 clear all; N=32; k=4 B=3; t0=1;

x=[zeros(1,k) ones(1,N-k)]; for i=1:N

x(i)=B*x(i)*(i-k); end

xn=0:N-1; stem(xn,x)

axis([-1 32 0 90])

5、 正弦序列

x(n)?Asin(2?fn??)

例5:用MATLAB实现幅度A=3,频率f=100,初始相位Φ=1.2,点数为32的正弦信号 clear all; N=32; A=3; f=100; fai=1.2; xn=0:N-1;

x=A*sin(2*pi*f*(xn/N)+fai); stem(xn,x)

axis([-1 32 -3.2 3.2])

6、 实指数序列

x(n)?Aan

例6:用MATLAB实现x(n)?3e0.7,点数为32的实指数序列 clear all; N=32; A=3; a=0.7; xn=0:N-1; x=A*a.^xn; stem(xn,x)

7、 复指数序列

x(n)?Ae(a?j?)n,?n

例7:用MATLAB实现幅度A=3,a=0.7,角频率ω=314,点数为32的实指数序列

clear all; N=32; A=3; a=0.7; w=314; xn=0:N-1;

x=A*exp((a+j*w)*xn); stem(xn,x)

8、 随机序列

利用MATLAB产生两种随机信号:

rand(1,N)在区间上产生N点均匀分布的随机序列

randn(1,N)产生均值为0,方差为1的高斯随机序列,即白噪声序列 例8:用MATLAB产生点数为32的均匀分布的随机序列与高斯随机序列 clear all; N=32;

x_rand=rand(1,N); x_randn=randn(1,N); xn=0:N-1; figure(1);

stem(xn,x_rand) figure(2);

stem(xn,x_randn)

(二)离散信号的基本运算