问题标签 [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 投票
2 回答
2500 浏览

c++ - 由 gpu::dft 在 C++ 中使用 OpenCV 执行的缩放

我想使用 GPU 加速算法来执行快速且节省内存的 dft。但是,当我执行 时gpu::dft,目标矩阵会按照文档中的说明进行缩放。如何通过将宽度缩放到 来避免这个问题dft_size.width / 2 + 1?另外,为什么会这样缩放?我的 DFT 代码是这样的:

其中in是一个CV_32FC1矩阵,即 512x512。

最好的解决方案是具有 sized_in.size和 type的目标矩阵CV_32FC2

0 投票
2 回答
1616 浏览

java - 来自正弦样本的离散傅立叶频谱分析的意外结果

http://jvalentino2.tripod.com/dft/index.html

我的代码实际上只是上面的一个副本:

当我在这个样本上运行它时:http: //vigtig.it/sin440.wav

我得到这个结果:

我预计 440 赫兹的最高响应,但事实并非如此。有人可以看到错误或启发我如何误解结果吗?

编辑

在查看了字节/整数转换后,我将脚本改为使用 ByteBuffer。它现在似乎按预期工作。这是工作副本:

0 投票
0 回答
7609 浏览

c++ - C++中DFT的实现

我想用C++语言实现DFT(离散傅里叶变换)来处理图像

一维 DFT 的公式

当我学习理论时,我知道,我可以将 2D DFT 分成两个 1D DFT部分。首先,我对每一行执行 1D DFT,然后对每一列执行此操作。当然,我应该对复数进行运算。

这里会出现一些问题,因为我不确定在哪里使用实数,以及在哪里使用复数的虚部。我在某处发现,我应该将输入图像像素的值视为实部,虚部设置为 0。

我做了一个实现,但我认为结果图像不正确。

莱纳克lenac_dft

如果有人能帮我解决这个问题,我将不胜感激。

对于读取和保存图像,我使用CImg library

0 投票
1 回答
556 浏览

c++ - 具有频率范围的 DFT

我们需要更改/重新实现 GSL 中的标准 DFT 实现,即

在这个实现中,GSL 对输入向量迭代两次以获得样本/输入大小。但是,我们需要为不同的频率仓构建。例如,我们有 4096 个样本,但我们需要计算 128 个不同频率的 DFT。你能帮我定义或实现所需的 DFT 行为吗?提前致谢。

编辑:我们不搜索第一个m频率。

实际上,以下方法对于查找具有给定频点编号的 DFT 结果是否正确?N = 样本大小 B = 频率区间大小

编辑:我可能没有详细解释 DFT 的问题,但是,我很高兴在下面提供答案:

0 投票
0 回答
1300 浏览

image - 如何找出jpeg编码图像的块大小

我想用 dft 找出 jpeg 编码图像的块大小。我已经实现了 dft 算法。dft 在不同的位置有尖峰。在算法中,据说块大小将是那些尖峰位置的倍数。谁能告诉我如何找到图像的块大小或这些尖峰的位置。

0 投票
1 回答
318 浏览

python - 实施 3D DFT 时无法匹配结果

我正在尝试实现 3D DFT,但遇到了一些麻烦。我认为我应该做的是只做 3 个连续的 1D DFT,每个方向一个。假设 1D DFT 是正确的,你能看出这段代码有什么问题吗:

我知道在 python 中有内置版本,但我不能使用那些。我只是在 python 中测试我的算法,所以我可以比较我的算法和内置算法的结果。据我所知,它适用于 1D 和 2D 变换,但一旦我将其扩展到 3D,结果就不再匹配。有谁知道出了什么问题?

0 投票
2 回答
7743 浏览

c - 如何使用 OpenCV 和 FFTW3 库显示图像的离散傅里叶谱 (DFT)?

我正在尝试生成简单图像的傅立叶光谱。但我得到的只是噪音。我尝试关注许多链接,这些链接建议缩小两者之间的值,[0, 255]但即使在缩放之后我也只能得到黑色图像,我这样做是这样的:

缩放代码:

请注意,我没有采用dft数组的第一个值,因为它太大(因为它是 DC 值)。也就是说,我是从k=1forloop图开始的。

后来我这样做是为了缩放

没有缩放的代码:

输出: 使用上面的代码我只会得到噪音

但是如果我像这样引入缩放: 缩放后的​​代码

缩放后的输出 缩放后

请告诉我我做错了什么?我应该如何进行缩放以获得正确的图像光谱。

0 投票
1 回答
13318 浏览

image - 如何将高斯滤波器应用于 OpenCV 中的 DFT 输出

我想在确定正确的填充大小后创建一个高斯高通滤波器(例如,如果图像宽度和高度是 10X10,那么应该是 20X20)。

我有我试图在 OpenCV 中移植的 Matlab 代码,但我很难正确移植它。我的 Matlab 代码如下所示:

我知道如何在 OpenCV 中使用 DFT,并且能够生成它的图像,但我不确定如何创建高斯滤波器。请指导我如何创建如上所示的高通高斯滤波器?

0 投票
1 回答
6397 浏览

c++ - OpenCV中空间域的DFT不起作用

我已经创建了图像的 dft,在使用过滤器进行一些调整后,我想将其转换回真实图像,但是每次我这样做时它都会给我错误的结果..似乎它没有将其转换回来。 ForierTransform并且createGaussianHighPassFilter是我自己的函数,我使用的其余代码如下所示,用于反转回真实图像。

即使我不应用过滤器,我也无法反转 dft 结果......这是我的 dft 代码,我找不到任何样本将 dft 反转回正常图像..

好心的帮助

[编辑:在 mevatron 的帮助下找到解决方案后](下面是正确的代码)

它现在可以显示手指的脊谷,并且可以在阈值方面进行更多优化。

0 投票
3 回答
1177 浏览

c# - 为什么来自 AForge.Math 的 DFT 不起作用?

我尝试获取 fft,然后使用以下代码获取波的 dft:

SourceToDouble(s)

ToPowerOfTwo(ref source)

DoubleToComplex(source)

DoPlaySound(sou)

问题是这样的:当我将 wav 文件提供给通用代码时,经过很长时间该方法试图播放最终的 wav(tmp.wav),但它不像通用文件。

更新1:

我也试过FourierTransform.DFT(sou, FourierTransform.Direction.Backward);,但也没有用!