用C写一个发送5个正弦波的代码
时间: 2023-05-14 09:04:45 浏览: 43
以下是一个用C语言编写的发送5个正弦波的代码:
```c
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
int main()
{
double freq[5] = {100, 200, 300, 400, 500}; // 正弦波的频率
double amplitude[5] = {1, 0.8, 0.6, 0.4, 0.2}; // 正弦波的振幅
double phase[5] = {0, PI/2, PI, 3*PI/2, 2*PI}; // 正弦波的相位
double duration = 1.0; // 正弦波的持续时间
double sample_rate = 44100.0; // 采样率
int num_samples = (int)(duration * sample_rate); // 采样点数
for (int i = 0; i < num_samples; i++) {
double sample = 0;
for (int j = 0; j < 5; j++) {
sample += amplitude[j] * sin(2 * PI * freq[j] * i / sample_rate + phase[j]);
}
printf("%f\n", sample);
}
return 0;
}
```
这个代码使用了一个循环来生成5个正弦波,并将它们相加得到最终的信号。每个正弦波都有自己的频率、振幅和相位,可以通过修改这些参数来生成不同的信号。最后,代码使用printf函数将每个采样点的值输出到控制台。