Unphysical oscillation at Fourier transform of spatial weighting function.
3 views (last 30 days)
Show older comments
First of all, thanks for the reply.
In the results of Fourier transform of the spatial weighting function acting as a low pass filter, non-physical oscillation occurs near the origin position.
Anyone know why this is?
my code is as follows.
s= 1.0;
h= 1.5*s;
syms w k x ;
fsw2=(5.0/(8*h)*(1-abs(x/(2*h)))^3*(1+3*abs(x/(2*h))));
fsw4=3.0/(4*h)*(1-abs(x/(2*h)))^5*(1+5*abs(x/(2*h))+8*abs(x/(2*h))*abs(x/(2*h)));
fsw6=55.0/(64*h)*(1-abs(x/(2*h)))^7*(1+7*abs(x/(2*h))+19*abs(x/(2*h))*abs(x/(2*h))+21*abs(x/(2*h))*abs(x/(2*h))*abs(x/(2*h)));
Ffsw2=int(fsw2*exp(-1i*w*x),-2*h,2*h);
Ffsw4=int(fsw4*exp(-1i*w*x),-2*h,2*h);
Ffsw6=int(fsw6*exp(-1i*w*x),-2*h,2*h);
fplot(Ffsw2);
fplot(abs(Ffsw2));
hold on;
fplot(Ffsw4);
fplot(Ffsw6);
0 Comments
Answers (1)
Yash
on 23 Nov 2023
Hello Taesoo,
I understand that the above code is giving non-physical oscillations near the origin position in the Fourier transform of the spatial weighting function, that may be due to Gibbs phenomenon, which is a well-known phenomenon in Fourier analysis. Gibbs phenomenon occurs when a Fourier series or transform of a function with a discontinuity or sharp edge has oscillations that do not decay as the number of terms in the series or transform increases. These oscillations are often visible near the discontinuity or sharp edge.
To reduce the effect of Gibbs phenomenon, you can try using a smoother spatial weighting function that does not have sharp edges or discontinuities. One such function is the Gaussian function, which is commonly used as a low-pass filter in image processing.
Here is a modified scaled down code of how to use the Gaussian function as a spatial weighting function:
% Define the parameters
s = 1.0; % scale factor
h = 1.5*s; % bandwidth
% Define the symbolic variables
syms w k x;
% Define the spatial weighting functions
fsw = exp(-x^2/(2*h^2)); % Gaussian function
% Compute the Fourier transforms of the spatial weighting functions
Ffsw = int(fsw*exp(-1i*w*x), -inf, inf);
% Plot the Fourier transforms
fplot(Ffsw);
fplot(abs(Ffsw));
You can use the above approach of using a smoother spatial weighting functionand apply it in your code to reduce the effect of Gibbs phenomenon.
Hope this helps!
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!