MATLAB ile zaman ile frekans değişimlerini gözlemlemek amacı ile spectogram fonksiyonu sıklıkla tercih edilmektedir. Bu yazıda kendi spektogram fonksiyonunumuzu oluşturup gösterimini gerçekleştireceğiz. Aşağıda mySpectogram fonksiyonu giriş verisine ait zaman-frekans değişimlerini örnekleme frekansı, FFT boyutu ve örtüşme değerlerine bağlı olarak hesaplamaktadır.
function [oData X Y] = mySpectogram(iData,f_s,FFT_size,FFT_overlap)
FFT_res = f_s / FFT_size;
[X, Y] = meshgrid( 0 : FFT_res : (FFT_size / 2 - 1) * FFT_res,...
((1 - FFT_overlap) * FFT_size : (1 - FFT_overlap) *...
FFT_size : length(iData) - FFT_overlap * FFT_size ) / f_s) ;
n_j = 0;
for n_i = 1 : (1 - FFT_overlap) * FFT_size : length(iData) - FFT_size
n_j = n_j + 1;
Data = iData(n_i : n_i + FFT_size - 1);
oData(n_j, :) = abs(fft(Data, FFT_size));
end
Aşağıda verilen kodda 1 KHz örnekleme frekansında 1 sn’lik 50 Hz frekansında sinüs sinyalinin zaman frekans değişimi gösterilmektedir.

Aşağıda verilen grafiktende görüleceği üzere tüm zaman boyunca 50 Hz’lik bir sinyal mevctur
