什麼是 ADC(類比數位轉換器)及其工作原理?
重點
- ADC 廣泛用於將聲音和光等類比訊號轉換為可用於各種應用的數位值。
- ADC 的取樣率決定了每秒讀取的讀數數量,較高的取樣率可實現更準確的訊號表示。
- ADC 的位元率會影響所獲得樣本的質量,位數越多,測量就越平滑、越精確。不同類型的 ADC 在速度、精度和功耗方面提供不同的權衡。
類比數位轉換器 (ADC) 對於將現實世界的現象轉換為我們可以在程式設計專案中使用的值非常有用。但是 ADC 如何將類比訊號轉換為我們可以在任何地方使用的數位訊號呢?
ADC 有何用途?
您會發現 ADC 幾乎無所不在。它們在您的手機上,將您的聲音轉換為一串二進位值。它們在您的車內,測量車輪的旋轉。它們位於示波器中,幫助捕捉訊號並表示它們。然而,大多數人使用它們的地方是視訊和音訊世界,其中將光和聲音引入數位空間是至關重要的。
什麼是採樣率?取樣率如何影響 ADC?
ADC 最關鍵的主要指標之一是取樣率:每秒讀取的讀數數量。
非常高階的示波器每秒可能會採集一百億個樣本。勇敢的小型 MCP3008 ADC 可以花費相對適中的 20 萬。在音訊領域,典型的取樣率為每秒 44,100 次 (44.1 kHz)。
我們採集的樣本越多,我們就能更準確地表示訊號。有時,這是必要的;有時,事實並非如此。假設我們正在建造一個帶有數十個電位器的推子組(旨在控制電子設備,就像您在燈光或音訊桌上看到的那樣)。在這種情況下,我們需要測量的值不太可能每秒改變數百萬次,因為我們的手指無法快速移動。我們只需要足夠的樣本即可使結果平滑且響應靈敏。
什麼是比特率?比特率會影響 ADC 的品質嗎?
我們還應該考慮我們獲得的樣本的品質。這很大程度上取決於比特率,比特率告訴我們可以使用多少個開關狀態來數位表示電壓。我們擁有的位數越多,我們可以在任何給定樣本中記錄的可能值就越多,最終結果就越平滑和精確。
我們已經寫過有關二進制及其工作原理的文章,因此如果您不確定,這是一個很好的起點。我們需要多少位?同樣,這取決於我們想要實現的目標。有時,我們可能會受到所使用的協定的限制。例如,MIDI 1.0 協定僅限於七位元(有時是十四位元)值。在其他情況下,限制因素可能是人類的感知。如果增加的保真度沒有對結果產生任何明顯的改善,則可能不值得。
多路復用如何提升 ADC 品質?
ADS1115和MCP3008等流行的 ADC 晶片提供多種輸入。但在幕後,它們實際上只包含一個 ADC。這是可能的,因為這些設備內建了多工器。多工器在電子和電信領域絕對無所不在。它們是數位開關,充當 ADC 的流量控制。ADC 可能會對一個通道進行取樣,然後對下一個通道進行取樣,然後再對下一個通道進行取樣。因此,如果您有 8 個通道且取樣率為 200,000,則可以輪換所有通道,每個通道會擷取 25,000 個樣本。
ADC 有哪些種類?
ADC 的工作方式多種多樣,取決於所需的成本和功能。
快閃記憶體ADC透過非常複雜的分壓器工作。一組電阻器將參考電壓分成多個增量,然後透過一組比較器針對輸入進行測試。快閃 ADC 速度快如閃電,但由於所需比較器的數量,它們在位元深度方面受到限制。出於同樣的原因,他們也渴望權力。
分級ADC試圖透過將工作分配給兩個獨立的單元來彌補這些弱點:一個單元粗略地計算出電壓,第二個單元精確地計算出電壓。透過拆分,我們可以減少比較器的數量。有些分級 ADC 會將工作分為三個階段,並在過程中內建糾錯。
SAR(逐次逼近暫存器)ADC 透過一種二分搜尋來完成工作。假設我們有八位元需要填滿。SAR 將從 10000000 開始,即中間值(00000000 為底部,11111111 為頂部)。如果電壓超過這個中點,SAR 將保持最左邊的數字為 1;如果沒有,SAR 會將最左邊的數字設為 0。我們可以對下一個數字重複這個過程,依此類推。這將導致猜測值逐漸接近實際值:
透過這種方式,我們不斷縮小搜尋範圍,將可能性分成兩半,並詢問結果是否高於或低於中點。在本例中,該值介於 0 到 255 之間;經過幾次迭代後,ADC 計算出它在 77 左右。
Sigma-Delta轉換器可能是最難理解的。它們用於高精度音樂和訊號測量應用。它們的工作原理是對訊號進行過採樣,並使用極其複雜的濾波和數學來細化結果。這個過程有效地降低了取樣率,同時提高了精確度。當雜訊和精度比速度更重要時,這些 ADC 非常有用。
最後,我們有積分 ADC,它甚至比 Σ-Δ ADC 還要慢。它們在電容器的幫助下工作,電容器的充電速率可用於確定輸入電壓。這裡的取樣率通常與電源頻率同步,這可用於將雜訊保持在絕對最小值。
什麼是奈奎斯特-香農理論?
假設我們想要以數位方式描述類比訊號。為此,每個給定循環至少需要兩個點:一個在頂部,一個在底部。因此,我們的取樣頻率必須至少是我們預期測量的最高頻率的兩倍。
這被稱為奈奎斯特頻率,以瑞典裔美國物理學家哈利·奈奎斯特的名字命名。該理論以奈奎斯特和克勞德·香農(傑出數學家和密碼學家)的名字命名,但不是以埃德蒙·惠特克命名,後者在他們之前提出了這個想法。
無論我們相信誰提出了這個理論,它都存在問題。不可能提前知道波形的頂部和底部何時到達。如果我們在輸入波形的中間採樣會怎麼樣?觀察輸入訊號的變化如何使我們捕獲的結果完全變平:
或甚至產生以前不存在的新波形的幻覺:
這些幻覺稱為別名。
別名問題
您可能會熟悉拍攝旋轉物體時有時會出現的「馬車車輪」錯覺。汽車的輪子或直升機的葉片似乎正在向後轉動——只是非常緩慢。在某些情況下,刀片可能會完全停止(坦率地說,結果很奇怪——請查看下面的視頻!)。
在玩較舊的視頻遊戲時,您可能還注意到平行線有時會產生奇怪的扭曲偽影。柵欄、樓梯和條紋毛衣開始看起來確實很奇怪。或者,當您透過品質較差的數位連線聽到某人說話時,有時會聽到奇怪的口哨聲,那又如何呢?這是一種扭曲,而且是一種特殊的扭曲。噪音中出現的那些難看的頻率是怎麼回事?如果您正在聆聽和諧豐富的內容(例如鼓組),效果會更加明顯,尤其是在高端。
如果您了解其中之一的原因,您就可以了解所有這些原因。就馬車車輪而言,固定幀速率意味著我們無法正確捕捉運動。如果某個物體每幀旋轉 350°,那麼很自然地會感覺到它實際上向後移動了 10°。換句話說,沒有足夠的資訊來忠實地反映正在發生的事情。我們採集的樣本與我們想要測量的樣本不一致。
這並不是類比數位轉換特有的問題。在許多情況下,我們將一種數位訊號轉換為另一種數位訊號。
那麼,解決方法是什麼呢?有幾個。我們可以應用特殊的過濾器來處理這些偽影,這就是許多 ADC 的幕後做法。或者,我們可以採集比我們需要的更多的樣本。我們採集的樣本越多,我們對波的圖像就越準確:
更高品質的樣品以獲得最佳結果
如果您覺得這類事情很有趣,那麼好消息是我們剛剛涉足這個主題。這裡有一些深度需要探索:ADC 極其複雜。
但從最終用戶或普通 Arduino 愛好者的角度來看,它們也非常簡單。電壓輸入,數位輸出。因此,無論您想要測量什麼,無論是一塊土壤的水分含量、人聲箱的振動,還是通過鏡頭折射的光子流,很可能都有一個 ADC 可以滿足您的需求。工作。
發佈留言