Could anyone post a clearly commented code for implementation of Wigner Ville Distribution on any signal.

5 vues (au cours des 30 derniers jours)
I obtained the following code from net.
It just finds the autocorrelation of a signal and then fourier transforms it.
function(t,f,Wd)=wvd(x,Fs)
%WVD compute discrete wigner-ville distribution
% x - analytic signal
% Fs - sampling frequency
[N, xcol] = size(x);
if N<xcol
x = x.';
N = xcol;
end
WD = zeros(N,N);
t = (1:N)/Fs;
f = (1:N)*Fs/(2*N);
for ti = 1:N
taumax = min([ti-1,N-ti,round(N/2)-1]);
tau = -taumax:taumax;
Rxx(tau-tau(1)+1,ti) = x(ti+tau).*conj(x(ti-tau));
end
WD = 2.*fft(Rxx);
WD = abs(WD);
end
However, the above code did not give satisfactory outputs and also the frequency vector is defined rather than obtaining the information from the signal.
I also tried implementing the discrete form of WVD but couldn’t do so since I dint know how to obtain the frequency vector of the signal and the equation needed this information.

Réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by