打印

虚拟示波器如何精确计算频率?

[复制链接]
5479|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
a5566255|  楼主 | 2009-1-4 13:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
并口采集的AD数据(接收处理都自己写句子完成),在上位机上实时显示波形。欲求此波形频率?
我的设想:
    想实现精确计算时间,必须有高精度定/计时装置。PC的软方法一般都不快(记得有个系统API能精确1MS的计算??)没太大实用价值。或者可以用硬触发方式,比如微控制器或555定时器之类发出精度PWM信号触发AD每隔一定时间采次数据。
             每次采得的数据若直接传给PC,可能会因为PC的CPU此时刚好在执行另一个进程而不能接收到数据(虽然我们的程序让它一直执行接收指令),应此需要在下位机建立个缓冲区暂存采集到的数据,当数据达一定程度(比如缓冲区大小的一半)就一次性传给PC。
    或者还有另一种接收下位机数据而不丢失的方法是缓冲区建在上位机上:在上位机开辟了一个缓冲数组,然后用一条“工作者线程”不停的接收数据传给此缓冲区,主程序再在有空时从中取数计算并实用显示。不过我用的VB,只能想想,不会做。。。。。。
    综合而言用个微控制器是最合算的(能精确发出几M的触发信号,还有内部RAM可以当缓冲区)。
    
当然,上面这些还只是我一厢情愿的纸上谈兵(我只做了波形显示的),不知道成熟的产品是怎么实现虚拟示波器的频率显示功能的(比如几百兆频率的,难道它还用了个几百兆的MCU???),这里都是身经百战阅器无数的大侠,提前感谢给我捷径的好人大侠,让我早点做出属于我的示波器!

相关帖子

沙发
computer00| | 2009-1-4 13:42 | 只看该作者

采样频率是知道的吧?最简单、粗糙的就是求过零点,然后

或者用FFT做也可以。

使用特权

评论回复
板凳
a5566255|  楼主 | 2009-1-4 14:30 | 只看该作者

采样频率.....

怎么会知道呢。。。。
我就用个12位AD加上其工作的最小系统与并口相连(也就是完全由并口操作其工作),其它晶振、芯片一个都没有,哪来的“确定”的“采集频率”嘛。。。
事实上按LS大侠的说法,那么偶提问目的好像就是要找个方法提供采样频率吧。。。
我目前不想太高级如FFT的求法,我只是取一定时间内出现多少波峰求频率的,只想先能得到个精确的频率出来看看。。。

使用特权

评论回复
地板
computer00| | 2009-1-4 14:34 | 只看该作者

如果连采样频率都没法固定,那么你这个系统根本没法使用

使用特权

评论回复
5
a5566255|  楼主 | 2009-1-5 11:19 | 只看该作者

请问下再加什么电路能达到几百兆的采样频率?

使用特权

评论回复
6
computer00| | 2009-1-5 12:53 | 只看该作者

高速ADC以及相关的控制电路。

采样不是问题,更麻烦的是模拟小信号前端处理,还有大量的数据保存及传输。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

218

帖子

1

粉丝