Peki o zaman sizin veriniz şu idi. x = [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] Ki bu fonksiyon çok düz, çok tahmin edilebilir birşey. f(x)=x gibi birşey. Bundan daha düzü sabit fonksiyon; f(x)=3 gibi birşey. Dolayısı ile gerçek ses/müzik verisinin sizin verdiğiniz örnekten çok daha düzgün olduğu varsayımı çok anlamlı değil. Ben burada sadece bir sayıyı değiştiriyorum. 5 6 değil de 5 5 yapıyorum. Doğru düzgün bir çıkıntı bile yapmadım. x = [0 1 2 3 4 5 5 7 8 9 10 11 12 13 14 15 16] Sonuca bakalım: yy=(hpfilter(y,1))' 0.6382 3.4494 5.6225 7.0699 8.0814 8.8772 9.5959 10.4987 11.2512 12.0202 12.7214 13.2502 13.7808 14.2371 14.7623 15.2625 15.8813 zz=round(yy.^2/16) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Yakalayabildi mi farkı? Yakalayamadı.
Tabii ki düz. İki veri arası mesafe 1/44100 saniye... "f(x)=x'ten daha düzü sabit fonksiyon" dediğiniz aralığa tüm bass ve midrange frekansları, yani dinlediğiniz parçanın çoğu sığıyor... Elinizdeki veride 6'yi 5 ile değiştirdiğinizde 20KHz civarında küçük bir Spike çıkarmış oluyorsunuz ses dalgasından. Bunun etkisi duyulabilir değil. Fourier transformunu aldığınızda yüksek bir katsayıyla çarpılmış olan benim veri, ve küçük bir katsayıyla çarpılmış duyulma sınırının az üstünde tek bir spike olduğunu görürsünüz.
Siz düz derken yatay oluşu kastediyorsunuz anladığım kadarıyla. Ben fonksiyonun basitliğini ve kolay tahmin edilirliğini kastediyorum. Peki düz yapayım ve olası en düşük değişimi yapacağım. x = [3 3 3 3 3 3 3 3 4 3 3 3 3 3 3 3 3] yy=(hpfilter(y,1))' 7.0014 6.9983 6.9939 6.9883 6.9881 7.0113 7.0879 7.2366 7.3882 7.2366 7.0879 7.0113 6.9881 6.9883 6.9939 6.9983 7.0014 zz=round(yy.^2/16) 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 Bu hpfilter bence sizin yapmasını istediğiniz şeyi yapmıyor. Ekonomik grafiklerdeki hareketli ağırlıklı ortalama tarzı birşey olabilir. Sizin istediğinizin tam tersini yapıyor, pürüzleri yok ediyor. Daha doğrusu, ses verisinin çıkıntılık yapan karakteristik değerlerini pürüz yerine koyup törpülüyor. Siz bunu kullanarak kaybolmuş karakteristikleri yerine koyamazsınız sanırım, olsa olsa mevcut karakteristikleri törpülersiniz.
Yukarıda yazdığım son iki paragrafı tekrar okumanızı öneririm. 3 3 3 3 3 3 3 3 4 3 3 3 3 3 3 3 3 İle 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 arasında duyulabilir bir ses farkı yok... İncelediğimiz asıl şey sayılar değil, duyulabilir ses frekansları.
Şimdi de sıra "duyulabilir"e mi geldi Sabrınıza (ve kendi sabrıma) hayranım. Hiç kasmayalım o zaman. Çünkü bu fonksiyonlarla istediğiniz kadar zımparalayın ses eğrisini, pek de fazla duyan çıkmayacaktır. Testlerimizi işitme engelliler üzerinden yürütürsek işimiz daha da kolay. Matematik, fonksiyonlar, birebirlik falan buraya kadar düşmemeli bence. Öte yandan iddia ediyorum ki, bu ses verisi duyulabilir bir fark yaratır. İnanmayan cool edit pro'da denesin. Salt 3'ler sessizliktir. Arada bir 4 olunca (toplam ölçek 16 olduğu için dikey eksenin 1/16'sı kadar bir değer artışı lazım) acayip de güçlü pat pat pat pat diye bir ses çıkar loop'a sokunca. Size duyulabilir günler diliyorum...
İşi yokuşa sürüyormuşum gibi anladınız, ama değil. Bilakis siz olayı müzik ve frekans boyutundan çıkarıp tamamen sayılara indirgediniz. Ve ısrarla kaybolan veriyi geri alamayız noktasına takıldınız. Farkettiğiniz gibi kaybolan veriyi geri almanın yolu continuity kullanımı. Siz de sürekliliği ani olarak bozup algoritmayı yaniltmaya çalışıyorsunuz, başarıyla. Ancak ses dalgasına tek noktada değişiklik yapmak demek, 20.5 KHz bandında tek bir peak eklemek demek... Bunun da duyulabilir etkisi yok. Fourier transformla aranız nasıl bilmiyorum, ancak yukarıda yazdığım ilgili yeri tam anlamadınız diye tahmin ediyorum... Upuzun bir 3 verisinden sadece bir değeri 4, hatta 16 yapın. Hiç bir fark duymanız mümkün değil. 20.5 KHz duyabiliyorsanız o başka tabii ki. Veriyi loopa sokarsanız iş değişebilir. Çünkü bu sefer düşük şiddette de olsa duyulabilir frekansta (3000Hz) ikincil etkiler oluşur diye tahmin ediyorum. Açıkçası bu yüzden analizin direk ses dalgasi üzerinde değil, Fourier domain'de çalışılması lazım. Bir ses mühendisi bu yazdıklarımızı okusa muhtemelen bir tarafıyla güler... Bir nevi havanda su dövüyoruz, çünkü ikimiz de n'aptığımızı tam olarak bilmiyoruz.
Evet loop olayı değiştiriyor. Gerçi ben tekli çaldığımda da bir pıt duyuyordum. Neyse. Olay o değil. Olay; tam ve kesinlik arayan çerçeveden, önce tahmin/yakınsama, sonra insan algısı boyutuna geldik. Çerçeve değiştirmemiz uygun değildi. Her çerçeve geçişinde o çerçeveyi sonuçlandırıp, "bir de buna bakalım o zaman" dememiz daha iyi olurdu. Konuyla ilgili yeteri kadar konuştuk bence. Konuyu takip edenler de sıkılmıştır zaten. Size iyi günler diliyorum...
Cerceve benim icin her zaman duyulabilir muzikti. Bunun icin kullanilan her turlu matematik tamamen birer arac... Sizin pur matematik tartisiyor oldugunuzun farkinda degildim acikcasi. Bu acidan inatla yazdiginiz seyi reddediyor durumuna dusmus olabilirim gozunuzde. Verinin duyulabilir ses frekanslarina ait oldugu gercegini ihmal edersek yazdigim metotlarin tumu cope gidiyor zaten... Tum tartisma da amacsiz oluyor biraz. Olsun, dusunmek her zaman iyidir.