• Okuduklarımdan, seyrettiklerimden aldığım notlar, izlenimler, incelemeler…

Daha İyi Sayısal Sese Dokunmak

Bir önceki yazımdaki  Chord Mojo 2 incelemesinde geçen, sayısal filtrelerle ilgili “tap” kavramı hakkında, 2018 yılına ait “Tapping Into Better Digital Audio” başlıklı detaylı bir makale okumuştum – başlığa tıklayarak makalenin aslına erişebilirsiniz. Keith Howard tarafından hazırlanan yazıda, Chord Electronics Dijital Tasarım Danışmanı Rob Watts’ın Chord DAC’ların ve özellikle MScaler ürününün arkasındaki plan ve felsefe anlatılıyor. Takip eden paragraflar bu makaleden yaptığım bir çeviridir. Bazı paragraflarda anlamı bozmayacak kısaltmalar veya anlamı güçlendirecek eklemeler yaptım. Şekilleri PDF dokümandan kopyaladığım için biraz kalite düşük oldu, kusura bakmayınız.

Yazının başlığını Türkçe’ye çevirince ufak bir anlam kaybı oluyor. Başlıkta, sayısal filtre tasarımındaki anlamıyla kullanılan İngilizce “tap” kelimesi, Türkçe’de hem “dokunmak”, hem de “musluk” anlamlarına geliyor. Orjinal başlıktaki “tap” kullanımında hem dokunmak, hem de sayısal filtrelerde İngilizce “tap” kavramı anlamına gelecek ufak bir oyun var.

Bu yazıyı sizlerle paylaşma amacım, “evet doğru yol bu” veya bir marka algısı yaratmak değil. Sayısal ses işindeki değişik bir yaklaşıma dikkat çekmek istiyorum. Kişisel yargınızı, her zaman gerçek dinlemelerle, kendi kulaklarınızla edineceğiniz kanı ile vermenizi öneririm. Yazı biraz teknik, ama umarım meraklısı için yararlı olur.

İşin aslı 1948’lere gidiyor. O zaman Columbia Records tarafından ilk LP (plak) tanıtılmıştı. Claude Shannon’un ünlü makalesi “İletişimin Matematiksel Teorisi” (İng. A Mathematical Theory of Communication) yayınlanmış, sinyal örneklemesinin matematiksel temeli ve dolayısıyla sayısal ses anlatılmıştı. Daha önce, bu konuda çalışmalar olsa da her türlü sinyalin sayısallaştırılmasının yolunu Shannon’un makalesi açtı.

1970’lerin başında BBC, vericilerine giden sabit hatları 13bit/32kHz ile sayısallaştırmaya başladı. 70’lerin sonlarında ilk sayısal kayıt cihazları Denon ve Decca gibi firmalar tarafından kullanılmaya başlandı. 1982’de ise CD (Compact Disc) duyuruldu.

Bugüne gelirsek, geleneksel ses endüstrisi yüksek örneklemeli DAC’larda “tap” uzunluğu en fazla birkaç yüzlerle ifade edilen sayısal filtreler kullanıyor. Chord Electronics’in Dijital Tasarım Danışmanı Rob Watts daha farklı bir yoldan gidiyor. Watts’a göre filtre uzunluğu artırıldığında, ses kalitesi de artıyor. Önceki günlük yazısında bu kalite unsurlarının, düşük sinyal doğruluğu, zemin modülasyon gürültüsünde azalma ve geçişlerde (İng. transient) doğruluk olarak belirtimişti. Ancak bir kısıtlama var; daha uzun filtrelerin kullanılabilmesi teknolojideki gelişmelere bağlı.

Watts’ın daha fazla artışın öznel fayda sağlamayacağı kadar uzun bir filtre elde etme arayışı, 2018 Temmuz ayında Londra CamJam fuarında, ilk kez bir milyondan fazla “tap” sayılı sayısal filtrelere sahip bir dijital giriş-çıkış örnekleyicisi olan Chord Electronics M Scaler’ın duyurulmasıyla en son zirvesine ulaştı.  Bu üründe kullanılan doğrusal faz FIR (Sonlu İmpuls Tepkisi) interpolasyon filtresinin katsayısı 1.015.808. Bu sayıyı biraz anlamlandırmak için, çoğu yukarı örnekleme DAC tasarımında, en fazla birkaç yüz tap uzunluğunda filtrelerin kullanıldığını hatırlatayım.

Shannon Örnekleme Teorisi

Watts’ın daha uzun enterpolasyon filtreleri merakını daha iyi anlayabilmek için Shannon’un örnekleme teorisine ve özellikle matematiksel ‘Sinc’ işlevine göz atmak gerekiyor. Sinc(x), Sin(x)/x fonksiyonunun matematiksel kısaltmasıdır ve aşağıdaki gibi bir grafiğe sahiptir.

Şekil 1. Sink(x) fonksiyonunun merkezi kısmı

Grafikte, dikey eksen sinyal genliğidir. Yatay eksenin (“x” ekseni) ‘örnekleme aralıkları’ olarak etiketlenmesinin nedeni ilerideki satırlarda belirginleşecek. Shannon’un ünlü makalesinde gösterdiği şey, maksimum frekansı sınırlı olan herhangi bir analog sinyalin, tam olarak zaman aralıklı Sinc(x) dalga formlarının toplamı olarak tanımlanabileceğiydi. Her örnek, yüksekliği veya genliği, o örnekleme noktasında merkezlenmiş ilişkili Sinc(x) dalga formunun genliğini temsil eder. Diğer tüm örnekleme noktalarında, söz konusu sinc(x) fonksiyonunun değeri sıfırdır, tıpkı birbirlerinin örnekleme noktasında ortalanmış sinc(x) fonksiyonlarının değerinin burada sıfır olması gibi.

Buna ilaveten, dalga formunun en fazla frekans içeriğinin, iki katı ile örnekleyerek sayısala çevirmek, onu yeniden tam bir doğrulukla, kayıpsız olarak sayısaldan analoga çevirmek için gerekli tüm bilgileri teorik olarak sağlar. Analog – sayısal dönüştürme işlemi dediğimiz şey budur. İnsan kulağının ideal ve teorik olarak 0 – 20.000Hz bandını duyduğu kabul edilir. O zaman, Shannon Teorisine göre, seslerin analogran sayısala ve tekrar analoga çevrilebilmesi için örnekleme frekansının en az 40.000Hz olması gerekir. Örneğin CD teknolojisinde, analog ses sinyali saniyede 44.100 defa örneklenir; her bir örnek 16bit uzunluğunda bir sayıya çevrilir. Bunu kısaca 16bit/44.1kHz olarak ifade ederiz. Hepimiz 20kHz duyabilir miyiz? ya da neden 42kHz değil de 44.1kHz konularına burada girmiyorum.

Bu teorinin pratikte uygulaması o kadar da basit değil. Örnekler arasındaki geçiş, gerçek sinyalden saptığı noktada gürültü oluşur (İng. quanization noise). İdeal olarak, her örnekleme noktası için uygun genlikte bir dürtü (İng. impulse) üretilir ve düzenli aralıklı bu dürtülerden oluşan seri, örnekleme hızının yarısına ayarlanmış ideal bir düşük geçişli (yüksek frekansları kesen) filtreden geçirerek elde edilebilir.

Böyle bir filtrenin dürtü (impulse) tepkisi Sinc fonksiyonudur, bu nedenle her impuls, gerekli genlikte bir Sinc dalga formu üretecek ve Sinc fonksiyonlarının treni (dizisi) orijinal dalga formunu yeniden oluşturmak için toplanacaktır.

Şekil 2. Her sinyal örneği için bir tane Sinc(x) fonksiyonunun toplanması ile örnekleme noktaları arasındaki dalga formunu nasıl oluşturur?

Şekil 2’de, farklı genliklere sahip altı ardışık sinc fonksiyonu ve bunların toplamı (siyah iz) gösterilmiştir. Her Sinc fonksiyonu, diğer örnekleme noktalarındaki sinyal genliğine dokunmadan, örnekleme noktaları arasındaki dalga formunun sürekliliğini sağlar. Örnekleme noktaları arasındaki dalga formunun bilinemez olduğu düşünülebilir. Aslında, Shannon örnekleme teorisinin gerektirdiği gibi en yüksek bileşen frekansından en az iki kat daha hızlı örneklenmesi şartıyla, örnekleme noktaları arasındaki dalga formu yeniden yapılandırılabilir. Bu yeniden yapılandırma sadece bitişik numunelerin değerine değil, aynı zamanda numune alınan sinyal boyunca numunelerin modeline de bağlıdır. Bu teorik DAC uygulaması, başlıca iki nedenden dolayı gerçekleştirilemez.

İlk olarak, geçiş bandı kenarı sonsuz yuvarlanma oranına sahip – yani bir basamak gibi dik olan – ideal düşük geçişli filtreler gerçekte mevcut değil. Gerçek dünyada, filtreler her zaman sonlu bir yuvarlanma oranlarına sahip. Dolayısı ile burada bir yuvarlama işlemi söz konusu.

İkincisi, mükemmel bir alçak geçirgen filtre tasarlansa bile, her implus’daki enerjinin düşüklüğü nedeni ile, bu sefer sinyal-gürültü oranı kısıtlamaları ortaya çıkıyor.

Gerçek dünyaya dönersek, DAC tasarımlarında iki taviz söz konusu. İlk olarak, her numunenin genliği bir dürtü olarak değil, tüm örnekleme periyodu boyunca sürdürülen bir basamak olarak temsil edilir.

Bu “örnekle ve tutma’ işlemi, sinyal-gürültü sorununu ortadan kaldırır, ancak frekenas bandının üst kısımına (örnekleme frekansının yarısı) doğru yavaşça yuvarlanan, düz olmayan bir frekans tepkisi ile sonuçlanır. Bunu düzeltmek için eşitlemeye (İng. equalization) başvurulur.

İkinci taviz: alt frekansları ideal şekilde (basamak gibi) geçiren bir filtre mümkün olmadığından, daha yavaş yuvarlanma hızına sahip bir filtre kullanılır. Bu da tam olarak sinc(x) çıktısını vermez ancak bu görmezden gelinen bir durumdur.

Analog çıkış filtresi (veya aşırı örneklenmiş sistemlerde, sayısal  enterpolasyon filtresi), yeterince iyi frekans alanı performansına ulaşırsa yeterli kabul edilir. Yani yeterince düz geçiş bandı tepkisine ve Nyquist frekansının üzerinde görünen görüntü frekanslarının yeterli zayıflamasına ulaşırsa demek isteniyor.

Şekil 3, 44,1kHz verilerin 4 × fazla örneklemek üzere tasarlanan (Parks-McClellan equiripple yöntemi olarak bilinir) örnek bir enterpolasyon filtresinin frekans tepkisini göstermektedir. Bu filtrenin,

  • üst frekansı (İng. passband) 20kHz,
  • salınımı 0,01dB (passband ripple),
  • kesme (İng. stopband) alt frekansı 24kHz ve
  • kesme zayıflatması 100dB’dir.
Şekil 3. Örnek bir 4 × interpolasyon filtresinin frekans yanıtı
Şekil 4. Şekil 3’deki interpolasyon filtresinin impuls tepkisi (kırmızı iz), sinc(x) fonksiyonu üzerine bindirilmiş (mavi iz)

Ortaya çıkan FIR filtresinin 215 katsayısı (tap sayısı) ve doğrusal faz olduğu için zaman-simetrik bir darbe tepkisi vardır. Nyquist frekansındaki (22.05kHz) zayıflama yaklaşık 10dB’dir.  Filtre impuls tepkisi, Şekil 4’te, Şekil 1’in Sinc fonksiyonunu da kaplayarak, ancak filtre katsayılarının sayısını karşılamak için daha geniş bir örnekleme aralığında gösterilmiştir. Şekil 5, Şekil 4’ün verilerini tekrarlar, ancak desibel genlik ölçeğinde temsil edilmiştir. Her iki grafikten de interpolasyon filtresinin – temsili frekans alanı kriterlerini karşılamasına rağmen, sinc(x) fonksiyonundan oldukça farklı bir dürtü tepkisine sahip olduğu açıktır – ve bunun sebebi kısa oluşu değildir.

Şekil 5. Şekil 4’ün tekrarı, ancak bu sefer desibel genlik ölçeği ile

Şekil 5 önemli bir noktayı vurguluyor: eksi sonsuzdan artı sonsuza kadar x’in değerleri için sonlu olarak değerlenen sinc(x) fonksiyonunun zarfının zamanla yavaşça bozunması. Ortadaki zirveden 150 örnekleme aralığında, zarf sadece 50dB’nin biraz üzerinde bozulmuştur. Asıl soru şudur: örnekler arası dalga şekline katkısının önemsiz hale gelmesi için ne kadar zayıflama gerekir?

Bu cevaplanması kolay bir soru değil, ancak 100dB zayıflama ile yola çıkarsak, zarf genliğini, 0dBFS (tam ölçekli) bir örnek için 16 bit gürültü tabanının altına alabilmek için, senkronizasyon işlevinin hangi alıntısının gerekli olduğunu kolayca hesaplayabiliriz.

Senkronizasyon fonksiyonunun zarfı yalnızca sin(x)/x paydası tarafından belirlenir, böylece x = Nπ (radyanlarda açı) 1/x gibi davranır. Burada N, merkezi zirveden uzaktaki örnekleme aralıklarının sayısıdır. Zarfın tepe değerinden 100dB aşağı olması için 1/x = 0.000001, yani N = 31.831’e eşdeğerdir. Bu örnek uzunluğu, merkezi tepenin her iki tarafında da gereklidir, bu nedenle sinc(x) alıntısının toplam uzunluğu bunun iki katıdır. Başka bir deyişle, 44.1kHz örnekleme hızı için gerekli sinc fonksiyon alıntısının toplam uzunluğu 1.443 saniyedir. Bu rakam, Chord M Scaler tarafından sağlanan filtre uzunluğuna oldukça yakındır.

Bu, kısaca, Watts’ın “pencereli-sinc tekniği” olarak bilinen şeyi kullanarak tasarladığı, benzeri görülmemiş derecede uzun enterpolasyon filtreleri arayışını açıklıyor. Önceki paragrafta önerildiği gibi bu, sinc fonksiyonunun merkezinden bir parçanın çıkarılmasını içerir, ancak optimum sonuçlar için bu işlemin, sinc fonksiyon değerlerinin basit bir ‘yükseltilmesinden’ ve geri kalanının kesilmesinden daha nazik bir yaklaşım. Daha iyi sonuçlar için alıntılanan sinc işlevinin pencerelenmesi gerekir. Yani, her iki ucundan ani olarak kesilmesini önlemek için şekillendirilmesi. Watts’ın WTA (Watts’ Time Alignement – Watts Zaman Hizalaması) pencereleme algoritması bir sırdır ve filtre uzunlukları arttıkça rafine edilmesi gerekmiştir. Ancak, adı Watts’ın temel tasarım kriterini göstermektedir: doğru geçici zamanlamanın (İng. transient timing) korunması. Bildiğimiz kadarıyla başka hiçbir tasarımcı Watts’ın yolundan gitmedi. Watts’ın bu yılda on yıllardır yalnız yürüdüğü düşünülürse oldukça zor bir görev.  

Peki, Chord’un dijital ürünlerinin genel olarak olumlu eleştirel aldığı göz önüne alındığında, bu yolu denemek isteyenler nasıl bir rota izleyebilirler?

Öncelikle, Watts’ın yaklaşımının doğru olduğuna ikna olmak gerekiyor. En basit yol, artan filtre uzunluğunu takip ederek Chord ürünlerini dinlemektir. Ancak, bir Chord donanımı koleksiyonu edinmekten daha ucuz veya bir FPGA programlama girişiminden daha kolay bir yol daha var. Bu da sinc interpolasyonunu çevrimdışı, yazılımda gerçekleştirmektir. Yalnız deneyim gösteriyor ki, kısa bir ses dosyası için bile böyle bir program çalıştırmak asırlar alıyor. Çünkü, (U-1) × N2 sin(x) / x değerlerinin hesaplanmasını gerekli. Burada U, yukarı örnekleme (İng. over sampling) faktörü ve N, dosyadaki örneklerin sayısıdır. Bu her kanal içindir.

Ancak, yazarın dediği gibi, kolay, ucuz ve tam sinc interpolasyonu kullanılarak aşırı örneklenmiş bir dosya oluşturmak ve dinlemek mümkün ve bu açıdan M Scaler’dan bile daha iyi. Dosyayı oluşturduktan sonra, farklı tasarımların sonlu uzunluktaki enterpolasyon filtreleri kullanılarak oluşturulan diğerlerinin seçmelerine karşı bir referans olarak kullanılabilir. Bu makalenin yazarı, bir örnek oluşturmak için, kodu bir klavsen üzerinde çalınan tek bir nota içeren kısa (0.98 saniye) mono, 44.1kHz / 16-bit WAV dosyası kullanarak çalıştırmış.  4 × yukarı örnekleme için, işlem (64 bit kayan nokta aritmetiği kullanarak ve 24 bit çıkış WAV dosyası oluşturarak) 295 saniye sürmüş. Bu, gerçek zamanın 300 katı. Tabi, eski bir bilgisayarda, bir tek işlemci çekirdeğinin kullanıldığını belirtelim.

Şekil 6, orijinal dosyanın (kırmızı izleme) ve aşırı örneklenmiş dosyanın (mavi) spektrumunu gösteriyor. Burada, (a) ikisi de geçiş bandında olması gerektiği gibi örtüşüyor ve (b) sinc interpolasyonu gerçekten 22.05kHz’de tuğla duvarlı alçak geçiş filtrelemesi ile sonuçlanıyor. Bu frekansın üzerindeki gürültü zemini, “dither”den kaynaklanıyor.  (Orijinal dosya, spektrumların aynı frekans çözünürlüğüne sahip olduğundan emin olmak için 4096 noktalı bir FFT ve 16.384 noktalı FFT ile enterpolasyonlu dosya kullanılarak analiz edilmiştir.)

Bu makalenin yazarı geçmişte, daha önce hiç yayınlanmasa da ağır sayı hesaplamalarına erişimi olan birinin, geliştirilmiş enterpolasyon filtreleri geliştirebilmesi için, sinc-interpolasyonlu müzik dosyalarının kolayca erişilebilir bir önbelleğini oluşturmak için kullanabileceğini önermiş. Yazar, “bu sizi, Time dergisinin kapağına koydurmaz ama odyofiller nezninde sonsuz bir saygı sağlayabilir” diyor.

Şekil 6. Bir klavsen üzerinde çalınan tek bir notanın kısa bir kaydının spektrumları. Kırmızı iz, 44,1 kHz / 16 bit orijinal dosyaya ait. Mavi iz tam sinc interpolasyonu kullanılarak oluşturulan 4 × yukarı örneklenmiş bir tarama .

Chord Electronics M Scaler

Yazara göre, M Scaler’ın 2018’in en önemli ve muhtemelen tartışmalı ürünlerinden biri. Rob Watts’ın DAC tasarımlarını tercih edenlerin ilgisini çekerken, bir kısımın da reddebileceği bir ürün. Sonuç olarak M Scaler için, Chord Blu MkII yukarı ölçekleyen CD transportunun, yukarı örnekleme teknolojisini alınarak 40.5×235×236mm (hwd) boyutlarında, 2.55kg ağırlığında bir kutuda, yarısından daha düşük bir fiyata paketlenmiş. Sayısal giriş olarak, iki BNC soketli koaksiyel S/PDIF, iki Toslink soketli optik S/PDIF ve çok çeşitli sayısal kaynaklara uyum sağlamak için USB B tipi konnektör. Çıkış ise, BNC ile 352.8/384kHz, optik S/PDIF ile 176.4/192kHz’de veya çift BNC soketi ile 705.6/768kHz’de Qutest, Hugo TT2 veya Dave bağlantısı için. M Scaler içindeki temel bileşen, 740 DSP çekirdeği sağlayan Xilinx XC7A200T FPGA (Sahada Programlanabilir Kapı Dizisi) yongasıdır. Watts’ın en yeni filtre mimarisinde (Hugo TT2’de de kullanılıyor), 4096 × örnekleme frekansında çalışan bu çekirdeklerin 528’ini kullanılıyor, yarım milyon satır kontrol kodu içeriyor ve hesaplamalarda 56 bit çözünürlük kullanılıyor. Giriş ve çıkışın anlık olarak karşılaştırılmasına izin vermek için bir geçiş (İng. pass-through) seçeneği de sağlanıyor ve seviyeleri eşitlemek için kazanç düzeltmesi yapılıyor. [Aşırı örnekleme, 0dBFS’yi (tam ölçek) aşan interpolasyonlu numune değerlerine neden olabilir ve bunları karşılamak için kazanç azalması gerektirebilir.]

512.000 “tap” ile yapılan ilk test, Dave’in 164.000 tap sayısına göre Watts’ın tanımına göre beklenmedik iyileşme sağladı, böylece hedef bir milyondan fazla tap sayısına yükseltildi. 705,6/768kHz çıkış örnekleme hızında (16× 44,1/48kHz) bu, M Scaler giriş ve çıkışı arasında yaklaşık 0,6 saniyelik bir gecikme süresi oluşuyor. Bu gecikme, ses ile videoya eşliğinde kabul edilemez dudak senkronizasyonu sorunlarına neden olacağından, M Scaler, gecikmeyi kabul edilebilir bir 0,1 saniyeye düşüren asimetrik bir enterpolasyon filtresi kullanan bir video girişi sunuyor.

Algılanan ses kalitesi faydaları nelerdir? Watts’a göre, tap sayısı arttırılmış filtenin, iyileştirilmiş yüksek geçiş (İng. transient) pasajlarındaki doğruluğu, enstrümantal tınıyı (İng. timber) daha net hale getiriyor, bası sıkılaştırıyor ve ses sahnesini “dramatik bir şekilde” genişletiyor. Watts’a göre “M Scaler’ı dinledikten sonra, Hugo TT2 veya Dave’e geri dönmek çok zor.” Peki Watts’ın daha fazla tap sayısı ile ilgili yolculuğu bitti mi? Hayır: “İçimdeki his, daha ileri gitmemiz gerektiğini söylüyor” diyor kendisi.

Kaynaklar:

The-theory-behind-M-Scaler-technology.pdf (chordelectronics.co.uk)

Hugo M Scaler – Chord Electronics Ltd

Yorum yapın:

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.