生成特定频率的正弦波。
包含头文件
#include <math.h>
标准正弦波
y = sin(x)
正弦波公式
y = A * sin(ωt+φ)
A:振幅,那么y的取值范围就是[-A, A];
ω:角频率,ω = 2 * π * f,其中f为频率,周期T = 1 / f;
φ:初相位;
示例代码
#include <stdio.h>
#include <math.h>
const double PI = 3.14159265358979323846;
int main(int argc, char** argv)
{
int ret = 0;
int i = 0;
int amp = 8192;
int fs = 8000;//采样率,用来确定时间间隔
int N = 8000;//采集点数,即采集1s的数据量
int f = 125;//正弦波频率
double dt = 1.0 / 8000;//这里分子必须为1.0,不然计算出来dt为0
int sin_data[8000] = { 0 };//存放数据
for (i = 0; i < N; i++) {
sin_data[i] = (int) amp * sin(2 * PI * f * dt * i);
}
return ret;
}