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!