We were thinking here how to create Hamming-64 window of overlap 64. It is done by
h = hamming(64);
h2 = hamming(38);
h = conv(h, h2);
Now,
Check out this paper on Wigner distribution. From page 8 to 11. I think tfr(indices,icol) = x(ti+tau,1) .* conj(x(ti-tau,xcol));
in the code realize the formula (23). The sum and exponential part is equivalent to tfr= fft(tfr);
. Or you also can regard those two lines of code I cited as formula (24). Note: in both the paper and code they assume the signal is periodic with N/2
, where N
is length(data)
. It's Ok that you don't need to change your data
here. They just sort kinds of extending the original data.
Cited from the paper, Before processing the WDF, a modified Hamming window is applied to the time domain signal to reduce the leakage caused by the discontinuity of the finite record of data, which will be called as data tapering. To my understanding, what you can do here is
data1 = conv(h,data);
[B,T,F] = tfrwv(data1, 1:length(data1), length(data1));
My answer is done based on your implementation. You can have a try now.
What I don't fully understand is the method that you created Hamming-64 window of overlap 60%. In spectrogram
, the code split your data
into small segments with the length of each 64. If you want to achieve the same effect of spectrogram
with tfrwv
, I guess you may also need to split your data
, and use conv(data(1:64),hamming(64))
, conv(data(38:101),hamming(64))
,conv(data(76:139),hamming(64))
,....as the input of tfrwv
respectively.