使用C语言生成包含320Hz、2KHz、3KHz正弦混合信号作为仿真数据源,幅值分别为1000,500,500,采样频率8KHz,采样长度256点。
时间: 2024-03-11 12:49:07 浏览: 43
以下是生成包含320Hz、2KHz、3KHz正弦混合信号的 C 语言代码,幅值分别为1000,500,500,采样频率8KHz,采样长度256点:
```c
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
int main()
{
int i, j;
int fs = 8000; // 采样频率
int len = 256; // 采样长度
double f[3] = {320, 2000, 3000}; // 正弦信号频率
double a[3] = {1000, 500, 500}; // 正弦信号幅值
double t, x, y[256] = {0};
// 生成信号
for (i = 0; i < 3; i++) {
for (j = 0; j < len; j++) {
t = (double)j / fs;
x = a[i] * sin(2 * PI * f[i] * t);
y[j] += x;
}
}
// 输出信号
for (i = 0; i < len; i++) {
printf("%d\n", (int)y[i]);
}
return 0;
}
```
这个程序会生成一个包含320Hz、2KHz、3KHz正弦混合信号的数组,数组长度为256,每个元素表示对应时刻的信号值。你可以根据需要修改信号的频率、幅值和采样参数来生成不同的信号。
阅读全文