我正在做一个个人项目。我想用一台旧的业余无线电通过空中传输一些数据。
我的初稿应用程序是这样工作的:
我用 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;
}
我期待 5 次哔哔声,彼此靠近,每次 100 毫秒,但这是我得到的(顶部是五个“100ms 哔声()”,底部是五个“20ms 哔声()”:
正如你所看到的,当我想要 100 毫秒的哔声时,我得到的是 50 毫秒的哔声,然后是 75 毫秒的暂停,当我想要 20 毫秒的哔声时,我得到的是 10 毫秒的哔声,然后是 100 毫秒的暂停。
有没有比 Beep() for Windows 更快、更准确的方法?(同样适用于 linux 的东西会更好,因为最终的应用程序应该在树莓派上运行)
我会用 3ms 的声音获得更高的可用带宽(...... 41 字节/秒......这对我的应用程序来说已经足够了)
编译器:g++ (mingw)
操作系统:7 个 64 位