MATLAB ile Zaman-Frekans Değişiminin Gösterilmesi

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


    

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir