数字信号处理MATLAB仿真

2019-03-22 20:10

实验一 数字信号处理的Matlab仿真

一、实验目的

1、掌握连续信号及其MATLAB实现方法;

2、掌握离散信号及其MATLAB实现方法

3、掌握离散信号的基本运算方法,以及MATLAB实现 4、了解离散傅里叶变换的MATLAB实现 5、了解IIR数字滤波器设计 6、了解FIR数字滤波器设计1

二、实验设备

计算机,Matlab软件 三、实验内容

(一)、 连续信号及其MATLAB实现 1、 单位冲击信号

??(t)?0,????(t)dt?1,?????t?0???0

例1.1:t=1/A=50时,单位脉冲序列的MATLAB实现程序如下: clear all;

t1=-0.5:0.001:0; A=50; A1=1/A;

n1=length(t1); u1=zeros(1,n1); t2=0:0.001:A1; t0=0;

u2=A*stepfun(t2,t0); t3=A1:0.001:1; n3=length(t3); u3=zeros(1,n3); t=[t1 t2 t3]; u=[u1 u2 u3]; plot(t,u)

axis([-0.5 1 0 A+2])

2、 任意函数

f(t)??????f(?)?(t??)d?

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

f(n)?0.4?(n?2)?0.8?(n?1)?1.2?(n)?1.5?(n?1)?1.0?(n?2)?0.7?(n?3)

clear all; t=-2:1:3; N=length(t); x=zeros(1,N); x(1)=0.4; x(2)=0.8 x(3)=1.2; x(4)=1.5; x(5)=1.0; x(6)=0.7; stem(t,x);

axis([-2.2 3.2 0 1.7])

3、 单位阶跃函数

??1,u(t)????0,t?0t?0

例1.3:用MATLAB实现单位阶跃函数

clear all;

t=-0.5:0.001:1; t0=0;

u=stepfun(t,t0); plot(t,u)

axis([-0.5 1 -0.2 1.2])

4、 斜坡函数

g(t)?B(t?t0)

例1.4:用MATLAB实现g(t)=3(t-1) clear all; t=0:0.01:3; B=3; t0=1;

u=stepfun(t,t0); n=length(t); for i=1:n

u(i)=B*u(i)*(t(i)-t0); end plot(t,u)

axis([-0.2 3.1 -0.2 6.2])

5、 实指数函数

f(t)?Aeat

例1.5:用MATLAB实现f(t)?3eclear all; t=0:0.001:3; A=3; a=0.5;

u=A*exp(a*t); plot(t,u)

axis([-0.2 3.1 -0.2 14])

6、 正弦函数

0.5t

f(t)?Acos(2?t??) T0例1.6:用MATLAB实现正弦函数f(t)=3cos(10πt+1) clear all;

t=-0.5:0.001:1; A=3; f=5; fai=1;

u=A*sin(2*pi*f*t+fai); plot(t,u)

axis([-0.5 1 -3.2 3.2])

(二)、离散信号及其MATLAB实现 1、 单位冲激序列

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

例2.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.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

例2.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)

例2.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??)

例2.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

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

7、 复指数序列

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

例2.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的高斯随机序列,即白噪声序列

例2.8:用MATLAB产生点数为32的均匀分布的随机序列与高斯随机序列 clear all; N=32;


数字信号处理MATLAB仿真.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:外科护理学普外科复习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: