C++ 如何使用sin生成正弦波
时间: 2024-03-08 13:48:14 浏览: 270
在C++中,可以使用数学库中的sin函数来生成正弦波。以下是一个简单的示例代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
const double PI = 3.14159265358979323846;
const double frequency = 440.0; // 设置频率为440Hz
const double duration = 5.0; // 设置持续时间为5秒
const int sample_rate = 44100; // 设置采样率为44100Hz
const int num_samples = duration * sample_rate; // 计算采样点数
short sound_buffer[num_samples]; // 声音缓冲区
for (int i = 0; i < num_samples; i++)
{
double time = (double)i / sample_rate; // 计算当前时间
double value = sin(2 * PI * frequency * time); // 计算正弦波值
sound_buffer[i] = (short)(value * 32767); // 将值转换为16位有符号整数
}
// 在此处将声音缓冲区写入音频文件或播放设备中
return 0;
}
```
在此示例代码中,我们使用sin函数生成了一个440Hz频率的正弦波,并将其存储在一个short类型的声音缓冲区中。我们可以将此声音缓冲区写入音频文件或播放设备中以播放这个正弦波。
阅读全文