问题标签 [ifft]

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 投票
1 回答
1750 浏览

matlab - 在 MatLab 中合成 PSD

我想从给定的功率谱密度恢复时间信号,假设原始信号的正态分布:

结果显示功率谱比原始功率谱低几个数量级,但形状匹配非常好。我猜这些单位有问题,或者可能缺少比例因子。我不确定 ifft 之后时间信号的单位,因为幅度有 [(m/s)/sqrt(Hz)]。

0 投票
1 回答
2726 浏览

matlab - MatLab - 图像的 IFFT 很复杂

我正在使用fft2一个图像,它给了我一个复杂的矩阵,但是当我将它转换回来时ifft2,结果也是一个复杂的矩阵,它不是原始图像。这里会发生什么?

0 投票
1 回答
7642 浏览

image - MatLab - 使用 FFT 移动图像

我想使用乘以 exp(-j*2*pi*x*F) 来移动图像(由 2D 矩阵表示fft),其中 x 是位移。我有:

但是我在识别/表示 H[F] 中的 F 时遇到了麻烦,因为我的输入是一个二维数组。我怎么能这样做?所需的输出将是我在同一帧中沿水平轴(x 个单位)移动的原始图像,因此它将从 x+1 开始。举个例子:

如果input=

x=2,我想要:

0 投票
1 回答
2491 浏览

matlab - MATLAB:FFT信号到频率和IFFT回到时域,不完全是第一个信号

我正在尝试重现约 30 飞秒激光脉冲的变化。我及时创建并显示这个脉冲就好了。此外,该脉冲的 fft 在 matlab 上表现良好(中心频率和宽度非常好)。但是当我使用 ifft() 函数对转换后的信号进行反向转换时,脉冲会及时移动(可能是由于相位变化??我不知道),并且峰值最大值也不同。这可能是什么原因? 我以错误的方式使用ifft?

我正在使用的代码是这样的:

0 投票
0 回答
551 浏览

opencv - 仅从相位信息中找到傅里叶逆变换

我是图像处理的新手。我做了一个关于离散傅里叶变换的程序。我能够从(幅度+相位)信息中获得反向图像。此外,我只能从幅度部分获得逆像,但我不能仅从相位信息中获得逆像。我正在这样做。

然后我找到了如下的反向图像:

f(x,y)= ∑(u=0) 到 (M-1)∑(v=0) 到 (N-1) |p(u,v)| exp ^ j2pi(ux/M+vy/N)

我做对了吗?请帮忙?

0 投票
1 回答
3192 浏览

matlab - 在 Matlab 中比较朴素逆滤波器和维纳滤波器以进行反卷积

我目前正在尝试将一个简单的逆滤波器与维纳滤波器进行比较,以使用 matlab 进行反卷积。我的起始信号是exp(-t^2),这将与时间为-.5 到 0.5 的非零矩形进行卷积。我正在引入幅度在 -.5 到 .5 范围内的噪声。

定义我的时域到频域映射:

对于第一种方法,我只是将 FTc除以 FT,f然后进行逆 FT。这相当于s = (approx.) ifft((FxS + N)/F)

对于第二种方法,我采用维纳滤波器 ,W并将其相乘C/R,然后进行逆 FT。这相当于S = (approx.) ifft(CxW/R)

维纳滤波器是W = mag_squared(FxS)/(mag_squared(FxS) + mag_squared(N))

我用“*”表示卷积,用“x”表示乘法。

我正在尝试在时间间隔 -3 到 3 内比较矩形的两个反卷积。现在,我得到的反卷积矩形图看起来与原始图完全不同。
有人可以指出我做错了什么的正确方向吗?我曾尝试在许多不同的顺序中使用 ifftshift 和不同的缩放比例,但似乎没有任何效果。

谢谢

我的matlab代码如下:

0 投票
1 回答
1014 浏览

matlab - 如何在 MATLAB 中使用 ifft 函数和实验数据

我试图在一些实验数据上使用 MATLAB 中的 ifft 函数,但我没有得到预期的结果。

我有对数正弦扫描激励的频率数据,因此我知道幅度 [g's]、频率 [Hz] 和相位(这是 0,因为该点是一个引导点)。

我试图将它直接提供给 ifft 函数,但结果是我得到了一个复数(我期待一个真实的结果,因为它是一个时间信号)。我认为问题可能是信号不对称,因此我以这种方式计算了对称部分(在“for”循环中)

我将它添加到幅度矢量的末尾。

这样,新的幅度向量是对称的,但现在我也将该向量的维度加倍,这意味着我也必须将频率向量的维度加倍。

无论如何,我将新的幅度矢量输入到 ifft,但我仍然没有得到对数正弦扫描,尽管这次输出如预期的那样是真实的。

为了计算绘图的时间 [s],我使用了以下公式:

我究竟做错了什么?先感谢您

0 投票
1 回答
2453 浏览

matlab - IFFT:对称标志

谁能解释在MATLAB中执行对称IFFT的算法?

举个例子:

这里,X是复对称信号。

0 投票
0 回答
402 浏览

matlab - 如何获得实验频域信号的傅立叶逆变换?

我只是准时使用数字处理信号,并且知道我需要一个简单的东西。

我在时域中有一个 IFR,幅度和相位是已知的,角频率也是已知的。我的意思是,我只知道:

应用傅里叶逆变换,我得到了我知道是非因果的时域 h(t) 中的 IRF。如何h(t)在 MATLAB 中获得正确的时间轴?

在高级,我感谢任何帮助!

0 投票
0 回答
78 浏览

performance - 真正的 IFFT 过程的这一部分真的是最优的吗?

在计算 (I)FFT 时,可以使用 N 个数据点的普通复数 (I)FFT 来计算“N*2 个实数”数据点。不确定我在这里的术语,但这就是我阅读它所描述的方式。stackoverflow 上已经有几篇关于此的帖子。

当只处理这样的“真实”数据时,这可以加快速度,这在处理例如声音(重新)合成时通常是这种情况。

这种速度的提高被预处理步骤的需要所抵消,不知何故......呃......小提琴?实现这一目标的数据。看,我什至不会试图说服任何我完全理解这一点的人,但由于前面提到的线程,我想出了以下例程,它很好地完成了工作(谢谢!)。

然而,在我的微控制器上,这比我想要的要贵一点,尽管三角函数已经用 LUT 进行了优化。

但例程本身看起来应该可以在数学上进行优化以最小化处理。对我来说,它似乎类似于普通的 2d 旋转。我只是不能完全理解它,但感觉这可以通过更少的三角函数调用和算术运算来完成。

我希望也许其他人可以很容易地看到我没有看到的东西,并提供一些关于如何简化这个数学的见解。

在位反转阶段之前,此特定例程与 IFFT 一起使用。

原始工作代码,如果那是你的毒药: