% generate a sample signal and draw it in the time-frequency domain samplefreq=100; tstep=1/samplefreq; t=0:tstep:24; x=sin(2*pi*t.*t); %t1=0:tstep:0.5; %t2=0.5+tstep:tstep:1.0; %t=[t1 t2]; %x=[sin(4*2*pi*t1) sin(9*pi*2*t2)]; plot(t,x); n=size(t,2); winsize=32; % Szerokosc okna M=zeros(0); % Nie chcemy problemow w Matlabie window=zeros(0); wt=0:1:winsize-1 h = 0.54-0.46*cos(2*pi*wt/(winsize-1)) % Dla kazdego okna oblicz FFT for i=1:n-winsize window=x(i:i+winsize-1); %Use Hamming window window=window.*h; X=abs(fft(window)); % Spektrum mojego okna M(i,1:winsize/2+1)=X(1:winsize/2+1); % Spektrum dodajemy do mesha. end % No to rysujemy f=samplefreq*(0:winsize/2)/winsize; t=1000*t(1+winsize/2:n-winsize/2); figure; mesh(f,t,M); title('time-frequency analysis of a sample signal'); xlabel('freqency [Hz]'); ylabel('time [ms]'); waitforbuttonpress;