资源描述:
《【练习】matlab信号产生》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、-13--第二篇基于MATLAB下的软件实验目录实验一基本信号的产生………………………………………………………35实验二时域抽样与频域抽样…………………………………………………40实验三连续系统分析………………………………………………………………43-13--实验一基本信号的产生一、实验目的学习使用MATLAB产生基本信号、绘制信号波形、实现信号的基本运算,为信号分析和系统设计奠定基础。二、实验原理MATLAB提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期矩形波信号等。这些基本信
2、号是信号处理的基础。(一)基本信号的产生: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*exp(-1*t);plot(t,x);图二连续指数信号3.连续正弦信号的产生利用MATLAB提供的函数cos和sin可产生正弦和余弦信号。产生一个幅度为2,频率为4Hz,相位为p/6的正弦信号的MATL
3、AB程序如下:f0=4;w0=2*pi*f0;t=0:0.001:1;x=2*sin(w0*t+pi/6);plot(t,x);;图三连续正弦信号-13--4.连续矩形脉冲信号的产生函数rectpulse(t,w)可产生高度为1、宽度为w、关于t=0对称的矩形脉冲信号。产生高度为1、宽度为4、延时2秒的矩形脉冲信号的MATLAB程序如下:t=-2:0.02:6;x=rectpuls(t-2,4);plot(t,x);图四连续矩形脉冲信号5.连续周期矩形波信号的产生函数square(w0*t)产生基本频率为w0(周期T
4、=2p/w0)的周期矩形波信号。函数square(w0*t,DUTY)产生基本频率为w0(周期T=2p/w0)、占空比DUTY=t/T*100的周期矩形波。τ为一个周期中信号为正的时间长度。τ=T/2,DUTY=50,square(w0*t,50)等同于square(w0*t)。产生一个幅度为1,基频为2Hz,占空比为50%的周期方波的MATLAB程序如下:f0=2;图五连续周期矩形波信号t=0:.0001:2.5;w0=2*pi*f0;y=square(w0*t,50);%dutycycle=50%plot(t,y
5、);axis([0,2.5,-1.5,1.5]);6.连续抽样信号的产生可使用函数sinc(x)计算抽样信号,函数sinc(x)的定义为。产生信号的MATLAB程序如下:t=-10:1/500:10;x=sinc(t/pi);plot(t,x);图六连续抽样信号-13--7.单位脉冲序列的产生函数zeros(1,n)可以生成单位脉冲序列。函数zeros(1,n)产生1行n列的由0组成的矩阵。产生成单位脉冲序列的MATLAB程序如下:k=-4:20;x=[zeros(1,7),1,zeros(1,17)];stem(k
6、,x)图七单位脉冲序列8.单位阶跃序列的产生函数ones(1,n)可以生成单位阶跃序列。函数ones(1,n)产生1行n列的由1组成的矩阵。产生单位阶跃序列的MATLAB程序如下:k=-4:20;x=[zeros(1,7),ones(1,18)];图八单位阶跃序列stem(k,x)9.指数序列的产生产生离散序列的MATLAB程序如下:k=-5:15;x=0.3*(1/2).^k;stem(k,x);图九指数序列10.正弦序列的产生产生正弦序列的MATLAB程序如下:k=-10:10;omega=pi/3;x=0.5*
7、sin(omega*k+pi/5);stem(k,x);图十一正弦序列-13--10.离散周期矩形波序列的产生产生幅度为1、基频rad、占空比为50%的周期方波的MATLAB程序如下:omega=pi/4;k=-10:10;x=square(omega*k,50);stem(k,x);图十二离散周期矩形波序列12.白噪声序列的产生白噪声序列在信号处理中是常用的序列。函数rand可产生在[0,1]区间均匀分布的白噪声序列,函数randn可产生均值为0,方差为1的高斯分布白噪声。N=20;k=0:N-1;x=rand(1
8、,N)stem(k,x);图十三白噪声序列(二)序列的基本运算表一序列基本运算表-13--离散序列:(1)计算离散卷积和:(2)计算离散自相关函数:x=[1,2,1,1,0,-3];h=[1,-1,1];%计算离散卷积和y=conv(x,h);subplot(2,1,1);stem([0:length(y)-1],y);title('y[k]'