Matlab2019b中的信号实时显示(dsp.TimeScope)详细配置

从2016b版开始新增添加的dsp.TimeScope工具对于信号的实时处理非常有帮助,和操作示波器一样,可以实时观察处理信号的变化。

注意:本程序与2016b版本以前不兼容

但是有一点弊端,会影响处理的速度,且采样如果点数多需要深度缓冲(Buffer较大),需要根据电脑硬件配置来适当的进行调整。

我在使用的时候对信号进行了帧读取并放入循环移位,在实际进行运算时第一遍可以开启看下效果,基本了解以后可以关闭,将处理数据存入数组中,最后再使用Plot函数将整个信号绘制,可以增快处理速度。


scope = dsp.TimeScope( ...
'SampleRate',1000,...%采样率
'NumInputPorts',2,...%信号输入的端口
'Name',"Richard Yang",...
'BufferLength',1000*20*20, ...%数据缓冲长度,当数据溢出时,不能保存数据
'AxesScaling',"OnceAtStop",...%轴缩放
'TimeDisplayOffset',0,...%显示偏移
'TimeSpan',0.1,...%时间跨度
'TimeSpanSource','Property',...
'TimeSpanOverrunAction',"Scroll",...%当数据超过显示区域时的操作是刷新Warp还是平移Scroll
'ShowLegend',true,...%是否显示通道标签
'Title','2020/3/11',....%标题
'ReduceUpdates',false,...%是否延时更新数据,当为true时速度加快
'LayoutDimensions',[2,1],...%控制显示的窗口个数
'ActiveDisplay',2,...
'PlotType','Line',...%绘图形式
'ShowGrid',true,...%是否显示栅格
'ChannelNames',cellstr(["CH1","CH2"]),...%每个通道的名称
'TimeUnits','Metric',...%显示的时间单位(毫秒)
'TimeAxisLabels','All',...%是否显示轴标签
'YLabel',"Amp",...%Y轴名称
'YLimits',[-1,1],...
'ActiveDisplay',1,...%单独设置每个窗口的上述设定
'YLabel',"Amppp");%Y轴显示范围%Y轴名称

% scope = dsp.TimeScope('SampleRate',sine1.SampleRate,'TimeSpan',0.1,'NumInputPorts',2,'ShowLegend',true);

sine1 = dsp.SineWave('Frequency',100,'SampleRate',1000);
sine2 = dsp.SineWave('Frequency',100,'SampleRate',1000);
sine1.SamplesPerFrame = 10;
sine2.SamplesPerFrame = 10;
sine2.PhaseOffset=[pi/2];

for ii = 1:10
     x = sine1();
     y = sine2();
     scope(y,x);%scope功能建议放入循环按帧来绘图速度较快
end
release(scope)

Copyright © 2020 by RichardYang. All rights reserved.
仅供参考,严禁转载,感谢。

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值