MATLAB在信号与系统中的应用

发表时间:2020/10/20   来源:《科学与技术》2020年6月17期   作者:冒珏岑
[导读] MATLAB在信号与系统中的应用(信号产生)
        冒珏岑
        南京师范大学电气与自动化工程学院  江苏省南京市   210023
一,研究要求
         MATLAB在信号与系统中的应用(信号产生)

二,模块Matlab程序设计
        2.1基本信号的产生
        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*exp(-1*t);
        plot(t,x)
        
        3.连续正弦信号的产生
        利用MATLAB提供的函数cos和sin可产生正弦和余弦信号。产生一个幅度为2,频率为4Hz,相位为p/6的正弦信号的MATLAB程序如下:
        f0=4;
        w0=2*pi*f0;
        t=0:0.001:1;
        x=2*sin(w0*t+pi/6);
        plot(t,x)
        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=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:0.001:2.5;
        w0=2*pi*f0;
        y=square(w0*t,50);
        plot(t,y);
        axis([0,2.5,-1.5,1.5]);
        6.连续抽样信号的产生
        可使用函数sinc(x)计算抽样信号,产生信号的MATLAB程序如下:
        t=-10:1/500:10;
        x=sinc(t/pi);
        plot(t,x);
        7.单位脉冲序列的产生
        函数zeros(1,n)可以生成单位脉冲序列。产生单位脉冲序列的程序如下:
        k=-4:20;
        x=[zeros(1,7),1,zeros(1,17)];
        stem(k,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*sin(omega*k+pi/5);
        stem(k,x);
        11.离散周期矩形波序列的产生
        产生幅度为1、基频rad、占空比为50%的周期方波的MATLAB程序如下:
        omega=pi/4;
        k=-10:10;
        x=square(omega*k,50);
        stem(k,x);
        12.白噪声序列的产生
        白噪声序列在信号处理中时常用的序列。函数rand可产生在[0,1]区间均匀分布的白噪声序列,函数rand可产生均值为0,方差为1的高斯分布白噪声。程序如下:
        N=20;
        k=0:N-1;
        x=rand(1,N)
        stem(k,x);
三,仿真平台运行结果
3.1基本信号的产生运行结果(以连续周期矩形波信号、连续抽样信号的产生、离散周期矩形波序列、白噪声序列为例)
        1.连续周期矩形波信号的产生
函数square(w0*t)产生基本频率为w0(周期T=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程序运行结果如图1:


        2.连续抽样信号的产生
        可使用函数sinc(x)计算抽样信号,产生信号的MATLAB程序运行结果如图2:
        3.离散周期矩形波序列的产生
        产生幅度为1、基频rad、占空比为50%的周期方波的MATLAB程序运行结果如图3:


        
        
        
        4.白噪声序列的产生
        白噪声序列在信号处理中时常用的序列。函数rand可产生在[0,1]区间均匀分布的白噪声序列,函数rand可产生均值为0,方差为1的高斯分布白噪声。程序运行结果如图27:
        
参考文献
(1)《MATLAB信号与系统——基本信号表示》—电力MATLAB
https://mp.weixin.qq.com/ssrc=11&timestamp=1575863707&ver=2023&signature=LBGd0r2od2WZM2Awr3gLbmf51sR1laof7CBDj-qGepshvqq67A2Rqtc9Z*8C4YN08ltTzu05iDrbN69QcqM3nCYvbpVQK-U3PxwP8FGDC9iVVIQ67FeTb1KzNjcoMT1m&new=1
(2)《MATLAB教程及实训》—曹弋(第3版机械工业出版社.2018)
(3)《信号与系统上册》—郑君里、应启珩、杨君理(第三版高等教育出版社.2018)
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: