零相位"雷克子波"的C表达式是什么?

零相位"雷克子波"的C表达式是什么啊,给定主频30Hz,基于C语言实现"雷克子波"的程序

零相位雷克子波的C表达式可以表示为:

double rickerWave(double t, double f) {
    double term1 = (1 - 2 * pow(M_PI * f * t, 2));
    double term2 = exp(-pow(M_PI * f * t, 2));
    return term1 * term2;
}

其中t为时间,f为主频。

基于C语言实现"雷克子波"的程序可以如下所示:

#include <stdio.h>
#include <math.h>

double rickerWave(double t, double f);

int main() {
    double t, f;
    for (t = 0; t <= 0.5; t += 0.01) {
        f = 30;
        printf("%f
", rickerWave(t, f));
    }
    return 0;
}

double rickerWave(double t, double f) {
    double term1 = (1 - 2 * pow(M_PI * f * t, 2));
    double term2 = exp(-pow(M_PI * f * t, 2));
    return term1 * term2;
}

这个程序可以输出主频为30Hz的零相位雷克子波在0秒到0.5秒之间的波形。