How can I extract a single component from a Fourier decomposition of a 2D matrix and plot it as a 2D map?
古いコメントを表示
I have a scalar field (potential vorticity PV) on a 2-D square grid (599x599 cells).
I need to do a Fourier decomposition of the field and extract the contribution of the most important components.
Then, I have to plot the map of each component alone.
I would like to know how to extract the single components of the field and plot them as 2D (599x599) maps.
So far:
% Spatial sampling intervals
% (in km per pixel):
dx = 15;
dy = 15;
F1 = fft2(PV); % 2D Fourier Transform of the matrix PV
F2 = fftshift(F1); % zero-frequency component in the middle of the spectrum
imagesc(abs(F2)),colorbar
Not sure what to do after this.. any help would be appreciated!
2 件のコメント
Rick Rosson
2015 年 3 月 24 日
編集済み: Rick Rosson
2015 年 3 月 24 日
It would be helpful if you could provide the spatial sampling intervals in the x- and y directions (in units of distance per pixel, e.g. meters, cm, feet, or inches per pixel). For example:
% Spatial sampling intervals
% (in meters per pixel):
dx = 0.02;
dy = 0.03;
These parameters would allow you to calibrate the spatial frequency in the Fourier domain, which you will need to do to determine which spectral components are most prominent.
Carlo
2015 年 3 月 24 日
回答 (1 件)
Rick Rosson
2015 年 3 月 24 日
編集済み: Rick Rosson
2015 年 3 月 24 日
Here's a start:
[ M, N ] = size(PV);
Fs_x = 1/dx;
Fs_y = 1/dy;
dF_x = Fs_x/M;
dF_y = Fs_y/N;
Fx = -Fs_x/2:dF_x:Fs_x/2-dF_x + mod(M,2)*dF_x/2;
Fy = -Fs_y/2:dF_y:Fs_y/2-dF_y + mod(N,2)*dF_y/2;
F = meshgrid(Fx,Fy);
5 件のコメント
Carlo
2015 年 3 月 25 日
Rick Rosson
2015 年 3 月 26 日
編集済み: Rick Rosson
2015 年 3 月 26 日
F is the matrix of spatial frequencies (in cycles per km). You can easily derive the matrix of wavenumbers as:
K = 2*pi*F;
in radians per km.
Rick Rosson
2015 年 3 月 26 日
編集済み: Rick Rosson
2015 年 3 月 26 日
Slight mistake: meshgrid returns two matrices, one for each spatial direction:
[ Fxx, Fyy ] = meshgrid(Fx,Fy);
Then:
Kxx = 2*pi*Fxx;
Kyy = 2*pi*Fyy;
Carlo
2015 年 3 月 26 日
Rick Rosson
2015 年 3 月 26 日
Yes.
カテゴリ
ヘルプ センター および File Exchange で Spectral Measurements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!