在C#中创建正弦波或方波

在C#中创建正弦波或方波,第1张

在C#中创建正弦波或方波

您可以使用NAudio并创建派生的WaveStream,该输出输出正弦波或方波,您可以将其输出到声卡或写入WAV文件。如果使用32位浮点样本,则可以直接从sin函数中写入值,而不必进行缩放,因为它已经在-1和1之间。

至于准确性,您是指正确的频率还是正确的波形?没有真正的方波,甚至正弦波在其他频率下也可能会有一些非常安静的伪像。如果重要的是频率的准确性,则取决于声卡中时钟的稳定性和准确性。话虽这么说,我可以想象对于大多数用途而言,准确度已经足够了。

以下是一些示例代码,该示例代码以8 kHz采样率和16位采样(即非浮点数)进行1 kHz采样:

int sampleRate = 8000;short[] buffer = new short[8000];double amplitude = 0.25 * short.MaxValue;double frequency = 1000;for (int n = 0; n < buffer.Length; n++){    buffer[n] = (short)(amplitude * Math.Sin((2 * Math.PI * n * frequency) / sampleRate));}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5476124.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存