需要可以随便画一个时间段的波形
我该如何取样?
11 个解决方案
#1
按时间依次存储数据,画波形时找到对应的时间点就行了
#2
可能我表达不清我要问的是:
在固定大小的DC上画任意时间段的波形
我该如何取样,也就是一个方案吧
我现在想的是通过样本间隔来找样本,可是当我画一个时间比较长的波形时,我该如何让波形更贴近波形
多取点缩放?
在固定大小的DC上画任意时间段的波形
我该如何取样,也就是一个方案吧
我现在想的是通过样本间隔来找样本,可是当我画一个时间比较长的波形时,我该如何让波形更贴近波形
多取点缩放?
#3
#4
一般来说:取样和显示是分开进行的。
一个线程负责采样,尽可能快的采集需要的数据,并用一个数组保存结果。
一个线程负责显示,根据缩放比例显示数据波形。并根据比例选取数据数组内的值。
不管显示的比例是多少。数据采集都不能改变频率。
也就是说,假设数据采集频率为1KHz。则始终以此速度采集保存。
当显示比例为100。则显示数据中的第0个、第100个、第200个、第300个……数据作为显示点数据。
当显示比例为50。 则显示数据中的第0个、第50个、第100个、第150个……数据作为显示点数据。
当显示比例为10。 则显示数据中的第0个、第10个、第20个、第30个……数据作为显示点数据。
当显示比例为1。 则显示数据中的第0个、第1个、第2个、第3个……数据作为显示点数据。
可见显示比例越小,则显示的波形越贴近真实波形。
一个线程负责采样,尽可能快的采集需要的数据,并用一个数组保存结果。
一个线程负责显示,根据缩放比例显示数据波形。并根据比例选取数据数组内的值。
不管显示的比例是多少。数据采集都不能改变频率。
也就是说,假设数据采集频率为1KHz。则始终以此速度采集保存。
当显示比例为100。则显示数据中的第0个、第100个、第200个、第300个……数据作为显示点数据。
当显示比例为50。 则显示数据中的第0个、第50个、第100个、第150个……数据作为显示点数据。
当显示比例为10。 则显示数据中的第0个、第10个、第20个、第30个……数据作为显示点数据。
当显示比例为1。 则显示数据中的第0个、第1个、第2个、第3个……数据作为显示点数据。
可见显示比例越小,则显示的波形越贴近真实波形。
#5
按你说的,如果我要以低显示比例显示一个长时间段的数据,先画在一个大的内存dc中,再进行缩放?
#6
拟显示该时间段全程的波形?直觉上的设计思路是这样的。
架构是主线程负责绘图显示,副线程负责采集。
主要参数需要进行预算。如果是肯定显示波形跟不上采集速度。那么需要抽样显示,如果想简单,就先根据软件处理速度和采集速度确定个固定的比例。预先估算好显示的最长时间段,以及抽样比例。
另外DC中的数据跨度范围根据显示区存在的数据量可以调整,比如横向初始设为300个显示点,每次超过现有显示跨度,就将横向范围增大100,即横轴坐标范围增大100。当然这样做需要根据横向跨度重新计算每个数据点所在坐标。这样做的好处是,波形基本保持在屏幕中间,且在初始阶段显示区间也不是太窄,当然这个横向范围有极限,就以上面的预算给出的区间为准,过时需要重新画了。
架构是主线程负责绘图显示,副线程负责采集。
主要参数需要进行预算。如果是肯定显示波形跟不上采集速度。那么需要抽样显示,如果想简单,就先根据软件处理速度和采集速度确定个固定的比例。预先估算好显示的最长时间段,以及抽样比例。
另外DC中的数据跨度范围根据显示区存在的数据量可以调整,比如横向初始设为300个显示点,每次超过现有显示跨度,就将横向范围增大100,即横轴坐标范围增大100。当然这样做需要根据横向跨度重新计算每个数据点所在坐标。这样做的好处是,波形基本保持在屏幕中间,且在初始阶段显示区间也不是太窄,当然这个横向范围有极限,就以上面的预算给出的区间为准,过时需要重新画了。
#7
采样没什么问题,定时去采就行了。
至于画图,数据点越多波形就越真实,但是实际情况是并不一定所有数据都得画,因为还有效率等问题。
可以先试一下,把点全都画上,这样问题一下就出来了,然后找一个比较折中的方案就行。
#8
http://download.csdn.net/detail/kiaking2010/2218385
#9
这个我之前看过,我想做的是一个静态的把一个音频文件任意时间段的波形显示出来
而不是像他这样只在一个dc上把有限的波形画出来
就像一些音频处理软件一样
#10
你所说的还不是我想要的,到底是放在大的DC中画完了再缩放到小的DC中?还是怎么做
类似音频处理软件显示波形那样
#11
各位帮看看呀
#1
按时间依次存储数据,画波形时找到对应的时间点就行了
#2
可能我表达不清我要问的是:
在固定大小的DC上画任意时间段的波形
我该如何取样,也就是一个方案吧
我现在想的是通过样本间隔来找样本,可是当我画一个时间比较长的波形时,我该如何让波形更贴近波形
多取点缩放?
在固定大小的DC上画任意时间段的波形
我该如何取样,也就是一个方案吧
我现在想的是通过样本间隔来找样本,可是当我画一个时间比较长的波形时,我该如何让波形更贴近波形
多取点缩放?
#3
#4
一般来说:取样和显示是分开进行的。
一个线程负责采样,尽可能快的采集需要的数据,并用一个数组保存结果。
一个线程负责显示,根据缩放比例显示数据波形。并根据比例选取数据数组内的值。
不管显示的比例是多少。数据采集都不能改变频率。
也就是说,假设数据采集频率为1KHz。则始终以此速度采集保存。
当显示比例为100。则显示数据中的第0个、第100个、第200个、第300个……数据作为显示点数据。
当显示比例为50。 则显示数据中的第0个、第50个、第100个、第150个……数据作为显示点数据。
当显示比例为10。 则显示数据中的第0个、第10个、第20个、第30个……数据作为显示点数据。
当显示比例为1。 则显示数据中的第0个、第1个、第2个、第3个……数据作为显示点数据。
可见显示比例越小,则显示的波形越贴近真实波形。
一个线程负责采样,尽可能快的采集需要的数据,并用一个数组保存结果。
一个线程负责显示,根据缩放比例显示数据波形。并根据比例选取数据数组内的值。
不管显示的比例是多少。数据采集都不能改变频率。
也就是说,假设数据采集频率为1KHz。则始终以此速度采集保存。
当显示比例为100。则显示数据中的第0个、第100个、第200个、第300个……数据作为显示点数据。
当显示比例为50。 则显示数据中的第0个、第50个、第100个、第150个……数据作为显示点数据。
当显示比例为10。 则显示数据中的第0个、第10个、第20个、第30个……数据作为显示点数据。
当显示比例为1。 则显示数据中的第0个、第1个、第2个、第3个……数据作为显示点数据。
可见显示比例越小,则显示的波形越贴近真实波形。
#5
按你说的,如果我要以低显示比例显示一个长时间段的数据,先画在一个大的内存dc中,再进行缩放?
#6
拟显示该时间段全程的波形?直觉上的设计思路是这样的。
架构是主线程负责绘图显示,副线程负责采集。
主要参数需要进行预算。如果是肯定显示波形跟不上采集速度。那么需要抽样显示,如果想简单,就先根据软件处理速度和采集速度确定个固定的比例。预先估算好显示的最长时间段,以及抽样比例。
另外DC中的数据跨度范围根据显示区存在的数据量可以调整,比如横向初始设为300个显示点,每次超过现有显示跨度,就将横向范围增大100,即横轴坐标范围增大100。当然这样做需要根据横向跨度重新计算每个数据点所在坐标。这样做的好处是,波形基本保持在屏幕中间,且在初始阶段显示区间也不是太窄,当然这个横向范围有极限,就以上面的预算给出的区间为准,过时需要重新画了。
架构是主线程负责绘图显示,副线程负责采集。
主要参数需要进行预算。如果是肯定显示波形跟不上采集速度。那么需要抽样显示,如果想简单,就先根据软件处理速度和采集速度确定个固定的比例。预先估算好显示的最长时间段,以及抽样比例。
另外DC中的数据跨度范围根据显示区存在的数据量可以调整,比如横向初始设为300个显示点,每次超过现有显示跨度,就将横向范围增大100,即横轴坐标范围增大100。当然这样做需要根据横向跨度重新计算每个数据点所在坐标。这样做的好处是,波形基本保持在屏幕中间,且在初始阶段显示区间也不是太窄,当然这个横向范围有极限,就以上面的预算给出的区间为准,过时需要重新画了。
#7
采样没什么问题,定时去采就行了。
至于画图,数据点越多波形就越真实,但是实际情况是并不一定所有数据都得画,因为还有效率等问题。
可以先试一下,把点全都画上,这样问题一下就出来了,然后找一个比较折中的方案就行。
#8
http://download.csdn.net/detail/kiaking2010/2218385
#9
这个我之前看过,我想做的是一个静态的把一个音频文件任意时间段的波形显示出来
而不是像他这样只在一个dc上把有限的波形画出来
就像一些音频处理软件一样
#10
你所说的还不是我想要的,到底是放在大的DC中画完了再缩放到小的DC中?还是怎么做
类似音频处理软件显示波形那样
#11
各位帮看看呀