- Decrease the time and frequency resolution: The “WVD” function allows you to specify the time and frequency resolution. By decreasing these parameters, you can reduce the size of the output array. Experiment with different values for the time and frequency resolution to find a balance between accuracy and memory usage.
- Increase the maximum array size preference: If your computer has sufficient memory, you can increase the maximum array size preference in MATLAB. To do this, go to the "Home" tab in MATLAB, click on "Preferences," select "MATLAB," and then choose "General." From there, you can adjust the "Maximum Array Size" preference to a higher value.
- Use a different time-frequency representation: If the above solutions do not work, you can explore other time-frequency representations that may have lower memory requirements compared to the Wigner-Ville Distribution. Some alternatives include the “Short-Time Fourier Transform (STFT)”, “Continuous Wavelet Transform (CWT)”, or the “spectrogram” function in MATLAB.
- Reduce the size of the input signal: If possible, reduce the length of your input BPSK signal before applying the “WVD” function. This will result in a smaller output array and may help avoid exceeding the maximum array size preference.
- Wigner-Ville distribution and smoothed pseudo Wigner-Ville distribution - MATLAB wvd (mathworks.com)
- Maximum Array size limit - MATLAB Answers - MATLAB Central (mathworks.com)
- Short-time Fourier transform - MATLAB stft (mathworks.com)
- Continuous 1-D wavelet transform - MATLAB cwt (mathworks.com)
- Spectrogram using short-time Fourier transform - MATLAB spectrogram (mathworks.com)