我已经开始(一个小项目)在频域中计算图像的功率谱。
因此,到目前为止,我所拥有的是:
%// close all; clear all; %// not generally appreciated
img = imread('ajw_pic.jpg','jpg'); % it is a color image
img = rgb2gray(img); %// change to gray
psd = 10*log10(abs(fftshift(fft2(img))).^2 );
figure(2); clf
mesh(psd)到目前为止,它看起来很好;我得到了类似于我在各种学术论文中看到的光谱的网格图。
然而,我要找的是功率谱与频率的曲线图,我不完全确定如何获得这个频率矢量。例如,我可以这样做:
N=400; %// the image is 400 x 400
f=-N/2:N/2-1; %// possible frequencies?但我不相信这是完全正确的,因为这会导致负频率。
如果有人能给我指出正确的方向,绘制对数频率与功率谱之间的关系,我将非常感激。
发布于 2013-12-10 07:51:45
fft将信号“分割”成频率“槽”,其中您可以观察到的最大频率是奈奎斯特频率或采样频率的一半。这意味着:
Y = fft(X,N); % (1D case)与Y(1:N/2+1)中的FFT值对应的频率为:
f = [fs/2*linspace(0,1,N/2+1)]; % where fs is your sampling frequencyY的另一半是镜像的,来自傅立叶变换的本质。如果你不想完全理解它,我会说,除了你可以在维基百科上找到的东西之外,没有必要为它而烦恼。但出于好奇心,你可以查看一个很好的直观的正负频率起源的插图:https://dsp.stackexchange.com/questions/431/what-is-the-physical-significance-of-negative-frequencies/449#449。
2D图像情况下的一些关键区别:
使用
f = fs/2 * linspace(-1,1,N) (同样,不要介意负的frequencies)发布于 2016-01-12 07:50:22
要绘制功率谱与图像频率的关系图,可以使用一个称为“径向平均”的过程。这将计算与图像中心有一定径向距离的像素的平均值。将其应用于功率谱密度矩阵,会产生功率与频率的关系曲线图。
有关更多信息和MATLAB示例代码:http://www.mathworks.com/matlabcentral/fileexchange/46468-radialavg-zip/content/radialavg.m
https://stackoverflow.com/questions/20482137
复制相似问题