1.使用中值法对信号进行微分处理

1.1 正弦信号的微分处理

%生成正弦波信号
Fs=500;%采样频率是500Hz
T=1;%时间是1秒
dt=1.0/Fs;%step等于 1/500
N=T/dt;%数组的个数为N
t=linspace(0, T, N);%生成一个数组[0, 0.002, 0.004, 0.006,...,0.998, 1.000]
y=10*sin(2*pi* 5 *t);%生成频率为5Hz,幅值为10,时间为1秒的正弦波
subplot(2, 1, 1);
plot(t, y);%给正弦波形信号做微分处理得到的是余弦波形
y1=y;
y1(1)=y(1);
for k=2:1:N-1y1(k)=(y(k+1) - y(k-1))/(2*dt);
end
y1(N)=y(N);
subplot(2, 1, 2);
plot(t, y1);

上图是正弦信号波形,下图是对其进行微分的波形

1.2 方波信号的微分处理

t=0:0.001:50;
f=square(t);
subplot(2, 1, 1);
plot(t, f);%画出以数组t为横坐标,数组f为纵坐标组成的点,并用线将这些点连起来
axis([-1,51, -2, 3]);%设置X坐标的显示范围为[-1,11],Y坐标的显示范围为[-1,3],注意只有写在plot函数之后才会生效%给方波形信号做微分处理
y=f;
dt=0.001;
y(1)=f(1);
for k=2:1:(50.0/0.001)y(k)=(f(k+1) - f(k-1))/(2*dt);
end
y(50.0/0.001)=f(50.0/0.001);
subplot(2, 1, 2);
plot(t, y);

1.3 锯齿波信号的微分处理

t=0:0.001:10;
f=sawtooth(2*pi* 1 *t + (pi/2));
subplot(2,1,1);
plot(t,f,'r','LineWidth',3);
grid on;
axis([-0.5,10.5, -1.5,1.5]);%给锯齿波形信号做微分处理
y=f;
dt=0.001;
y(1)=f(1);
for k=2:1:(10.0/0.001)y(k)=(f(k+1) - f(k-1))/(2*dt);
end
y(10.0/0.001)=f(10.0/0.001);
subplot(2, 1, 2);
plot(t, y);

1.4 三角波信号的微分处理

t=0:0.001:10;
f=sawtooth(2*pi* 1 *t + (pi/2), 1/2);
subplot(2, 1, 1);
plot(t,f,'r','LineWidth',3);
grid on;
axis([-0.5,10.5, -1.5,1.5]);%给三角波形信号做微分处理
y=f;
dt=0.001;
y(1)=f(1);
for k=2:1:(10.0/0.001)y(k)=(f(k+1) - f(k-1))/(2*dt);
end
y(10.0/0.001)=f(10.0/0.001);
subplot(2, 1, 2);
plot(t, y);

2.使用梯形法给信号做数字积分

2.1 三角波信号的积分处理

t=0:0.001:10;
f=sawtooth(2*pi* 1 *t + (pi/2), 1/2);
subplot(2, 1, 1);
plot(t,f,'r','LineWidth',3);
grid on;
axis([-0.5,10.5, -1.5,1.5]);%给三角波形信号做积分处理
y=f;
dt=0.001;
y(1)=0;
for k=2:1:(10.0/0.001)y(k)=y(k-1) + (dt*(f(k)+f(k-1)))/2;
end
subplot(2, 1, 2);
plot(t, y);

2.2 方波形信号的积分处理

t=0:0.001:50;
f=square(t);
subplot(2, 1, 1);
plot(t, f);%画出以数组t为横坐标,数组f为纵坐标组成的点,并用线将这些点连起来
axis([-1,51, -2, 3]);%设置X坐标的显示范围为[-1,11],Y坐标的显示范围为[-1,3],注意只有写在plot函数之后才会生效%给方波形信号做积分处理
y=f;
dt=0.001;
y(1)=0;
for k=2:1:(50.0/0.001)y(k)=y(k-1) + (dt*(f(k)+f(k-1)))/2;
end
subplot(2, 1, 2);
plot(t, y);

3. 给三角波信号先做微分处理,再做积分处理

t=0:0.001:10;
f=sawtooth(2*pi* 1 *t + (pi/2), 1/2);
subplot(3, 1, 1);
plot(t,f,'r');
grid on;%给三角波形信号做微分处理得到方波信号
y=f;
dt=0.001;
y(1)=f(1);
for k=2:1:(10.0/0.001)y(k)=(f(k+1) - f(k-1))/(2*dt);
end
y(10.0/0.001)=f(10.0/0.001);
subplot(3, 1, 2);
plot(t, y);%再给上面的方波做积分处理
y1=y;
dt=0.001;
y1(1)=0;
for k=2:1:(10.0/0.001)y1(k)=y1(k-1) + (dt*(y(k)+y(k-1)))/2;
end
subplot(3, 1, 3);
plot(t, y1);
axis([0,10, -1,1]);
grid on;


现在我们利用定时器,让三角波信号动起来,动态观察三角波信号的微分和积分。

关键代码如下:

global chushixiangwei
chushixiangwei=0;
global mytimer
mytimer=timer('Period',1,'ExecutionMode','fixedDelay');
mytimer.TimerFcn={@my_callback_fcn};function my_callback_fcn(hObject, eventdata, handles)%生成三角波信号t=0:0.001:10;global chushixiangweif=sawtooth(2*pi* 1 *t + (pi/2) + chushixiangwei, 1/2);chushixiangwei=chushixiangwei+0.5;subplot(3, 1, 1);plot(t,f,'r','LineWidth',3);grid on;%给三角波形信号做微分处理y=f;dt=0.001;y(1)=f(1);for k=2:1:(10.0/0.001)y(k)=(f(k+1) - f(k-1))/(2*dt);endy(10.0/0.001)=f(10.0/0.001);subplot(3, 1, 2);plot(t, y);%再做积分处理y1=y;dt=0.001;y1(1)=0;for k=2:1:(10.0/0.001)y1(k)=y1(k-1) + (dt*(y(k)+y(k-1)))/2;endsubplot(3, 1, 3);plot(t, y1);axis([0,10, -1,1]);grid on;function pushbutton1_Callback(hObject, eventdata, handles)%先要找到所有的定时器,让它们先停下来ts=timerfind; if length(ts)>0 stop(ts); end %然后开启定时器global mytimer;start(mytimer);function pushbutton2_Callback(hObject, eventdata, handles)ts=timerfind; if length(ts)>0 stop(ts); delete(ts); end 

matlab 实现信号的微分和积分相关推荐

  1. 学习matlab(六)——微分和积分

    积分和微分是微积分的重要内容,本章将对积分和微分的内容进行详细的介绍.积分包括单变量数值积分.双重积分和三重积分等.然后介绍了常微分方程的符号解和数值解.最后介绍了如何求函数的最小值和零点. 0.数值 ...

  2. 例2-22 正弦信号的微分运算和积分运算

    %2017/8/21日 星期一 %工程北629 %功能:数字信号 微分 积分 %思想:diff函数 cumsum函数或cumtrapz函数 %注意:这里直接使用t作为横坐标,没有使用nclear al ...

  3. matlab 微分命令 求导,Matlab微分和积分

    第六讲 Matlab 微分和积分 理论介绍:微分.有限差分.积分.离散求和 软件求解:函数及常见注意事项 一.一元函数导数与微分 Matlab 由命令函数diff 来完成求导运算,调用格式为:diff ...

  4. matlab对信号积分,对信号求积分 - Simulink - MathWorks 中国

    说明 Integrator 模块输出其输入信号相对于时间的积分值. Simulink® 将 Integrator 模块作为具有一种状态的动态系统进行处理.模块动态由以下方程指定: {x˙(t)=u(t ...

  5. 海南大学matlab试卷,信号与系统

    spContent=你想知道现代通信背后的原理是什么吗? 你想知道现代控制背后的原理是什么吗? 你想知道信息处理背后的原理是什么吗? 请跟随北京交通大学国家级教学名师陈后金教授走进"信号与系 ...

  6. MATLAB信号处理——信号与系统的分析基础(3)

    1-4信号的基本运算 前面说过,序列是一种函数,函数我们就可以对它进行运算,而且很多运算法则都是一些基础的函数也有的. 1)序列相加与相乘 相加:在对应的点处把对应的序列值相加即可           ...

  7. 用matlab验证时域卷积,用MATLAB实现信号的时域卷积

    用MATLAB实现信号的时域卷积 用 MATLAB 实现信号的时域卷积摘要:利用抽样方法绘制连续信号和离散信号.编制函数计算连续时间信号,离散时间信号的卷积.关键字:MATLAB:离散卷积:连续卷积实 ...

  8. 【GPS仿真】基于matlab GPS信号捕获跟踪【含Matlab源码 2126期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[GPS仿真]基于matlab GPS信号捕获跟踪[含Matlab源码 2126期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...

  9. 基于MATLAB的信号调制研究与实现

    一.绪论 1.1 工具 PC MATLAB2016b 1.2 目的 掌握模拟系统的调制和解调原理. 学会MATLAB仿真软件在信号调制和解调中的应用. 掌握参数设置方法和性能分析. 通过实验中波形的变 ...

最新文章

  1. 使用模式创建一个面向服务的组件中间件
  2. 小调查:足足两周了,下周你上班否?
  3. c++中的void指针和const指针
  4. linux swap交换分区说明/管理
  5. get;get属性器
  6. c# Brush、Color、String相互转换
  7. 2019年7月全国程序员工资统计
  8. [深度学习-优化]dropout防止过拟合的理解
  9. java oo 封装_javaOO——封装、static、成员内部类
  10. CKEditor 4.14 发布,支持复制粘贴 LibreOffice 文档
  11. Java基础学习总结(150)——Caused by: java.net.SocketException 问题解决
  12. 【解决】速达服务启动失败,文件无效
  13. PCBA水洗流程和工艺原理
  14. win10 android ios,一机多用?Win10可运行安卓和iOS应用
  15. iphone6 因为充电线电压不稳,产生的错乱现象
  16. 技术资源:国内知名技术网站网址
  17. TrueCrypt 变废为宝-银行U盾
  18. (转载)你好,C++(6)2.3 C++兵器谱
  19. 程序员男友“嫌”我收入低,劝我转行互联网,我该听他的吗?
  20. mips linux 编译器,linux - MIPS的交叉编译器似乎无法创建有效的程序 - 堆栈内存溢出...

热门文章

  1. 153870-20-3,S-acetyl-PEG3-alcohol羟基可以反应进一步衍生化合物
  2. 基于阿里云API的图像文字识别
  3. android 浏览器隐藏地址,移动端隐藏手机浏览器的地址栏一下底部的菜单栏
  4. A: 牛牛的DRB迷宫I (dp)
  5. Qt 实现录音在线转文字
  6. 数据结构与算法分析 收获总结 第11章 图
  7. Threejs实现模拟管道液体流动
  8. Caused by: java.lang.RuntimeException: Font asset not found fonts/SYFZLTKHJW.TTF
  9. iOS企业应用分发平台搭建(uniapp打包)
  10. java 稀疏贝叶斯算法_稀疏贝叶斯学习(SparseBayesianLearning).PDF