📄 caculate.h
字号:
#include "math.h"
void sinwn(int num,double f,double* sam)
{
double pi;
pi=4.0*atan(1.0);
for(int i=0;i<num;i++)
{
sam[i]=-sin(2*pi*i*f/num);
}
}
void RandWave(int firstPos,
int n,
double amp,
double freqSignal,
double freqSample,
double phase,
double offset,
double *data)
{
double tmp;
tmp = freqSample / freqSignal;//可能就是时基的概念?
double degree;
double ssd;
// srand((unsigned int)1);
int times = firstPos + n;
for (int i=0; i<n; i++)
{
degree = phase + 360.0/tmp*(i+firstPos);//当前点的角度
degree *= 0.0174532925;//把角度转换为幅度3.14/180 = 0.0174532925
data[i] = 2 * ((rand()/(double)RAND_MAX)-0.5) * amp + offset;
ssd=data[i];
}
}
void SquareWave(int firstPos,
int n,
double amp,
double freqSignal,
double freqSample,
double phase,
double offset,
double *data)
{
double tmp;
tmp = freqSample / freqSignal;//可能就是时基的概念?
double degree;
int times = firstPos + n;
for (int i=0; i<n; i++)
{
degree = phase + 360.0/tmp*(i+firstPos);//当前点的角度
while(degree >=360)
degree -= 360.0;
if(degree >= 0 && degree < 180)
data[i] = (1.0 * amp) + offset;
else if(degree >= 180 && degree < 360)
data[i] = (-1.0 * amp) + offset;
}
}
void TriangleWave(int firstPos,
int n,
double amp,
double freqSignal,
double freqSample,
double phase,
double offset,
double *data)
{
double tmp;
tmp = freqSample / freqSignal;//可能就是时基的概念?
double degree;
int times = firstPos + n;
for (int i=0; i<n; i++)
{
degree = phase + 360.0/tmp*(i+firstPos);//当前点的角度
while(degree >=360)
degree -= 360.0;
if(degree >= 0 && degree < 90)
data[i] = ((degree/90.0) * amp) + offset;//x/90
else if(degree >= 90 && degree < 270)
data[i] = ((2-degree/90.0) * amp) + offset;//2-x/90
else if(degree >=270 && degree <360)
data[i] = ((-4+degree/90)*amp)+offset;//-4+x/90
}
}
void SawtoothWave(int firstPos,
int n,
double amp,
double freqSignal,
double freqSample,
double phase,
double offset,
double data[])
{
double tmp;
tmp = freqSample / freqSignal;//可能就是时基的概念?
double degree;
int times = firstPos + n;
for (int i=0; i<n; i++)
{
degree = phase + 360.0/tmp*(i+firstPos);//当前点的角度
while(degree >=360)
degree -= 360.0;
data[i] = ((1.0 - degree/180.0) * amp) + offset;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -