内容发布更新时间 : 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)
(二)离散信号的基本运算