elektrik port üyelik servisleri elektrik port üyelik servisleri

MATLAB :
Ses Sinyali Analizi
[Dijital Sinyal İşleme] 1 |
Elektrikport Akademi

Matlab ile Sesimizi analiz edelim.Spektrumla gelen ses sinyali ile birlikte sinyalin dalga boyu ile temel frekansın bir bölümü tahmin edelim ve değerlendirelim.



A- A+
08.12.2012 tarihli yazı 31364 kez okunmuştur.
Amaç:
►Spektrumla gelen konuşma sinyali ile bir kısım temel frekansları tahmin edilebilmeli,
►Konuşma sinyalinin dalga boyu ile temel frekansın bir bölümü tahmin edilebilmeli,
►Bazı temel frekans ve formant(biçimlenmiş) frekans sorunları değerlendirilmelidir.

Taslak :
1.Temel  Frekans Tahmini- Frekans Tanım Aralığı
Tahmini temel frekansın genel sorunu, sinyalin bir bölümünü almak ve tekrarlanan baskın frekansı bulmak.(1) Zorlukla oluşan periyodik olmayan tüm sinyaller,(2) temel frekansı değişebilen periyodik sinyaller, (3) gürültü ile bozulmuş olabilen periyodik diğer temel frekanslar, (4) sinyaller T aralıklı periyotlarla olabileceği gibi 2T, 3T vb. periyodik aralıkta olabilir. Bu yüzden sinyalleri en küçük periyodik aralıklarla veya en yüksek temel frekansla bulmak gerekir,(5) sabit temel frekansların bile sinyalleri farklı aralıklarda değişebilir. Cepstrum uzun,düzgün ve sabit konuşma sinyalleri için tahmini baskın temel frekansı kullanır. Cepstrum, sinyalin logaritmik genlik spektrumu olan Fourier analizidir. Eğer logaritmik genlik spektrumu düzenli aralıklı harmonikler içeriyorsa, o zaman spektrumu Fourier analizli harmonikler arasındaki boşluğa karşılık gelen bir tepe noktası gösterir. Bu da temel frekansı tanımlar. Spektrumun kendisi için periyodiklik aranıyorsa,başka bir sinyali sinyal spektrumu olarak dönüştürülür.Bu spektrumun iç-dış dönüşümü olduğu için Cepstrum diye adlandırılır. Cepstrumun x-ekseni quefrency birimleri vardır ve Cepstrum(spektrum içinde periyotlarda ilişkili olan) zirveleri rahmoninics olarak adlandırılır.Cepstrum gelen temel frekansı tahmin etmek için tipik bir konuşma temel frekansı ile ilgili quefrency bölgelerinin zirvesini arar. Örneğin ;


% get a section of vowel
[x,fs]=wavread('six.wav',[24120 25930]);
ms1=fs/1000;                 % maximum speech Fx at 1000Hz
ms20=fs/50;                  % minimum speech Fx at 50Hz
%
% plot waveform
t=(0:length(x)-1)/fs;        % times of sampling instants
subplot(3,1,1);
plot(t,x);
legend('Waveform');
xlabel('Time (s)');
ylabel('Amplitude');
%
% do fourier transform of windowed signal
Y=fft(x.*hamming(length(x)));
%
% plot spectrum of bottom 5000Hz
hz5000=5000*length(Y)/fs;
f=(0:hz5000)*fs/length(Y);
subplot(3,1,2);
plot(f,20*log10(abs(Y(1:length(f)))+eps));
legend('Spectrum');
xlabel('Frequency (Hz)');
ylabel('Magnitude (dB)');
%
% cepstrum is DFT of log spectrum
C=fft(log(abs(Y)+eps));
%
% plot between 1ms (=1000Hz) and 20ms (=50Hz)
q=(ms1:ms20)/fs;
subplot(3,1,3);
plot(q,abs(C(ms1:ms20)));
legend('Cepstrum');
xlabel('Quefrency (s)');
ylabel('Amplitude');


 

1 ve 20 ms arasında cepstrum içinde tepe dizin aramak ve daha sonra hertzi geri dönüştürmek için kullanın.

[c,fx]=max(abs(C(ms1:ms20)));
fprintf('Fx=%gHz\n',fs/(ms1+fx-1));

Temel frekansın çok hızlı değişmediği zaman Cepstrum en iyi şekilde çalışır.Temel frekans çok yüksek değildir ve zaman zaman gürültü serbesttir. Cepstrumun bir dezavantajı sayısal olarak frekansın pahalı tanım işlemi olmasıdır.
KAYNAK     : Speech Analysis




Aktif etkinlik bulunmamaktadır.
ANKET
Endüstri 4.0 için En Hazır Sektör Hangisidir

Sonuçlar