Bir bilgisayar mühendisi için programlama dili, öğrendiklerini sınadığı, deneyler yaptığı bir laboratuardır ve mühendisler deneylerini, kestiremedikleri sonuçları gözlemlemek için değil, öngördükleri sonuçları doğrulamak için yapar...

Sinüzoidal Dalgalar Ve Ses Sinyali Üretimi

Sinüzoidal dalga nedir? Bu dalgalar kullanılarak nasıl ses tonu üretilir? DTMF tonları nasıl elde edilir?

Sinüzoidal dalgalar, belli frekanslarla tekrar eden, belli genlikler arasında gidip gelen dalgalardır. Bu dalgalar ile bir ses sinyali oluşturulabilir. Bu sinyal, sahip olduğu her frekans için ayrı bir ses tonu taşır. Örneğin DTMF (Dual Tone, Multi Frequency - Çift Ton, Çoklu Frekans) ses tonları farklı frekanslara sahip iki sinüzoidal dalganın toplanması ile elde edilir.

Sinüzoidal dalgalarla ses sinyali oluşturmak sinüs dalgasını modüle etmeye benzetilebilir. Bir sinüs dalgasının genlik ve frekans değerleri ile değiştirilerek değişik tonlarda sesler elde edilir.

İstenen frekans ve max genlik değerindeki sinüs dalgasını üretecek fonksiyon aşağıdaki gibi yazılabilir:

O(x) = g*sin(x*2*π*f)

Bu fonksiyonun değişkeni xtir. g maximum genlik ve -minimum genlik değerini belirleyen sabittir. (Sinüs fonksiyonunun döndüreceği en büyük değer 1, en küçüğü -1dir. Bu nedenle O(x) fonksiyonunun döndüreceği en büyük değer g en küçüğü -g olur.) f, frekansı belirleyen sabittir. (Üretilecek dalganın frekansı f hertz olur.) x değerleri ise zaman ekseninde birer değer olarak düşünülebilir. Sadece bir tane x değeri ile üretilecek bir tek sonuç tek başına -1 ve 1 arasında bir sayıdır ve anlamsızdır. Dalganın bilgisayar ortamında üretilip saklanabilmesi için örneklenmesi gerekir (Bkz: Ses Sinyallerinin Dijital Ortama Aktarılması).

Örnekleme yapılabilmesi için öncelikle bir örnekleme frekansı seçilmelidir. Eğer direkt g*sin(x*2*Π*f) kullanılarak ses verileri elde edilmek istenirse, bu veriler saniyede sadece 1 kere örneklenmiş sinyale ait veriler olacaktır. Bu durumda sinyalin hiçbir ayrıntısı kayıt altında tutulamaz. Çünkü x*2*Π*f ifadesinde x değerinde meydana gelen +1lik artış, her seferinde 1 dalga boyluk ilerlemeye karşılık gelir. Örnekleme frekansı seçimi ile 1 dalga boyu uzunluğundaki dalganın, toplamda örnekleme frekansı kadar parçaya bölünmesi amaçlanır. Böylece normalde kesiksiz olan sinüzoidal dalga sinyali, belirlenen frekans ile örneklenerek bilgisayar ortamında saklanabilir hale gelir. Sonuçta ulaşmaya çalıştığımız ifade şudur:

O(x) = g*sin(*2*π*f*x/ÖrneklemeFrekansı)

Sinüs fonksiyonuna girecek değer örnekleme frekansına bölünerek ve x değeri örnekleme frekansına eşit olana kadar adım adım arttırılarak 1 saniyelik dalga örneklenmiş olur. Yani 1 saniyede dalgadan, örnekleme frekansı kadar örnek alınır. Burada x değerleri birer tamsayıdır.

Sesin birden fazla frekans taşıması isteniyorsa, farklı iki frekansta iki dalga üretilir ve bu dalgalar toplanır(üst üste bindirilir).

Peki sinüs fonksiyonu yerine cosinüs fonksiyonu kullanılabilir mi? Elbette. Ama cosinüs fonksiyonu kullanılarak üretilecek ses dalgasıyla, sinüs ile üretilecek olanı arasında Π/2 kadarlık faz farkı olur. Çünkü sinüsün aldığı tüm değerleri cosinüs Π/2 kadar sonra alır.

Sinüs ve Cosinüs fonksiyonları arasındaki faz farkı

Örnek

DTMF 1 tonunun örneklerini 44100 örnekleme frekansı ile elde eden VB6 kodu:

Private Sub Tus1Sesi_Click()
    Const OrnekSayisi As Long = 44100
    Dim Katsayi As Single
    Dim SesVerisi(0 To OrnekSayisi-1) As Long
    Dim Ornek As Long
    Dim OrneklemeFrekansi As Long
    OrneklemeFrekansi = 44100
   
    Katsayi = 2 * 3.1415 / OrneklemeFrekansi
   
    For Ornek = 0 To OrnekSayisi-1
        SesVerisi(Ornek) = 6000 * (Sin(697 * Ornek * Katsayi) + Sin(1209 * Ornek * Katsayi))
    Next Ornek
End Sub
Sayfayı
Yayın tarihi: 23 Ekim 2009 Cuma, 17:46
Anahtar kelimeler: sinüzoidal dalgalar, sinüs, ses sinyali

Yorum Gönder

 
Yorumunuzu -1. yoruma yanıt olarak gönderiyorsunuz. Yanıtlamayı iptal etmek için buraya tıklayabilirsiniz.

 

Yorumlar

Onaylanmış yorum bulunmuyor.
 
 
Sayfa 38 sorgu ile 0.004 saniyede oluşturuldu.
Atasoy Blog v4 © 2008-2017 Hüseyin Atasoy