0
虽然回来,我遇到了PiFM,并决定学习一些关于音频和调制。我正在尝试编写一个AFSK调制器,但首先我想生成纯音,比如1000Hz。我使用PiFM项目中的代码(https://github.com/rm-hull/pifm/blob/master/pifm.cpp),该代码读取WAV文件并通过RF发送出去。我想要做同样的事情,但我想通过RF拍出纯正的音调。树莓派PiFM生成音色
这里是我的尝试之一:
void playSineWave(float frequency, int duration, float samplerate)
{
SampleSink* ss;
ss = new Outputter(samplerate);
int bufferLen = duration * samplerate;
float* buffer = new float[bufferLen];
for (int i = 0; i < bufferLen; i++) {
float amplitude = 6000;
buffer[i] = amplitude * sin((2.f * float(M_PI) * i * frequency)/samplerate);
}
cout << "Buffer length: " << bufferLen << endl;
ss->consume(buffer, bufferLen);
delete [] buffer;
}
我会用它作为这样playSineWave(1000, 5, 22050);
发挥1000Hz的音5秒钟。但是我没有得到任何东西或噪音。你们可以建议如何解决这个问题,或者是一些很好的阅读材料吗?
编辑:更改了代码以解决振幅问题。仍然没有声调。
好眼睛,但仍然没有运气。我将幅度更改为固定值(请参阅上面的代码)。我在接收端得到的所有信息都是crack啪声(噪音)。 – Davidus