MATLAB:从FFT2频谱获取功率直方图
问题描述:
我想要获得某些图像所有频率的一维功率直方图。我将描述迄今为止我所做的。MATLAB:从FFT2频谱获取功率直方图
- 读取的图像(如果neccessary,转换为灰度)
- 计算FFT2和移位它
- 在傅立叶域,应用一些滤波器
重新转换到空间域和显示(为视觉验证过滤器工作)
FFT2和fftshift新创建的图像(可选,我可以使用前ifft2输入以及)
- 计算功率谱,即,。^ 2所有的傅立叶域值
现在开始棘手的部分。对于功率直方图,我必须得到所有涉及频率的特定频率的所有值。 有了一个连续的信号,我只需要从0到2pi为所有频率进行积分,就是这样。
但我不能整合离散值,至少我认为这是错误的。对于从0到2pi的积分,我不得不总结所有与第0频率有一定距离的值。 我不能那样做,因为那么我必须确定距离中心的距离,因为这些值位于方形矩阵中,所以会失败。 如果我要总结一个有限宽度环的值,那么我必须确保不多次选择某些值。
也许我只是在一个错误的方向思考,因为我相对较新的MATLAB。但是,我怎样才能计算这样的功率直方图?
Phreak
谢谢,我找到了一个在寻找此事。我试图用这个项目来达到我的目的,但是没有成功。我会仔细看看。我有类似的问题,关于所有角度的直方图,即我试着总结第0频率的“楔子”。 – PhreakShow
使用以0频率为中心的坐标创建网格。然后将网格中的X和Y坐标转换为极坐标。使用scatteredInterpolant获取字段,然后在特定的r和theta步骤均匀采样以获得您的直方图。 –