ADC'ler her türlü analog sinyali dijitale dönüştürmek için çok önemlidir, ancak gerçekte nasıl çalışırlar?

Temel Çıkarımlar

  • ADC'ler, ses ve ışık gibi analog sinyalleri çeşitli uygulamalarda kullanılabilecek dijital değerlere dönüştürmek için yaygın olarak kullanılır.
  • Bir ADC'nin örnekleme hızı, saniyede alınan okuma sayısını belirler; daha yüksek örnekleme hızları, daha doğru sinyal temsiline olanak tanır.
  • Bir ADC'nin bit hızı, elde edilen numunenin kalitesini etkiler; daha fazla bit, daha düzgün ve daha hassas ölçümlerle sonuçlanır. Farklı ADC türleri hız, hassasiyet ve güç tüketimi açısından farklı değiş tokuşlar sunar.

Analogdan dijitale dönüştürücüler (ADC'ler), gerçek dünya olaylarını programlama projelerinde kullanabileceğimiz değerlere dönüştürmek için inanılmaz derecede faydalıdır. Peki bir ADC, analog sinyalleri her yerde kullanabileceğimiz dijital sinyallere nasıl dönüştürebilir?

ADC'ler Ne İçin Kullanılır?

ADC'leri hemen hemen her yerde bulacaksınız. Telefonunuzda sesinizi bir dizi ikili değere dönüştürüyorlar. Arabanızda tekerleklerin dönüşünü ölçüyorlar. Osiloskopların içindeler, sinyallerin yakalanmasına ve temsil edilmesine yardımcı oluyorlar. Ancak çoğu insanın bunları kullanacağı yer, ışığın ve sesin dijital alana aktarılmasının esas olduğu video ve ses dünyasıdır.

instagram viewer

Örnekleme Oranı Nedir? Örnekleme Oranı ADC'yi Nasıl Etkiler?

Bir ADC'nin en kritik başlık metriklerinden biri örnekleme hızıdır: her saniyede alınan okuma sayısı.

Çok üst düzey bir osiloskop saniyede on milyar örnek alabilir. Cesur küçük MCP3008 ADC nispeten mütevazı bir iki yüz bin alabilir. Ses dünyasında saniyede 44.100 (44,1 kHz) örnekleme hızı tipiktir.

Ne kadar çok örnek alırsak, bir sinyali o kadar doğru şekilde temsil edebiliriz. Bazen bu çok önemlidir; bazen değil. Diyelim ki birkaç düzine potansiyometre ile bir fader bankası (aydınlatma veya ses masasında görebileceğiniz gibi elektronikleri kontrol etmek için tasarlanmış) oluşturduğumuzu varsayalım. Bu durumda parmaklarımız o kadar hızlı hareket edemediğinden ölçmemiz gereken değerlerin saniyede milyonlarca kez değişmesi pek mümkün değildir. Sonucun düzgün ve duyarlı olması için yeterli sayıda örneğe ihtiyacımız var.

Bit Hızı Nedir? Bit Hızı ADC'nin Kalitesini Etkiler mi?

Aldığımız numunenin kalitesini de düşünmeliyiz. Bu büyük ölçüde bit hızıyla belirlenir; bu bize voltajı dijital olarak temsil etmek için kaç tane açma-kapama durumu kullanabileceğimizi söyler. Ne kadar çok bitimiz varsa, herhangi bir örnekte o kadar fazla olası değer kaydedebiliriz ve nihai sonuç da o kadar düzgün ve kesin olur.

İkili sistem ve nasıl çalıştığı hakkında yazdık, yani emin değilseniz burası başlamak için iyi bir yerdir. Kaç bit'e ihtiyacımız var? Yine, neyi başarmaya çalıştığımıza bağlı. Bazen kullandığımız protokol nedeniyle sınırlı olabiliriz. Örneğin, MIDI 1.0 protokolü yedi bitlik (ve bazen on dört bitlik) değerlerle sınırlıdır. Diğer durumlarda sınırlayıcı faktör insan algısı olabilir. Artan aslına uygunluk sonuçta herhangi bir fark edilebilir iyileşme yaratmıyorsa, buna değmeyebilir.

Çoğullama ADC Kalitesini Nasıl Artırır?

Popüler ADC çipleri gibi ADS1115 ve MCP3008 birçok girdi sunuyor. Ancak kaputun altında aslında yalnızca tek bir ADC içerirler. Bu, bu cihazlara yerleşik çoklayıcılar sayesinde mümkündür. Çoklayıcılar elektronik ve telekomünikasyon dünyasının kesinlikle her yerindedir. ADC'niz için trafik kontrolü görevi gören dijital anahtarlardır. ADC bir kanalı, ardından diğerini ve ardından bir sonrakini örnekleyebilir. Yani, sekiz kanalınız ve 200.000 örnekleme oranınız varsa, kanal başına 25.000 örnek alarak hepsini dönüşümlü olarak kullanabilirsiniz.

Ne Tür ADC Vardır?

ADC'ler, gerekli maliyet ve yeteneklere bağlı olarak çeşitli şekillerde çalışır.

A Flaş ADC'si çok karmaşık bir voltaj bölücü aracılığıyla çalışır. Bir direnç kümesi, referans voltajını artışlara böler ve bunlar daha sonra bir karşılaştırıcı kümesi aracılığıyla girişe karşı test edilir. Flash ADC'ler çok hızlıdır ancak gerekli karşılaştırıcı sayısı nedeniyle bit derinliği söz konusu olduğunda sınırlıdırlar. Onlar da aynı sebepten dolayı güce açlar.

A ADC'nin alt aralıklandırılması işi iki ayrı üniteye bölerek bu zayıflıkları dengelemeyi amaçlıyor: Biri voltajı kabaca hesaplamak için, diğeri ise tam olarak hesaplamak için. Nesneleri bölerek karşılaştırıcıların sayısını azaltabiliriz. Bazı alt aralıklandırma ADC'leri, yol boyunca yerleşik hata düzeltmesi ile işi üç aşamaya böler.

SAR (Ardışık Yaklaşım Kaydı) ADC'ler işlerini bir tür ikili arama. Doldurulacak sekiz bitimiz olduğunu varsayalım. SAR orta değer olan 10000000'den başlayacaktır (00000000 alt ve 11111111 üst). Voltaj bu orta noktayı aşarsa SAR en soldaki rakamı 1 olarak tutacaktır; Aksi takdirde SAR en soldaki rakamı 0'a ayarlayacaktır. İşlemi bir sonraki rakamla tekrarlayabiliriz ve bu şekilde yinelemeli olarak devam edebiliriz. Bu, tahmin edilen değerin kademeli olarak gerçek değere doğru ilerlemesine neden olacaktır:

Bu şekilde sürekli olarak aramayı daraltıyoruz, olasılıkları ikiye bölüyoruz ve sonucun orta noktadan yüksek mi yoksa düşük mü olduğunu soruyoruz. Bu durumda değer 0 ile 255 arasında bir yerdedir; Birkaç tekrardan sonra ADC bunun 77 civarında olduğunu buldu.

Sigma-delta dönüştürücüler muhtemelen anlaşılması en zor olanlardır. Yüksek hassasiyetli müzik ve sinyal ölçüm uygulamaları için kullanılırlar. Bir sinyali aşırı örnekleyerek ve son derece karmaşık filtreleme ve matematik kullanarak sonucu hassaslaştırarak çalışırlar. Bu işlem, hassasiyeti arttırırken örnekleme oranını etkili bir şekilde azaltır. Bu ADC'ler, gürültü ve hassasiyetin hızdan daha önemli olduğu durumlarda mükemmeldir.

Sonunda elimizde ADC'leri entegre etmesigma-delta olanlardan bile daha yavaştırlar. Giriş voltajını belirlemek için şarj oranı kullanılabilen bir kapasitör yardımıyla çalışırlar. Buradaki örnekleme hızı genellikle gürültüyü mutlak minimumda tutmak için kullanılabilen güç kaynağı frekansıyla senkronize edilir.

Nyquist-Shannon Teorisi Nedir?

Diyelim ki analog bir sinyali dijital olarak tanımlamak istiyoruz. Bunu yapmak için her döngüde en az iki noktaya ihtiyacımız var: biri üstte, diğeri altta. Bu nedenle örnekleme frekansımız, ölçmeyi beklediğimiz en yüksek frekansın en az iki katı olmalıdır.

Bu, İsveçli Amerikalı fizikçi Harry Nyquist'ten sonra Nyquist frekansı olarak bilinir. Teori adını Nyquist ve Claude Shannon'dan (önde gelen bir matematikçi ve kriptograf) almıştır, ancak bu fikri onlardan önce ortaya atan Edmund Whittaker'dan almıştır.

Teoriyi kime borçlu olursak olalım, onda bir sorun var. Bir dalga formunun üst ve alt kısmının ne zaman geleceğini önceden bilmek imkansızdır. Örneklerimizi gelen dalga formunun ortasında alırsak ne olur? Gelen sinyaldeki bir değişimin yakaladığımız sonucu nasıl tamamen düzleştirebileceğini gözlemleyin:

Veya daha önce var olmayan yeni dalga formlarının halüsinasyonunu bile görebilirsiniz:

Bu halüsinasyonlar şu şekilde bilinir: takma adlar.

Aliasing Sorunu

Bazen dönen bir nesne filme alındığında oluşan "vagon tekerleği" yanılsamasına muhtemelen aşina olacaksınız. Bir arabanın tekerlekleri ya da bir helikopterin kanatları geriye doğru dönüyormuş gibi görünür, ancak çok yavaş bir şekilde. Bazı durumlarda bıçaklar tamamen durabilir (açıkçası tuhaf sonuçlarla karşılaşabilirsiniz; aşağıdaki videoya göz atın!).

Daha eski bir video oyunu oynarken paralel çizgilerin bazen garip çarpık yapılar ürettiğini de fark etmiş olabilirsiniz. Çitler, merdivenler ve çizgili kazaklar gerçekten çok tuhaf görünmeye başlıyor. Peki ya bazen düşük kaliteli bir dijital bağlantı üzerinden birisinin konuşmasını dinlerken duyduğunuz tuhaf ıslık seslerine ne dersiniz? Bu bir çarpıtma, ama özel bir tür çarpıtma. Gürültüden ortaya çıkan tüm bu çirkin frekanslar da ne? Bateri seti gibi armonik açıdan zengin bir içerik dinliyorsanız, etki özellikle yüksek frekanslarda daha da belirgindir.

Bunlardan birinin nedenini anlarsanız hepsini anlama yolundasınız demektir. Vagon tekerleği durumunda sabit kare hızı, hareketi düzgün şekilde yakalayamadığımız anlamına gelir. Bir şey her karede 350° dönüyorsa, onun gerçekte 10° geriye doğru hareket ettiğini algılamak doğaldır. Başka bir deyişle, olup biteni aslına uygun bir şekilde temsil edecek yeterli bilgi yok. Aldığımız örnekler ölçmeye çalıştığımız şeyle yanlış hizalanmış.

Bu, analog-dijital dönüşüme özgü bir sorun değildir. Bu durumların çoğunda, bir tür dijital sinyali diğerine dönüştürüyoruz.

Peki çözüm nedir? Bir kaç tane var. Bu yapay oluşumlarla başa çıkmak için, birçok ADC'nin gizli olarak yaptığı gibi, özel bir filtre uygulayabiliriz. Veya ihtiyacımızdan çok daha fazla numune alabiliriz. Ne kadar çok örnek alırsak dalga resmimiz o kadar doğru olur:

En İyi Sonuçlar İçin Daha Yüksek Kalitede Örnek

Bu tür şeyleri ilginç buluyorsanız, iyi haber şu ki bu konuya henüz ayak basmadık. Burada incelenecek derinlikler var: ADC'ler son derece karmaşıktır.

Ancak son kullanıcının veya ortalama Arduino meraklısının bakış açısından bunlar da çok basittir. Gerilimler giriyor ve sayılar çıkıyor. Yani, ölçmeye çalıştığınız şey ne olursa olsun; ister bir toprak parçasının nem içeriği, ister bir toprak parçasının salınımları olsun. insan ses kutusu veya bir mercekten geçen foton akışı; bunu yapacak bir ADC'nin olması ihtimali yüksektir. iş.