Auto Correlation for Time Frequency Analysis
This line seems wrong:

X = signal(X1_signal_indices).*conj(X1conj_signal_indices); 


shouldn't it be

X = signal(X1_signal_indices).*conj(signal(X1conj_signal_indices)); 


??

Note that there is some C code for implementing the WVD and other distributions here.  That code calculates your $R(t,\tau)$ first before convolving various 2D functions with it and then taking the FFT in order to generate the different distributions.