time-frequency representation of a BPSK signal using winger-ville distribution(wvd function in MatLab)
Show older comments
I am trying to generate time-frequency representation of a BPSK signal using winger-ville distribution(wvd function in MatLab) with sampling frequency fs=1000*10^2. But getting the following error:
Requested 26028x13014 (5.0GB) array exceeds maximum array size preference (5.0GB). This might cause MATLAB to become unresponsive.
kMat = complex(zeros(2*nFreq,nhTime,'like',x));
[wvdMat,freqVec] = signalwavelet.internal.wvd.wvdImpl(opts);
[D,F] = computeWVD(opts);
I am not able to understand the issue. Please provide a solution.
Answers (1)
Karan Singh
on 5 Sep 2023
0 votes
Hi Debojit,
From what I understand, you are trying to generate the Wigner-Ville Distribution (WVD) of a BPSK (Binary Phase Shift Keying) signal using the “wvd” function in MATLAB. The sampling frequency of the signal is set to “fs = 1000*10^2” (which is 100,000).
However, while running the code, you encountered an error stating that the requested array size exceeds the maximum array size preference in MATLAB, which is set to 5.0GB. This error message suggests that the size of the output array generated by the “wvd” function is too large to fit within the memory limits.
To resolve this issue, you can try the following solutions:
- 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.
Implementing one or a combination of these solutions should help you address the memory issue you are facing when generating the Wigner-Ville Distribution for your BPSK signal.
Attached below are some documentation links that you may find helpful:
- 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)
Hope this helps!
Categories
Find more on Time-Frequency Analysis in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!