This documentation page applies to an outdated AMT version (1.2.0). Click here for the most recent page.
plot_modspecgram(f,fs); plot_modspecgram(f,fs,...);
plot_modspecgram(f,fs) plot the modulation spectogram of the signal f sampled at a sampling frequency of fs Hz.
C=plot_modspecgram(f,fs, ... ) returns the image to be displayed as a matrix. Use this in conjunction with imwrite etc.
The function takes the following additional arguments
| 'win',g | Use the window g. See the help on gabwin for some possiblities. Default is to use a Gaussian window controlled by the 'thr' or 'wlen' parameters listed below. |
| 'tfr',v | Set the ratio of frequency resolution to time resolution. A value \(v=1\) is the default. Setting \(v>1\) will give better frequency resolution at the expense of a worse time resolution. A value of \(0<v<1\) will do the opposite. |
| 'wlen',s | Window length. Specifies the length of the window measured in samples. See help of PGAUSS on the exact details of the window length. |
| 'image' | Use imagesc to display the spectrogram. This is the default. |
| 'clim',clim | Use a colormap ranging from clim(1) to clim(2). These values are passed to imagesc. See the help on imagesc. |
| 'dynrange',r | Use a colormap in the interval [chigh-r,chigh], where chigh is the highest value in the plot. |
| 'fmax',fmax | Display fmax as the highest frequency. |
| 'mfmax',mfmax | Display mfmax as the highest modulation frequency. |
| 'xres',xres | Approximate number of pixels along x-axis / time. |
| 'yres',yres | Approximate number of pixels along y-axis / frequency |
| 'contour' | Do a contour plot to display the spectrogram. |
| 'surf' | Do a surf plot to display the spectrogram. |
| 'mesh' | Do a mesh plot to display the spectrogram. |
| 'colorbar' | Display the colorbar. This is the default. |
| 'no_colorbar' | Do not display the colorbar. |
| 'interp' | Interpolate the image to get the desired x-resolution. Turn this off by using 'no_interp' |
The parameters 'dynrange' and 'mfmax' may be speficied first on the argument line, in that order.
The first example shows a Modulation spectrogram of modulated wide band noise. The modulation frequency is 50 Hz and the signal is sampled at 44.1 kHz:
fm = 50; % Modulation frequency
l = 2; % Length of the signal in seconds
fs = 44100; % Sampling frequency
t = 0:1/fs:l;
n = length(t);
noise = 1-2*randn(1,n);
modnoise = noise.*(1+cos(2*pi*t*fm));
plot_modspecgram(modnoise,fs,90)
title('Sinusoidally Modulated Noise')
The second example shows a modulation spectrogram of a speech signal sampled at 16 kHz:
plot_modspecgram(greasy,16000,60,500)
title('Greasy')
The third example shows a modulation spectrogram of a modulated sinusoid with a carrier frequency of 5 kHz. FIXME: What is the modulation frequency:
fm = 50; % Modulation frequency l = 2; % Length of the signal in seconds fs = 44100; % Sampling frequency fc = 5000; % Carrier frequency t = 0:1/fs:l; s = sin(2*pi*t*fc); smod = s.*(1+0.5*cos(2*pi*t*fm)); plot_modspecgram(s,fs,50,2*fm,'fmax',2*fc)