冒珏岑
南京师范大学电气与自动化工程学院 江苏省南京市 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×tamp=1575863707&ver=2023&signature=LBGd0r2od2WZM2Awr3gLbmf51sR1laof7CBDj-qGepshvqq67A2Rqtc9Z*8C4YN08ltTzu05iDrbN69QcqM3nCYvbpVQK-U3PxwP8FGDC9iVVIQ67FeTb1KzNjcoMT1m&new=1
(2)《MATLAB教程及实训》—曹弋(第3版机械工业出版社.2018)
(3)《信号与系统上册》—郑君里、应启珩、杨君理(第三版高等教育出版社.2018)