我正在做一个个人项目。我想用旧的业余无线电无线电传输一些数据。
我的第一份申请草案是这样的:
我用 4 个“信号”构造一个字节:
5000hz表示“00”
6khz 表示“01”
7khz的意思是“10”
8khz的意思是“11”
9khz 意思和上一个一样
然后我将这 4 位合并在一起,并重新开始下一个。
解调效果很好并且应该足够快,但是我在声音生成方面遇到了问题......它很慢......
这是我的调试代码:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
Beep( 5000, 100 );
Beep( 6000, 100 );
Beep( 7000, 100 );
Beep( 8000, 100 );
Beep( 9000, 100 );
return 0;
}
I'm expecting 5 beeps, close together, 100ms each but here's what I get (on top, five "100ms Beeps(), and on the bottom, five "20ms Beeps()" :
正如你所看到的,当我想要 100 毫秒的蜂鸣声时,我得到的是 50 毫秒的蜂鸣声,然后是 75 毫秒的暂停;当我想要 20 毫秒的蜂鸣声时,我得到的是 10 毫秒的蜂鸣声,然后是 100 毫秒的暂停。
对于 Windows 来说,有比 Beep() 更快、更准确的东西吗? (也可以在 Linux 上运行的东西会更好,因为最终的应用程序应该在树莓派上运行)
我会通过 3ms 的声音获得更高的可用带宽(...41 字节/秒...这对于我的应用程序来说已经足够了)
编译器:g++(mingw)
操作系统:7个64位