📄 yonglin.c
字号:
0.5141, 0.4929, 0.4714, 0.44961, 0.42756, 0.40524,
0.38268, 0.3599, 0.33689, 0.31368, 0.29028, 0.26671,
0.24298, 0.2191, 0.19509, 0.17096, 0.14673, 0.12241,
0.098017, 0.073565, 0.049068, 0.024541, 0.0, -0.024541,
-0.049068, -0.073565, -0.098017, -0.12241, -0.14673, -0.17096,
-0.19509, -0.2191, -0.24298, -0.26671, -0.29028, -0.31368,
-0.33689, -0.3599, -0.38268, -0.40524, -0.42756, -0.44961,
-0.4714, -0.4929, -0.5141, -0.535, -0.55557, -0.57581,
-0.5957, -0.61523, -0.63439, -0.65317, -0.67156, -0.68954,
-0.70711, -0.72425, -0.74095, -0.75721, -0.77301, -0.78835,
-0.80321, -0.81758, -0.83147, -0.84485, -0.85773, -0.87009,
-0.88192, -0.89322, -0.90399, -0.91421, -0.92388, -0.93299,
-0.94154, -0.94953, -0.95694, -0.96378, -0.97003, -0.9757,
-0.98079, -0.98528, -0.98918, -0.99248, -0.99518, -0.99729,
-0.9988, -0.9997, -1, -0.9997, -0.9988, -0.99729,
-0.99518, -0.99248, -0.98918, -0.98528, -0.98079, -0.9757,
-0.97003, -0.96378, -0.95694, -0.94953, -0.94154, -0.93299,
-0.92388, -0.91421, -0.90399, -0.89322, -0.88192, -0.87009,
-0.85773, -0.84485, -0.83147, -0.81758, -0.80321, -0.78835,
-0.77301, -0.75721, -0.74095, -0.72425, -0.70711, -0.68954,
-0.67156, -0.65317, -0.63439, -0.61523, -0.5957, -0.57581,
-0.55557, -0.535, -0.5141, -0.4929, -0.4714, -0.44961,
-0.42756, -0.40524, -0.38268, -0.3599, -0.33689, -0.31368,
-0.29028, -0.26671, -0.24298, -0.2191, -0.19509, -0.17096,
-0.14673, -0.12241, -0.098017, -0.073565, -0.049068, -0.024541,
0.0, 0.024541, 0.049068, 0.073565, 0.098017, 0.12241,
0.14673, 0.17096, 0.19509, 0.2191, 0.24298, 0.26671,
0.29028, 0.31368, 0.33689, 0.3599, 0.38268, 0.40524,
0.42756, 0.44961, 0.4714, 0.4929, 0.5141, 0.535,
0.55557, 0.57581, 0.5957, 0.61523, 0.63439, 0.65317,
0.67156, 0.68954, 0.70711, 0.72425, 0.74095, 0.75721,
0.77301, 0.78835, 0.80321, 0.81758, 0.83147, 0.84485,
0.85773, 0.87009, 0.88192, 0.89322, 0.90399, 0.91421,
0.92388, 0.93299, 0.94154, 0.94953, 0.95694, 0.96378,
0.97003, 0.9757, 0.98079, 0.98528, 0.98918, 0.99248,
0.99518, 0.99729, 0.9988, 0.9997
};
static float sintable[TABLE]={
0.0, 0.024541, 0.049068, 0.073565, 0.098017, 0.12241,
0.14673, 0.17096, 0.19509, 0.2191, 0.24298, 0.26671,
0.29028, 0.31368, 0.33689, 0.3599, 0.38268, 0.40524,
0.42756, 0.44961, 0.4714, 0.4929, 0.5141, 0.535,
0.55557, 0.57581, 0.5957, 0.61523, 0.63439, 0.65317,
0.67156, 0.68954, 0.70711, 0.72425, 0.74095, 0.75721,
0.77301, 0.78835, 0.80321, 0.81758, 0.83147, 0.84485,
0.85773, 0.87009, 0.88192, 0.89322, 0.90399, 0.91421,
0.92388, 0.93299, 0.94154, 0.94953, 0.95694, 0.96378,
0.97003, 0.9757, 0.98079, 0.98528, 0.98918, 0.99248,
0.99518, 0.99729, 0.9988, 0.9997, 1, 0.9997,
0.9988, 0.99729, 0.99518, 0.99248, 0.98918, 0.98528,
0.98079, 0.9757, 0.97003, 0.96378, 0.95694, 0.94953,
0.94154, 0.93299, 0.92388, 0.91421, 0.90399, 0.89322,
0.88192, 0.87009, 0.85773, 0.84485, 0.83147, 0.81758,
0.80321, 0.78835, 0.77301, 0.75721, 0.74095, 0.72425,
0.70711, 0.68954, 0.67156, 0.65317, 0.63439, 0.61523,
0.5957, 0.57581, 0.55557, 0.535, 0.5141, 0.4929,
0.4714, 0.44961, 0.42756, 0.40524, 0.38268, 0.3599,
0.33689, 0.31368, 0.29028, 0.26671, 0.24298, 0.2191,
0.19509, 0.17096, 0.14673, 0.12241, 0.098017, 0.073565,
0.049068, 0.024541, 0, -0.024541, -0.049068, -0.073565,
-0.098017, -0.12241, -0.14673, -0.17096, -0.19509, -0.2191,
-0.24298, -0.26671, -0.29028, -0.31368, -0.33689, -0.3599,
-0.38268, -0.40524, -0.42756, -0.44961, -0.4714, -0.4929,
-0.5141, -0.535, -0.55557, -0.57581, -0.5957, -0.61523,
-0.63439, -0.65317, -0.67156, -0.68954, -0.70711, -0.72425,
-0.74095, -0.75721, -0.77301, -0.78835, -0.80321, -0.81758,
-0.83147, -0.84485, -0.85773, -0.87009, -0.88192, -0.89322,
-0.90399, -0.91421, -0.92388, -0.93299, -0.94154, -0.94953,
-0.95694, -0.96378, -0.97003, -0.9757, -0.98079, -0.98528,
-0.98918, -0.99248, -0.99518, -0.99729, -0.9988, -0.9997,
-1, -0.9997, -0.9988, -0.99729, -0.99518, -0.99248,
-0.98918, -0.98528, -0.98079, -0.9757, -0.97003, -0.96378,
-0.95694, -0.94953, -0.94154, -0.93299, -0.92388, -0.91421,
-0.90399, -0.89322, -0.88192, -0.87009, -0.85773, -0.84485,
-0.83147, -0.81758, -0.80321, -0.78835, -0.77301, -0.75721,
-0.74095, -0.72425, -0.70711, -0.68954, -0.67156, -0.65317,
-0.63439, -0.61523, -0.5957, -0.57581, -0.55557, -0.535,
-0.5141, -0.4929, -0.4714, -0.44961, -0.42756, -0.40524,
-0.38268, -0.3599, -0.33689, -0.31368, -0.29028, -0.26671,
-0.24298, -0.2191, -0.19509, -0.17096, -0.14673, -0.12241,
-0.098017, -0.073565, -0.049068, -0.024541
};
//void dataIO(void);//为了看图形方便,设置断点用,没有什么功能
/*要编程的主要公式为:
out_buffer[n]=cos[Kf*Ts*( )]cos(2*Pi*f1*n*Ts)
-sin[Kf*Ts*( )]sin(2*Pi*f1*n*Ts)
n从1到BUFSIZE(500)进行500个点的输出,因为数组元素是从0开始的,故只能计算到数组元素out_buffer[499]*/
void main()
{
int i,j,k;
int m;
float sum1,sum2;
puts("Fm example started\n");
while(TRUE) //不停地循环输出500个点
{
//dataIO();
sum1=0.0;
sum2=0.0;
out_buffer[0]=1.0;
for(i=1;i<BUFSIZE;i++)
{ sum1=(inp_buffer[i-1]+inp_buffer[i])*0.05; // (Kf*Ts)/2=0.05
sum2=sum2+sum1; //累计求和
while (sum2>=2*Pi)
sum2=sum2-2*Pi;
while (sum2<0.0)
sum2=sum2+2*Pi;
j=sum2*TABLE/(2*Pi)+0.5; //因为表在一个周期内取了TABLE个点,故每个点//的长度为 (2*Pi) /TABLE,sum2再跟它相除,就可以查到对应表的那个点的值
k=(i%4)*TABLE/4;//其实k值也一样,前一个是简化式,他原来的式子可表达为: //k=2*Pi*f1*i*Ts*TABLE/(2*Pi); 求余主要是把它限制在0~TABLE以内,以便不会超//出表的范围
out_buffer[i]=costable[j]*costable[k]-sintable[j]*sintable[k];
}
//以下是他的输出打印部分
for(m=0;m<BUFSIZE;m++)
{
if(m%10==0) printf("\n");
printf(" %f",out_buffer[m]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -