对信号求微分
一般借助于差分信号,差分信号是两点之间的差,用两点之间的差除以这两点之间的自变量大小就得到微分。
对信号求积分
求解积分有多个函数可用
MATLAB函数 | 求解思路 | 优缺点 |
---|---|---|
q u a d ( f u n , A , B ) quad(fun,A,B) quad(fun,A,B) | Simpson法 | 精度最高、较常用 |
q u a d l ( f u n , A , B ) quadl(fun,A,B) quadl(fun,A,B) | Lobatto法 | 精度高、最常用 |
t r a p z ( Y ) trapz(Y) trapz(Y) | 梯形法求定积分 | 速度快、精度差 |
c u m t r a p z ( Y ) cumtrapz(Y) cumtrapz(Y) | 梯形法求曲线积分 | 速度快、精度差 |
s u m ( Y ) sum(Y) sum(Y) | 等宽矩形法求定积分 | 速度快、精度很差 |
c u m s u m ( Y ) cumsum(Y) cumsum(Y) | 等宽矩形法求曲线积分 | 速度快、精度很差 |
%求一个三角信号的微分与积分
clc;clear;close all; %清除命令行窗口、变量、图形窗口
dt=0.01; %定义时间间隔为0.01
t =-3:dt:3; %定义时间变量
Xt=tripuls(t-1,2); %生成Xt信号
t1=t(2:end); %定义差分信号的自变量范围
X1=diff(Xt)/dt; %计算Xt的差分,再用差分除以时间间隔得到微分
X2=cumtrapz(t,Xt); %计算Xt的积分。
subplot(3,1,1);plot(t,Xt); %绘制初始信号
ylim([-0.2,1.2]); %限制Y轴范围
xlabel('t');title('初始信号'); %X轴标签,Figure标题
subplot(3,1,2);plot(t1,X1); %绘制微分信号
ylim([-1.2,1.2]); %限制Y轴范围
xlabel('t');title('微分信号'); %X轴标签,Figure标题
subplot(3,1,3);plot(t,X2); %绘制积分信号
ylim([-0.2,1.2]); %限制Y轴范围
xlabel('t');title('积分信号'); %X轴标签,Figure标题