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.
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