问题标签 [dft]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1340 浏览

python - Python 中的 DFT 比 C 花费的时间要长得多

我目前正在将一些 C 代码翻译成 Python。此代码用于帮助识别射电天文学中使用的 CLEAN 算法引起的错误。为了进行这种分析,强度图、Q Stokes 图和 U Stokes 图的傅里叶变换值必须在特定像素值处找到(由 ANT_pix 给出)。这些地图只是 257*257 的数组。

下面的代码用 C 运行需要几秒钟,但用 Python 运行需要几个小时。我很确定它经过了极大的优化,因为我对 Python 的了解很差。

谢谢你提供的所有帮助。

更新我的问题是是否有更好的方法来实现 Python 中的循环,这将加快速度。我已经在这里阅读了很多关于 Python 的其他问题的答案,建议尽可能避免在 Python 中嵌套 for 循环,我只是想知道是否有人知道一种很好的方法来实现下面的 Python 代码之类的东西,没有循环或更好优化循环。我意识到这可能是一项艰巨的任务!

到目前为止,我一直在使用 FFT,但我的主管想看看 DFT 会产生什么样的差异。这是因为天线位置通常不会出现在精确的像素值上。使用 FFT 需要四舍五入到最接近的像素值。

我使用 Python 作为 CASA,用于减少射电天文数据集的计算机程序是用 Python 编写的,在其中实现 Python 脚本远比 C 容易得多。

原始代码

0 投票
1 回答
23443 浏览

c++ - OpenCV中的逆傅立叶变换

我是 OpenCV 和图像处理算法的新手。我需要在 C++ 中的 OpenCV 中进行离散傅立叶逆变换,但我不知道如何。我在互联网上搜索,但没有找到答案。我正在使用此页面中的以下代码在我的程序中进行傅立叶变换:http: //opencv.itseez.com/doc/tutorials/core/discrete_fourier_transform/discrete_fourier_transform.html。我试图与该代码相反,但我不知道我在哪里做错了。我的代码在这里(我认为整个代码是错误的):

0 投票
3 回答
10587 浏览

neural-network - 神经网络无法计算傅里叶变换?

我试图了解一些关于神经网络的事情。首先,在网上浏览了一下,似乎没有办法通过神经网络计算(离散)傅里叶变换。您可以通过对事物进行硬编码以包含用于变换的傅立叶常数来破解它,然后获得不错的结果。为什么机器不能自己解决这些问题?

0 投票
1 回答
803 浏览

matlab - Matlab中的离散傅里叶变换

我被要求在 matlab 中编写一个 fft 混合基数,但在此之前我想让以直接的方式进行离散傅立叶变换。所以我决定根据维基百科中定义的公式编写代码。

[对不起,我还不允许发布图片]

http://en.wikipedia.org/wiki/Discrete_Fourier_transform

所以我写了我的代码如下:

但是,我的代码似乎输出的结果与本网站的结果不同: http ://www.random-science-tools.com/maths/FFT.htm

你能帮我找出问题所在吗?

谢谢!

============ 没关系,我的代码似乎是正确的......

0 投票
1 回答
184 浏览

python - 如果迭代,DFT 会给出不同的结果

我创建了一个简单的积分函数和 DFT 函数,可以将其与我编写的其他代码一起使用。

此代码给出的输出为 249.028500022,接近预期的 250 值。但是,当我迭代 DFT 时,我在 4 处得到一个完全不同的变换值。

此代码的输出为:0 0.0514628731431

0.1 0.0514628731431

0.2 0.0514628731431

. . . .

4.0 0.0514628731431

. . . .

9.8 0.0514628731431

9.9 0.0514628731431

10.0 0.0514628731431

谁能告诉我是什么导致了这个问题?提前致谢。

注意:此时我并不关心使用更高效的 fft 函数。样本量不大,所以没关系。

0 投票
2 回答
13887 浏览

c++ - 使用 C++ STL 的 DFT(离散傅立叶变换)

我尝试计算这个数组的 DFT x_1。它一定很简单,但我的价值观太低了。我的代码有什么问题?

不要链接到其他示例 - 只是为我自己的代码寻找修复。

0 投票
2 回答
5187 浏览

opencv - FFTW 与 OpenCV cvDFT

使用 FFTW (http://www.fftw.org/) 而不是 OpenCV 的 cvDFT (http://goo.gl/YCHj0) 时,我可以期待加速吗?

我的程序的运行时间很大程度上取决于逆向和正向 DFT 的应用,我正在考虑使用 FFTW 而不是 OpenCV cvDFT。

IIRC FFTW 进行某种“运行时编译”,而 cvDFT 是一个简单的 FFT 实现,所以我想它可以加快我的处理速度。

所以在我自己尝试之前,我想在这里问一下,以防有人偶然发现同样的问题并在之前解决了它。

提前致谢

0 投票
1 回答
376 浏览

fft - 用 FFT 对振荡函数进行傅里叶积分/傅里叶变换

f(x) = cos(x^2)并且g(k) = pi^0.5 cos((pi*k)^2 - pi/4)是傅里叶对。

我想g(k)通过傅里叶积分f(x)使用 FFT 来重现,即

近似Integrate[ f(x) * exp(2 pi * ikx), {x, -inf, inf} ]

Sum[ fn * exp(2 pi * ik x_n), {n, 0, N-1} ] * Delta_x

然而,如果结果完全一致,则结果g(k)仅在非常小k的范围内一致(相同的代码适用于平滑傅里叶对,例如高斯函数)。N我猜问题是为and选择合适的值Delta_x。是否有任何既定的规则来选择它们?我在哪里可以找到文献中的相关主题(我已经阅读了数字食谱第 13.9 节,但它似乎没有解决我的问题)?

0 投票
1 回答
1019 浏览

c - 使用 openCV 在 C 中对 3d 函数 [视频] 进行 1d DFT

我正在尝试在 C 编程中沿着 GOP(图片组 - 基本上是视频)计算 1d DFT。我需要沿时间方向应用 1d DFT 将 gop 转换为时间域。在该域中,空间信息和时间频率信息存在于同一帧中。

因此,大小为 (M , N , T) 的视频 f(x, y, t) 的一维 DFT,其中 M x N 是每帧的大小,T 是 GOP 中的总帧数,计算公式为以下等式:

公式方程

有谁知道我如何使用 openCV 或类似的东西来处理这个问题?

如果您需要任何其他信息,请告诉我!

0 投票
1 回答
1626 浏览

iphone - OpenCV cv::dft() iOS 断言错误

我需要一些不好的帮助。我发誓我已经寻找了 1 周的时间来寻找这个问题的答案,但没有成功,所以我来爬行寻求帮助。

我的目标很简单。我正在尝试在 Xcode 中使用 OpenCV 库。我有一些令人沮丧的问题。我让 OpenCV 库可以很好地与 cvCanney 和 cvAdaptive Transforms 配合使用,但我无法让它执行 cv::dft()。我首先尝试以下方法:

这会出错,因为它的格式不正确(CV_32FC1)。所以我然后尝试:

我得到同样的错误。具体来说,错误内容如下:

Assertion failed (type == CV_32FC1 || type == CV_32FC2 || type == CV_64FC1 || type == CV_64FC2) in dft

作为对原始问题的更新,我一直在尝试使用 cv::type() 确定类型并返回 type= 24。有人可以向我解释如何破译这种类型的含义吗?是不是类型不对?最新尝试:

当我运行它时,我得到了 tempMat 的 24 类型和 output2 的 5 类型。如果我尝试添加这个:

我得到错误:Assertion failed (scn == 3 || scn == 4) in cvtColor

有任何想法吗?即使它是 RTFM 的建议,我也会在这一点上采取任何措施。请帮忙。

谢谢你。