菜鸟用C++编写画函数图形的程序 如y=sinx、傅里叶函数的频谱图和相位图

2025-01-05 09:04:24
推荐回答(1个)
回答1:

我自己做了一个程序,和你想象的不一样,

首先用函数产生一个序列f[n],然后调用FFT:

void __stdcall FFT(

 long N, // Serial Length, N > 0 for DFT, N < 0 for iDFT - inversed Discrete Fourier Transform

 double * inputReal, double * inputImaginary, // inputs

 double * AmplitudeFrequences, double * PhaseFrequences) // outputs

比如 FFT(n, &input, 0, &FA, &FP)

然后用printf把f[n],FA[n]和FP[n]打印出来,生成一个文本文件,这个文件可以直接粘到EXCEL里面去,然后用EXCEL生成图表就一目了然了,非常清楚精准

另一种方法更直接,就是我把FFT做成了一个动态链接库wfft.dll,然后你打开EXCEL,在第一列产生一个自动生成的函数值,比如cos(2pi*w) + cos(16pi *w),然后用宏调用我这个动态链接库,就在另外两列自动生成了幅频和相频数列,选择这两个序列就可以自动生成曲线和图表了

需要的话我可以把我做的样例FFT/EXCEL发给你