Using Hilbert Transform Code

6 visualizaciones (últimos 30 días)
Joaquin dela Cruz
Joaquin dela Cruz el 15 de Jul. de 2020
Editada: Joaquin dela Cruz el 17 de Jul. de 2020
I am attempting to calculate the hilbert transform of
𝑍(𝜏,𝜔)=1/(1+(𝜏𝜔)^2)
with respect to 𝜔 for various values of 𝜏, using a given code:
function h = hilb1(F, N, b, y)
n = [-N:N-1]'; % Compute the collocation points ...
x = b*tan(pi*(n+1/2)/(2*N));
FF = eval(F); % ... and sample the function.
a = fft(fftshift(FF.*(b-1i*x))); % These three lines compute the
a = exp(-1i*n*pi/(2*N)).*fftshift(a); % expansion coefficients.
a = flipud(1i*(sign(n+1/2).*a))/(2*N);
z = (b+1i*y)./(b-1i*y); % The evaluation of the transform
h = polyval(a,z)./(z.^N.*(b-1i*y)); % reduces to polynomial evaluation
% in the variable z.
with an output in the ranges of: omega_vec = logspace(-4, 4, 81)
A brief explanation of the code can be found here: http://appliedmaths.sun.ac.za/~weideman/research/hilbert.html
However, being new to this area of maths and to Matlab, I do not know where to start.
I understand that I should plug in the above function into F, and used the run function on Matlab to test out other known inputs and values.
However, given the information above I am unsure of what N, b, and y should be? I have experimented with multiple values but most result in some sort of error.
Apologies for what could be an elementary question; I am very much a beginner to both the content and to the code and would greatly appreciate a breakdown of how to approach this task or what the code is even doing.

Respuestas (0)

Productos


Versión

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by