画波形图时采样如何做?

弱水垂钓 2012-06-07 04:21:41
现在在弄画波形的一个项目
需要可以随便画一个时间段的波形
我该如何取样?
...全文
430 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
弱水垂钓 2012-06-11
  • 打赏
  • 举报
回复
各位帮看看呀
弱水垂钓 2012-06-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

拟显示该时间段全程的波形?直觉上的设计思路是这样的。

架构是主线程负责绘图显示,副线程负责采集。

主要参数需要进行预算。如果是肯定显示波形跟不上采集速度。那么需要抽样显示,如果想简单,就先根据软件处理速度和采集速度确定个固定的比例。预先估算好显示的最长时间段,以及抽样比例。

另外DC中的数据跨度范围根据显示区存在的数据量可以调整,比如横向初始设为300个显示点,每次超过现有显示……
[/Quote]
你所说的还不是我想要的,到底是放在大的DC中画完了再缩放到小的DC中?还是怎么做
类似音频处理软件显示波形那样
弱水垂钓 2012-06-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

http://download.csdn.net/detail/kiaking2010/2218385
[/Quote]
这个我之前看过,我想做的是一个静态的把一个音频文件任意时间段的波形显示出来
而不是像他这样只在一个dc上把有限的波形画出来
就像一些音频处理软件一样
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/kiaking2010/2218385
诶呦 2012-06-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
可能我表达不清我要问的是:
在固定大小的DC上画任意时间段的波形
我该如何取样,也就是一个方案吧
我现在想的是通过样本间隔来找样本,可是当我画一个时间比较长的波形时,我该如何让波形更贴近波形
多取点缩放?
[/Quote]
采样没什么问题,定时去采就行了。
至于画图,数据点越多波形就越真实,但是实际情况是并不一定所有数据都得画,因为还有效率等问题。
可以先试一下,把点全都画上,这样问题一下就出来了,然后找一个比较折中的方案就行。
fronz 2012-06-07
  • 打赏
  • 举报
回复
拟显示该时间段全程的波形?直觉上的设计思路是这样的。

架构是主线程负责绘图显示,副线程负责采集。

主要参数需要进行预算。如果是肯定显示波形跟不上采集速度。那么需要抽样显示,如果想简单,就先根据软件处理速度和采集速度确定个固定的比例。预先估算好显示的最长时间段,以及抽样比例。

另外DC中的数据跨度范围根据显示区存在的数据量可以调整,比如横向初始设为300个显示点,每次超过现有显示跨度,就将横向范围增大100,即横轴坐标范围增大100。当然这样做需要根据横向跨度重新计算每个数据点所在坐标。这样做的好处是,波形基本保持在屏幕中间,且在初始阶段显示区间也不是太窄,当然这个横向范围有极限,就以上面的预算给出的区间为准,过时需要重新画了。
弱水垂钓 2012-06-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
一般来说:取样和显示是分开进行的。
一个线程负责采样,尽可能快的采集需要的数据,并用一个数组保存结果。
一个线程负责显示,根据缩放比例显示数据波形。并根据比例选取数据数组内的值。

不管显示的比例是多少。数据采集都不能改变频率。

也就是说,假设数据采集频率为1KHz。则始终以此速度采集保存。
当显示比例为100。则显示数据中的第0个、第100个、第200个、第300个……数据作为显……
[/Quote]
按你说的,如果我要以低显示比例显示一个长时间段的数据,先画在一个大的内存dc中,再进行缩放?
baoyz 2012-06-07
  • 打赏
  • 举报
回复
一般来说:取样和显示是分开进行的。
一个线程负责采样,尽可能快的采集需要的数据,并用一个数组保存结果。
一个线程负责显示,根据缩放比例显示数据波形。并根据比例选取数据数组内的值。

不管显示的比例是多少。数据采集都不能改变频率。

也就是说,假设数据采集频率为1KHz。则始终以此速度采集保存。
当显示比例为100。则显示数据中的第0个、第100个、第200个、第300个……数据作为显示点数据。
当显示比例为50。 则显示数据中的第0个、第50个、第100个、第150个……数据作为显示点数据。
当显示比例为10。 则显示数据中的第0个、第10个、第20个、第30个……数据作为显示点数据。
当显示比例为1。 则显示数据中的第0个、第1个、第2个、第3个……数据作为显示点数据。

可见显示比例越小,则显示的波形越贴近真实波形。



弱水垂钓 2012-06-07
  • 打赏
  • 举报
回复
可能我表达不清我要问的是:
在固定大小的DC上画任意时间段的波形
我该如何取样,也就是一个方案吧
我现在想的是通过样本间隔来找样本,可是当我画一个时间比较长的波形时,我该如何让波形更贴近波形
多取点缩放?
诶呦 2012-06-07
  • 打赏
  • 举报
回复
按时间依次存储数据,画波形时找到对应的时间点就行了

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧