Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C FFTW图书馆:如何正确绘制输出?_C_Math_Signal Processing_Fft_Fftw - Fatal编程技术网

C FFTW图书馆:如何正确绘制输出?

C FFTW图书馆:如何正确绘制输出?,c,math,signal-processing,fft,fftw,C,Math,Signal Processing,Fft,Fftw,我在FFTW实验室遇到了一些问题,我正在用高斯函数测试快速傅里叶变换算法,因此我希望在进行变换时得到另一个高斯函数,这就是我得到的结果: 代码如下(我使用的是C): 你能帮我告诉我哪里错了吗?问题不在于你做的计算,而在于你对数据的解释。重要的是要考虑你已经通过的高斯,以及它是如何在原点阶段。如果您也传递了以原点为中心的高斯分布,则只能期望真实的高斯分布。由于原始数据不太可能以原点为中心,因此得到了高斯乘以exp(i*相位*omega)。如果你检查假想值,你会发现它们也在振荡,并且相对于实部来

我在FFTW实验室遇到了一些问题,我正在用高斯函数测试快速傅里叶变换算法,因此我希望在进行变换时得到另一个高斯函数,这就是我得到的结果:

代码如下(我使用的是C):


你能帮我告诉我哪里错了吗?

问题不在于你做的计算,而在于你对数据的解释。重要的是要考虑你已经通过的高斯,以及它是如何在原点阶段。如果您也传递了以原点为中心的高斯分布,则只能期望真实的高斯分布。由于原始数据不太可能以原点为中心,因此得到了高斯乘以exp(i*相位*omega)。如果你检查假想值,你会发现它们也在振荡,并且相对于实部来说是退相的
M_PI*0.25
。对于负值,零中心实函数的数据应从
N/2
N-1
(以N的补充方式),然后对于正样本,从
0
N/2-1
。最有可能的情况是,您将高斯分布集中在sample
N/2
(我刚刚检查过,您已经精确地完成了这一点:)上,这在您的输出中产生了复杂的指数乘法


此外,原点位于元素
0
,因此它正确地反映在原点。只需将输入的高斯函数集中到同一点,看看它如何不显示这样的振荡结果。

问题不在于您所做的计算,而在于您对数据的解释。重要的是要考虑你已经通过的高斯,以及它是如何在原点阶段。如果您也传递了以原点为中心的高斯分布,则只能期望真实的高斯分布。由于原始数据不太可能以原点为中心,因此得到了高斯乘以exp(i*相位*omega)。如果你检查假想值,你会发现它们也在振荡,并且相对于实部来说是退相的
M_PI*0.25
。对于负值,零中心实函数的数据应从
N/2
N-1
(以N的补充方式),然后对于正样本,从
0
N/2-1
。最有可能的情况是,您将高斯分布集中在sample
N/2
(我刚刚检查过,您已经精确地完成了这一点:)上,这在您的输出中产生了复杂的指数乘法


此外,原点位于元素
0
,因此它正确地反映在原点。只需将输入的高斯曲线居中到同一点,看看它如何不显示这样的振荡结果。

不要将图像用于输出和编码。请将您的问题所需的信息张贴在上面。可能会有重复的“请勿使用图像”输出和代码。请将您的问题所需的信息贴在上面。可能是重复的谢谢,我能在您的帮助下解决问题。谢谢,我能在您的帮助下解决问题。