How to get the time frequency plot using autoregrssive model?

Illustration
Timothy - 2021-01-29T11:02:11+00:00
Question: How to get the time frequency plot using autoregrssive model?

I want to have a time frequency plot using parametric methods, plz anyone help.  

Expert Answer

Profile picture of Kshitij Singh Kshitij Singh answered . 2025-11-20

If you have the Signal Processing Toolbox,  try PYULEAR, PBURG, PCOV, PMCOV. Those will give you a periodogram for a given time slice.
 
You can either call it once per time slice, or if you'd like to do it all in one shot, you can give it a column for each estimate. Something like this pseudo-code:
 
function pburgspectrogram(x, order, nwin, noverlap, nfft, Fs)
%   x        - the input signal
%   order    - the model order
%   nwin     - the number of samples for any one given estimate
%   noverlap - the number of overlapping samples between windows
%   nfft     - how many points you want for the FFT.
%   Fs       - sample rate of signal
nx = length(x);
ncol = fix((nx-noverlap)/(nwin-noverlap));
coloffsets = (0:(ncol-1))*(nwin-noverlap);
rowindices = (1:nwin)';
xin = x(rowindices+coloffsets);
T = (coloffsets+(nwin/2)')/Fs;

[Pxx,F] = pburg(xin,order,nfft,Fs);
imagesc(T, F, 10*log10(abs(Pxx)+eps));
set(gca,'YDir','normal');
xlabel('Time');
ylabel('Frequency');
colorbar;

Example

load mtlb
pburgspectrogram(mtlb, 6, 128, 120, 128, Fs);


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!