NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

蓝牙串口通信

已解决!
转到解答
设置回车为结束符,这样每次接收的到的是完整的信息
陈树学
QQ:276509891 .
EMAIL:CSXCS_366@126.COM
qq群:78561268 80754347 37591940
http://labview.weebly.com/
新书《LabVIEW实用工具详解》已经发售,敬请关注。
0 项奖励
11 条消息(共 19 条)
3,909 次查看

谢谢您的回答,Charles

 

关于FFT的频率问题,我还是不明白。

按我的串口通信速度,而且我保存文件算过。每秒差不多可以读500个数据,所以应该是500HZ。

在FFT的graph上应该是显示250Hz。而无论我怎么改变loop count的值,得到的FFT的图像上X轴显示都是0到0.5.

我要实现的是每次采集30秒的数据 (15000个数据),做一次FFT,然后找出这个FFT的最大幅值的频率,也就是基频的频率值。

 

再次感谢您的回答。

 

Baicy

0 项奖励
12 条消息(共 19 条)
3,889 次查看

Hi Baicy

 

FFT的图像上X轴显示采样点个数无关,它始终是0到0.5的归一化频率。

可以根据实际的采样频率计算得到0.5刻度归一化频率位置的实际频率。

在前面板上FFT Graph的右键菜单中选择Create>>Property Node>>X Scale>>Range>>Maximum 获得Graph的属性节点,通过此属性节点动态配置图表的X轴。

f为信号频率;T为采样周期;fs为采样频率。在你的应用中,T = 30s / 15000 (sa) = 0.002 (s); fs = 1 / T = 500 Hz。

f(max) = F * fs = 250Hz. 用这个值对FFT Graph进行设置应该可以达到你的要求了。

 

Good Luck~

 

 

0 项奖励
13 条消息(共 19 条)
3,884 次查看

Hi Charles,

我按您的建议改了,但是出来的FFT的图像还是在0-0.5之间,也就是说在graph里面,x轴的确扩展到250了,但是图像还是在0-0.5.

有没有模块可以给多少点,然后用了多少时间来计算FFT的,我想要的就是在30秒之内测出信号的基波频率。

谢谢

Baicy

0 项奖励
14 条消息(共 19 条)
3,871 次查看
解答
接受人 baicy

Hi Baicy,

 

你说的没错,之前提供的方法没有针对问题的本质。

请看下现在这个方法,可能不是最好,但是或许可以给你一些帮助。

 

Charles

0 项奖励
15 条消息(共 19 条)
3,851 次查看

Charles, Many thanks.

频率问题解决了,现在剩下怎么接受数据的问题了。

我试试了一个别人提出的方法,但是不能达到我想要的效果。

我的想法就是接收到第一个回车后开始接收数据,第一个回车后的数据都保留。

不知道您是否还有其他的建议。

谢谢

Baicy

0 项奖励
16 条消息(共 19 条)
3,824 次查看

Hi Baicy,

 

可以采用 csxcs_366提出的方法,在LV中VISA初始化的时候用Property Node 设置结束字符为 回车符 (e.g. 0x0A)。

这样VISA Read 每次收到结束符才会返回,buf中的字符串即为 结束符之前的数据,除了第一次Read之外,应该不会收到脏数据。

 

 

Charles

0 项奖励
17 条消息(共 19 条)
3,809 次查看

Hi Charles,

最后一个比较低级的问题。

怎么设置回车符号?在附件里面的property node里面 输入结束符。如何才能输入0x0A?

谢谢

Baicy

0 项奖励
18 条消息(共 19 条)
3,771 次查看

Hi Baicy

 

十六进制数 0x0A 等于 十进制下的10。要显示0x0A需要在Integer Constant >>右键属性>>显示格式,选择十六进制就可以了。

0 项奖励
19 条消息(共 19 条)
3,750 次查看