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. DTMF(Dual Tone, Multi Frequency / Çift Ton, Çoklu Frekans) ses tonları da 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. Yapılan şey, normal bir sinüs dalgasının genlik ve frekans değerleri ile oynayarak bu değerleri birer noktada sabitlemektir.
İ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. Buradan haraketle O(x) fonksiyonunun döndüreceği en büyük değer g en küçüğü -g olur.) f ise frekansı belirleyen bir diğer 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 te Π/2 kadar sonra alır.
Aşağıda DTMF 1 tonunun örneklerini 44100 örnekleme frekansı ile elde eden visual basic kodu verilmiştir:
Private Sub Tus1Sesi_Click()
Const Boyut As Long = 44100 - 1
Dim Katsayi As Single
Dim SesVerisi(0 To Boyut) As Long
Dim Ornek As Long
Dim OrneklemeOrani As Long
OrneklemeOrani = 44100
Katsayi = 2 * (22 / 7) / OrneklemeOrani
For Ornek = 0 To Boyut
SesVerisi(Ornek) = 6000 * (Sin(697 * Ornek * Katsayi) + Sin(1209 * Ornek * Katsayi))
Next Ornek
End Sub Okunma Sayısı: 674
Yayınlanma Tarihi: 23 Ekim 2009 Cuma - 17:46
Anahtar Kelimeler: sinüzoidal, dtmf, dual tone, multi frequency, çift ton, çoklu frekans
Onaylı yorum bulunmuyor.
Yorum/Görüş Bildir