To apply window function on Wigner-Ville Distribution in Matlab

后端 未结 4 1652
长发绾君心
长发绾君心 2021-01-16 23:44

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,

4条回答
  •  野趣味
    野趣味 (楼主)
    2021-01-17 00:28

    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.

提交回复
热议问题