有些地方不懂,勉强写出来,求砖。 private void CreateFLow(int fsml, int f_kernel, double x) { int M = f_kernel; double k = 500 / fsml; double sum = 0; LHZ = new double[M]; double FC = x * k; for (int i = 0;i < M; i++) { if ((i - M / 2) == 0) //信号LHZ, //中点的值为 2 * PI * FC, 即 2 * PI * x * 500/fsml. //其实这个 For 循环只是使用了同一个计算公式, //这个 if 分支把 ((i - M / 2) == 0) 的情况拎出来, //是为了避免下面 除以 (i-M/2) 时数值出现错误。 //手工计算的话, //信号中点的值刚好为 sin( 2 * PI * FC ) * ( 0.54 - 0.46* cos( 2 * PI * 1/2 )), ... // = sin( 2 * PI * FC ) * ( 0.