MATLAB :
Ses Sinyali Analizi
[Dijital Sinyal İşleme] 3 |
Elektrikport Akademi
Matlab da Formant Frekansının nasıl tahmin edildiğini görelim.
Genellikle Formant frekansı tahmin etmek temel frekansı tahmin etmekten daha zordur.Sorun Formant frekansların vokal bölümünün sistem özellikleri ve ses sinyalinin düzenlenmesinden ziyade sonuçlanmasına ihtiyaç duyulur. Vokal bölümü uyaran spektral şekil,incelenen spektral zarf için güçlü bir etkidir. Öyle ki, ne tüm vokal bölme rezonanslarının gözlemlenen spektral zarf içerisinde piklere neden olacağını ne de spektral zarf içinde ki tüm piklerin vokal bölme rezonansları tarafından neden olacağını garanti edemeyiz.Formant frekans tahmini belli bir kaynak ve filtre ile oluşturulmuşsa burada ki baskın yöntem konuşma sinyali modellemesi üzerine kurulmuştur.
Bu tip analizlere kaynak-filtre ayrımı denir.Formant frekans tahmin durumunda örnek sistem ve rezonans frekansı ilgilendirmektedir. En uygun sistemi bulmak için kullandığımız analiz yöntemine Linear Prediction (doğrusal tahmin) deriz. Linear Prediction modelleri sanki yalnızca tekrarlanan IIR' dan geçirilerek minimum enerjili bir sinyal tarafından oluşturulan sinyallerdir.
Konuşma sinyalinin bir bölümünde en iyi IIR bulmak için LCP kullanarak sonrasında filtrenin frekans yanıtı çizilerek açıklanacaktır.
% get a section of vowel
[x,fs]=wavread('six.wav',[24120 25930]);
% resample to 10,000Hz (optional)
x=resample(x,10000,fs);
fs=10000;
%
% plot waveform
t=(0:length(x)-1)/fs; % times of sampling instants
subplot(2,1,1);
plot(t,x);
legend('Waveform');
xlabel('Time (s)');
ylabel('Amplitude');
%
% get Linear prediction filter
ncoeff=2+fs/1000; % rule of thumb for formant estimation
a=lpc(x,ncoeff);
%
% plot frequency response
[h,f]=freqz(1,a,512,fs);
subplot(2,1,2);
plot(f,20*log10(abs(h)+eps));
legend('LP Filter');
xlabel('Frequency (Hz)');
ylabel('Gain (dB)');

Filtreden formant frekansları bulmak için filtre oluşum rezonanslarının yerini bulmak gerekir. İşte LP filtre tahmin formant frekansları bulmak için kod:
% find frequencies by root-solving
r=roots(a); % find roots of polynomial a
r=r(imag(r)>0.01); % only look for roots >0Hz up to fs/2
ffreq=sort(atan2(imag(r),real(r))*fs/(2*pi));
% convert to Hz and sort
for i=1:length(ffreq)
fprintf('Formant %d Frequency %.1f\n',i,ffreq(i));
end
Bu da çıktıyı üretir.
Formant 1 Frekans 289.2
Formant 2 Frekans 2310,6
Formant 3 Frekans 2770,9
Formant 4 Frekans 3489,9
Formant 5 Frekans 4294,8
-
Dünyanın En Büyük 10 Makinesi
-
2020’nin En İyi 10 Kişisel Robotu
-
Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
-
Üretimin Geleceğinde Etkili Olacak 10 Beceri
-
Olağan Üstü Tasarıma Sahip 5 Köprü
-
Dünyanın En İyi Bilim ve Teknoloji Müzeleri
-
En İyi 5 Tıbbi Robot
-
Dünyanın En Zengin 10 Mühendisi
-
Üretim için 6 Fabrikasyon İşlemi
-
İlginç Robotlar Serisi
-
Siemens Kaçak Akım Koruma Cihazları | RCD, RCCB
-
Siemens 3WL açık tip güç şalterleri ACB
-
Siemens 7KM PAC3100, 3200, 4200 Ölçüm Cihazları Teknik Özellikler
-
Konvertör için SINAMICS V20 / G120 Smart Access Module 2
-
Kurulum ve bağlantı - SINAMICS V20 / G120 Smart Access Module 1
-
Sigma Elektrik Tanıtım Videosu
-
Kaçak Akım Algılamalı Şalterlere Açtırma Bobini Takılması
-
K400 K630 Tip Şalterlere Açtırma Bobini Takılması
-
Kaçak Akım Algılamalı Şalterlere Yardımcı Kontak Takılması
-
Sigma Elektrik Tanıtım Filmi