1、实验四:一、实验目的学习使用MATLAB产生基本信号、绘制信号波形、实现信号的基本运算,为信号分析和系统分析奠定基础。二、相关知识点1连续信号的产生2离散信号的产生及基本运算三、实验原理、方法和手段MATLAB提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期矩形波信号等。这些基本信号是信号处理的基础。(1)阶跃信号 产生阶跃信号的MATLAB程序如下: t= -2: 0.02: 6; x=(t=0); plot(t,x); axis(-2,6,0,1.2);(2)指数信号产生随时间衰减的指数信号的MATLAB程序如下:t = 0: 0.001: 5;x =
2、2*exp(-1*t);plot(t,x);(3)正弦信号利用MATLAB提供的函数cos和sin可产生正弦和余弦信号。产生一个幅度为2, 频率为4Hz, 相位为/6的正弦信号的MATLAB程序如下:f0=4;w0=2*pi*f0; 1;x = 2*sin(w0*t+ pi/6); (4)矩形脉冲信号函数rectpulse(t,w)可产生高度为1、宽度为w、关于t=0对称的矩形脉冲信号。 产生高度为1、宽度为4、延时2秒的矩形脉冲信号的MATLAB程序如下:t=-2:x=rectpuls(t-2,4);(5)抽样信号 可使用函数sinc(x)计算抽样信号 ,函数sinc(x)的定义为 ,产生的
3、MATLAB程序如下:t= -10:1/500:10;x=sinc(t/pi);2离散信号的产生(1)单位脉冲序列和单位阶跃序列 函数zeros(1,n) 可以生成单位脉冲序列,产生1行n列的由0组成的矩阵。产生单位脉冲序列的MATLAB程序如下:k= -4: 20;x=zeros(1,7),1,zeros(1,17);stem(k,x)函数ones(1,n) 可以生成单位阶跃序列,产生1行n列的由1组成的矩阵。产生单位阶跃序列的MATLAB程序如下:20;x=zeros(1,7),ones(1,18);(2)指数序列产生离散指数序列的MATLAB程序如下:k = -5:15;x = 0.3*
4、(1/2).k;stem(k,x);(3)正弦序列产生正弦序列的MATLAB程序如下:k=-10:omega=pi/3;x = 0.5*sin(omega*k+ pi/5);(4)白噪声序列 白噪声序列在信号处理中是常用的序列。函数rand可产生在0,1区间均匀分布的白噪声序列,函数randn可产生均值为0,方差为1的高斯分布白噪声。 N=20;k=0:N-1;x=rand (1,N) 3离散序列的基本运算 信号的运算是数字信号处理的重要内容。对输入信号按指定的算法进行运算以提取有用信息,而这些算法可以分解为若干基本运算。离散信号的基本运算主要包括:信号的加、乘、移位、翻转、卷积、相关等。这些
5、运算的MATLAB实现方法如下表:四、实验条件计算机一台,MATLAB软件。五、实验步骤及结果测试1利用MATLAB产生下列信号并作图。(1) ,并完成x(t+5),x(-t),x(3t)的波形。MATLAB程序:% x(t+5)clcx=sinc(t+5)/pi); 结果: MATLAB程序:% x(-t) clc t= -10: x=sinc(t/pi); y=fliplr(x); plot(t,y);结果:% % x(3t) x=sinc(3*t/pi);(2) x(t)=cos(100t)*cos(2000t) t= -0.1:0.0001:0.1; x=cos(100*t)+cos(
6、2000*t); title(x=cos(100*t)+cos(2000*t); x=cos(100*t).*cos(2000*t);x=cos(100*t)*cos(2000*t)(3)k=-14:x=zeros(1,9),ones(1,11),zeros(1,10);(4),绘出波形并计算其总能量k=-19:x=(0.9).k).*sin(0.25*pi*k)+cos(0.25*pi*k);E=sum(abs(x).2);fprintf(E=%2.16fn,E);已知序列:,计算离散序列的卷积和yk=xk*hk,并绘出其波形;k=-2:3;x=2,2,1,-1,4,2;2;h=2,-1,1;y=conv(x,h);5;stem(k,y)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1