Δ技術(shù)可以用來(lái)實(shí)現(xiàn) ΣΔADC 和 ΣΔDAC ,是高精度、低噪聲 ADC/DAC 的主流技術(shù)。要理解 ΣΔADC 和 ΣΔDAC ,需要按照以下順序來(lái)學(xué)習(xí):
離散ΣΔ調(diào)制器 → ΣΔDAC
離散ΣΔ調(diào)制器 → 模擬ΣΔ調(diào)制器 → ΣΔADC
本文詳細(xì)講解離散ΣΔ調(diào)制器。閱讀后,你就能分析、設(shè)計(jì) ΣΔDAC 。
本文會(huì)先為讀者建立足夠的知識(shí)鋪墊;然后從直觀理解和建模分析的角度講解離散ΣΔ調(diào)制器的原理,包括一階ΣΔ調(diào)制器和高階ΣΔ調(diào)制器;最后用 Python 編寫和評(píng)估一階、二階、三階離散ΣΔ調(diào)制器的性能。
本文涉及離散信號(hào)處理的知識(shí),需要讀者熟悉z變換的一些概念(除非只關(guān)注結(jié)論)。
如果要進(jìn)一步理解 ΣΔADC ,還需要閱讀 (下) 篇,理解模擬ΣΔ調(diào)制器:
ΣΔ(Sigma-Delta)技術(shù)詳解(下):模擬ΣΔ調(diào)制器73 贊同 · 12 評(píng)論文章
目錄
Ⅰ 基礎(chǔ)元件介紹
Ⅱ ADC的信噪比
Ⅲ ADC過(guò)采樣技術(shù)
Ⅳ 二值調(diào)制器
Ⅴ PWM調(diào)制器
Ⅵ 離散Δ調(diào)制器
Ⅶ 離散一階ΣΔ調(diào)制器
Ⅷ 離散高階ΣΔ調(diào)制器
Ⅸ 離散二階、三階ΣΔ調(diào)制器
Ⅹ 各種離散二值調(diào)制器的實(shí)現(xiàn)和評(píng)估
Ⅺ 總結(jié)
附:一階、二階、三階ΣΔ調(diào)制器的Python實(shí)現(xiàn)
Ⅰ 基礎(chǔ)元件介紹
本節(jié)介紹幾個(gè)離散信號(hào)處理中常見(jiàn)的元件,如表1。它們可以用計(jì)算機(jī)算法實(shí)現(xiàn),也可以用數(shù)字電路(比如FPGA)來(lái)實(shí)現(xiàn)。例如,比例器、加法器、減法器可以用組合邏輯來(lái)實(shí)現(xiàn),延遲器可以用D觸發(fā)器來(lái)實(shí)現(xiàn)。
表1中的幾種線性元件不必多說(shuō)。這里我們需要介紹一下這里唯一的非線性元件——量化器。我們知道,對(duì)連續(xù)信號(hào) x(t) 以采樣周期 Ts=1/fs 采樣就能得到離散信號(hào) x[n] :
x[1]=x(Ts),x[2]=x(2Ts),...,x[n]=x(nTs)
把連續(xù)信號(hào)采樣為離散信號(hào)……把連續(xù)信號(hào)采樣為離散信號(hào)(1)
而再對(duì)離散信號(hào)的幅度進(jìn)行量化就能得到數(shù)字信號(hào)。量化器能把取任意實(shí)數(shù)的輸入信號(hào) x[n] 轉(zhuǎn)化為取有限的 q 個(gè)實(shí)數(shù)的輸出信號(hào) y[n] 。
對(duì)于 q=2,3,4,16 的量化器,我們繪制它的輸入 x[n] 和輸出 y[n] 之間函數(shù)圖如圖1??梢钥闯鰍是函數(shù)圖中的“臺(tái)階數(shù)”。
圖1:量化器的函數(shù)圖。其中x軸是量化器的輸入,y軸是量化器的輸出。
量化器能把取值無(wú)限的離散信號(hào)轉(zhuǎn)化為取值有限的數(shù)字信號(hào),因此也稱為理想ADC。比如,理想 10-bit ADC 就是 q=210=1024 的量化器。
之所以要理解量化器,是因?yàn)榈湫偷碾x散ΣΔ調(diào)制器里面會(huì)用到一個(gè)二值量化器,它是 q=2 的量化器,它對(duì)于正數(shù)輸出+1,對(duì)于負(fù)數(shù)輸出-1,可以用比較器來(lái)實(shí)現(xiàn)。
量化器是非線性元件。眾所周知,非線性元件比較難以進(jìn)行分析。所幸我們很多時(shí)候可以把量化器近似為線性元件:
量化器線性近似y[n]=x[n]+e[n]……量化器線性近似(2)
其中量化噪聲:
e[n]=y[n]?x[n]
這看似是個(gè)沒(méi)什么用的循環(huán)定義,不過(guò)有時(shí)候 e[n] 能近似為與 x[n] 無(wú)關(guān)的白噪聲,此時(shí)用線性近似 (2) 就能簡(jiǎn)化分析。
另外,即使當(dāng) x[n] 超出范圍 [?1.0,+1.0] 時(shí), y[n] 也會(huì)限制在 [?1.0,+1.0] 內(nèi),體現(xiàn)出限位器的特性。此時(shí)我們說(shuō)量化器超量程了,此時(shí)量化噪聲 e[n] 會(huì)很大,在設(shè)計(jì)時(shí)要特別注意避免量化器的超量程。
Ⅱ ADC的信噪比
信噪比 (SNR) 是指系統(tǒng)輸入的信號(hào)功率與系統(tǒng)引入的噪聲功率之比,是衡量系統(tǒng)優(yōu)劣的重要參數(shù),越大越好。
下面我們來(lái)分析理想ADC(量化器)的 SNR 。它的噪聲全部來(lái)自量化噪聲 e[n] 。由圖1可知,相鄰兩個(gè)量化值之間相差:
δ=2/(q?1)
理想的相鄰兩個(gè)量化值之差的計(jì)算公式……理想ADC的相鄰兩個(gè)量化值之差δ的計(jì)算公式
在平均情況下,信號(hào)均勻分布在相鄰兩個(gè)量化值之間,根據(jù)均勻分布的方差,可以得出噪聲 e[n] 的功率為:
e2ˉ=δ212=13(q?1)2
理想的平均噪聲功率……理想ADC的平均噪聲功率(4)
我們向理想ADC輸入一個(gè)滿量程的正弦信號(hào):
x[n]=sin(ωt+?)
該正弦信號(hào)的幅度為 [?1.0,+1.0] ,我們可以算出它的平均功率為:
Psin=limN→∞∑n=0Nx[n]2N=0.5
當(dāng)該正弦信號(hào) x[n] 通過(guò)理想 ADC 時(shí),會(huì)疊加量化噪聲 (4) ,得到 SNR :
SNRsin=Psine2ˉ=0.513(q?1)2=32(q?1)2
理想信噪比……理想ADC信噪比
在工程中,我們習(xí)慣用分貝 (dB) 來(lái)表示 SNR :
SNRsin=10log10?(32(q?1)2)(dB)
=10log10?(32)+10log10?((q?1)2)(dB)
≈1.76+20log10?(q?1)(dB)
理想信噪比……理想ADC信噪比(5)
已知 N-bit 理想 ADC 的 q=2N ,代入公式(5)可以得到 N-bit 理想 ADC 的信噪比:
理想信噪比SNRsin≈1.76+6.02N(dB)……理想ADC信噪比(6)
實(shí)際ADC的噪聲來(lái)源不止是量化噪聲,還有電路引起的熱噪聲等,因此實(shí)際 N-bit 的 ADC 的 SNR 一定小于(6)。
為了評(píng)估實(shí)際ADC的優(yōu)劣,我們往往在實(shí)驗(yàn)中用滿量程正弦波輸入實(shí)際ADC,測(cè)出SNR,然后代入(6)反向計(jì)算出N,稱為ADC的有效位(ENOB)。ENOB代表了該ADC在測(cè)量滿量程正弦波時(shí),SNR相當(dāng)于多少bit的理想ADC。
注意:ENOB并不能代表ADC輸入直流時(shí)的分辨率,只能代表交流性能,而ADC的直流分辨率位數(shù)可能大于或小于它的ENOB。這部分內(nèi)容不做贅述。
用公式(6)計(jì)算理想ADC的SNR前,一定要檢查兩個(gè)條件是否滿足:
條件①:ADC未超量程。否則 y[n] 和 x[n] 之差就會(huì)很大,量化噪聲 e[n] 就不能視作均勻分布于相鄰量化值之間,則公式(4)不成立,無(wú)法推導(dǎo)出公式(6) 。
條件②:輸入信號(hào) x[n] 的幅度要遠(yuǎn)大于相鄰兩個(gè)量化值之差 δ 。否則量化噪聲 e[n] 同樣不能視作均勻分布于相鄰量化值之間,公式(4)不成立,無(wú)法推導(dǎo)出公式(6) 。
注意:對(duì)于位數(shù) N 很小的ADC, q 會(huì)很小,δ 會(huì)很大,條件②很容易被違反。其中二值量化器( N=1,q=2,δ=2 )是一個(gè)極端,完全無(wú)法套用公式(6)來(lái)計(jì)算SNR,其SNR會(huì)比公式(6)算出來(lái)的 7.78 dB 小很多。
Ⅲ ADC過(guò)采樣技術(shù)
設(shè)我們有一個(gè)采樣率為 fs 的ADC,然后輸入給該 ADC 一個(gè)帶寬為 fB 的模擬信號(hào)。眾所周知,ADC 的理論帶寬是奈奎斯特帶寬 fs/2 ,也即我們要滿足 fs/2>fB ,才能保證高頻部分不會(huì)混疊到低頻。
除了要保證 fs/2>fB 外,我們還可以使用 ADC過(guò)采樣技術(shù)來(lái)提高SNR。方法是:
選取采樣率更快的 ADC (更大的 fs ),讓 fs/2 遠(yuǎn)大于fB ;
然后在 ADC 后加一個(gè)帶寬為 fB 數(shù)字低通濾波器。
考慮到 ADC 的量化噪聲和熱噪聲往往是白噪聲,均勻分布于奈奎斯特帶寬 [0,fs/2) 內(nèi)。加了數(shù)字低通濾波器后, f∈[0,fB) 內(nèi)的信號(hào)和噪聲被保留, f∈[fB,fs/2) 內(nèi)的噪聲被濾掉。因此噪聲會(huì)降低到原來(lái)的 fs/(2fB) ,SNR 會(huì)提升 fs/(2fB) 倍:
過(guò)采樣原始SNR過(guò)采樣=SNR原始×fs2fB
在分貝標(biāo)度上我們可以得到:
過(guò)采樣原始SNR過(guò)采樣=10log10?(SNR原始×fs2fB)(dB)
原始=SNR原始+10log10?fs2fB(dB)
過(guò)采樣技術(shù)帶來(lái)的信噪比提升……ADC過(guò)采樣技術(shù)帶來(lái)的信噪比提升(7)
這就是ADC的過(guò)采樣技術(shù)。其中我們稱 fs/(2fB) 為過(guò)采樣比。
公式(7)告訴我們,采樣率 fs 每提升10倍,SNR 就提升 10dB;采樣率 fs 每提升4倍,SNR 就提升 6.02dB,也即 ENOB 提升 1bit。
注意公式(7)成立的兩個(gè)條件:
條件①:使用的低通濾波器足夠理想,也即通帶和阻帶間增益足夠陡,阻帶的增益足夠??;
條件②:ADC 的噪聲近似白噪聲。
如果ADC的噪聲偏紅(更多地分布于低頻),由于低通濾波器無(wú)法濾掉這些低頻噪聲,則過(guò)采樣技術(shù)就收效甚微,無(wú)法獲得公式(7)那么多的SNR提升。
反之,若噪聲偏藍(lán)(更多地分布于高頻),過(guò)采樣技術(shù)就能獲得比公式(7)還好的SNR提升,本文要介紹的ΣΔADC 就用了該思路。
作為引子,我們看看對(duì)理想 ADC 使用過(guò)采樣技術(shù)達(dá)到的效果如何。我們把滿幅正弦波 x[n]=sin?(2πn/2048) 輸入不同 q 值的量化器,得到輸出 y[n] 如圖2(上)、量化噪聲 e[n] 如圖2(中)、y[n] 的 262144 個(gè)樣點(diǎn)的頻譜如圖2(下),并計(jì)算 SNR 展示在表2 第一行。
然后我們用過(guò)采樣技術(shù),在頻譜上截取帶寬 f表2 第二行(相當(dāng)于使用了理想低通濾波器)。根據(jù)公式(7)知,這樣可讓 SNR 提升 18dB,然而從表2 知,當(dāng) q 很小時(shí),過(guò)采樣技術(shù)帶來(lái)的 SNR 提升遠(yuǎn)不及 18dB。這是因?yàn)閺?strong>圖2(中)可知,當(dāng)量化不夠“細(xì)膩”,也就是 δ 不顯著小于 x[n] 的幅度時(shí),量化噪聲 e[n] 與 x[n] 呈強(qiáng)相關(guān),不能被近似為白噪聲,而是偏紅,導(dǎo)致過(guò)采樣技術(shù)收效甚微。
圖2:滿幅正弦波輸入理想ADC得到的時(shí)域輸出(上);量化噪聲(中);輸出的頻譜(下)
Ⅳ 二值調(diào)制器
二值調(diào)制器并不是一個(gè)元件,而是泛指一類能把輸入信號(hào)轉(zhuǎn)化為二值信號(hào)的元件。在本文中,二值信號(hào)是指取值僅為 -1.0 或 +1.0 的離散信號(hào),也可以視為1bit數(shù)字信號(hào)。
衡量二值調(diào)制器的性能的方法是看它輸出的二值信號(hào)是否能在頻譜上盡量多的保留其輸入信號(hào)的信息。具體來(lái)說(shuō),我們對(duì)輸入信號(hào)和輸出信號(hào)分別做離散傅里葉變換(FFT),看它們的頻譜在一定帶寬內(nèi)是否相似,越相似越好。
上一節(jié)介紹的二值量化器就是一種二值調(diào)制器,但它的性能并不好,因?yàn)槠湟氲牧炕肼?e[n] 主要分布于低頻(偏紅),和信號(hào)混在同一帶寬內(nèi),用低通濾波器并不能把大多數(shù) e[n] 濾掉。
后文我們會(huì)看到幾種性能更好的二值調(diào)制器(PWM調(diào)制器、Δ調(diào)制器、ΣΔ調(diào)制器)。它們引入的噪聲 e[n] 呈現(xiàn)白色或藍(lán)色,用低通濾波器濾掉大多數(shù)高頻噪聲后,可以獲得較高的 SNR 。
二值調(diào)制器分為兩種:
離散二值調(diào)制器:輸入離散信號(hào),輸出二值離散信號(hào) (1bit數(shù)字信號(hào)) ,可用數(shù)字電路或計(jì)算機(jī)算法來(lái)實(shí)現(xiàn)。本文后文要講的PWM調(diào)制器、離散Δ調(diào)制器、離散ΣΔ調(diào)制器都屬于離散二值調(diào)制器。
模擬二值調(diào)制器:輸入連續(xù)信號(hào),輸出二值離散信號(hào) (1bit數(shù)字信號(hào)) ,可用模數(shù)混合電路來(lái)實(shí)現(xiàn)。(下)篇文章中要講的模擬ΣΔ調(diào)制器就屬于模擬二值調(diào)制器。
如圖3,模擬二值調(diào)制器可以用來(lái)實(shí)現(xiàn)ADC,離散二值化調(diào)制器可以用來(lái)實(shí)現(xiàn)DAC。后級(jí)都加了低通濾波器用來(lái)濾除二值信號(hào)中我們不關(guān)心的高頻噪聲,來(lái)盡量還原原始信號(hào)。
圖3:用二值調(diào)制器實(shí)現(xiàn)ADC和DAC
顯然,二值調(diào)制器的性能是這種 ADC 和 DAC 關(guān)鍵,因?yàn)槿绻嫡{(diào)制器性能差,產(chǎn)生的二值信號(hào)在我們關(guān)心的低頻帶寬內(nèi)混雜了過(guò)多的噪聲,那么即使低通濾波器再理想,也無(wú)法濾掉這種噪聲。
這也是為什么后文要花大篇幅來(lái)分析 離散ΣΔ調(diào)制器 ,掌握了離散ΣΔ調(diào)制器的分析方法,我們才能設(shè)計(jì)出 SNR 足夠高的 ΣΔDAC 。
相反,圖3中的低通濾波器設(shè)計(jì)相對(duì)簡(jiǎn)單,只要滿足通帶和阻帶間增益足夠陡,阻帶的增益足夠小,它就能從二值信號(hào)中盡量濾掉我們不想要的高頻噪聲,保留低頻信號(hào)。濾波器的設(shè)計(jì)是《信號(hào)與系統(tǒng)》和《數(shù)字信號(hào)處理》中的基礎(chǔ)知識(shí),而且 MatLab、Python 中有成熟的濾波器設(shè)計(jì)工具,因此本文不做贅述。
Ⅴ PWM調(diào)制器
PWM調(diào)制器是一種最直觀的二值調(diào)制器。PWM調(diào)制器用直觀的“占空比”法來(lái)產(chǎn)生二值信號(hào) y[n] 。如圖4,它把相鄰 m 個(gè)樣點(diǎn)視作一個(gè)時(shí)間片,在時(shí)間片內(nèi)放置 r 個(gè) +1 和 (m?r) 個(gè) -1 ,因此該時(shí)間片內(nèi)的均值是:
yˉ=1×r+(?1)×(m?r)m=2rm?1
其中 r 是占空比, 1m 是PWM頻率。它們都是算法或數(shù)字電路中可以改變的參數(shù)。通常我們保持 m 固定,通過(guò)改變 r 來(lái)讓 yˉ=x ,也即讓輸出信號(hào)在時(shí)間片內(nèi)的均值等于輸入信號(hào):
yˉ=x
?2rm?1=x
?rm=x+12
圖4:PWM調(diào)制
Ⅵ 離散Δ調(diào)制器
Δ調(diào)制器是另一種二值調(diào)制器,是ΣΔ調(diào)制器的前身。圖6是離散Δ調(diào)制器的系統(tǒng)框圖,其中Δ調(diào)制器只是左半部分,它輸出二值信號(hào)y[n]。右半部分是一個(gè)補(bǔ)償器,它輸出的w[n]不是二值信號(hào)。該補(bǔ)償器的參數(shù)需要根據(jù)積分器的參數(shù)來(lái)設(shè)計(jì)。在現(xiàn)實(shí)應(yīng)用中積分器和補(bǔ)償器是不同的實(shí)現(xiàn),比如模擬Δ調(diào)制器中的積分器是模擬積分器,而補(bǔ)償器是數(shù)字電路實(shí)現(xiàn)。
圖6:離散Δ調(diào)制器的系統(tǒng)框圖
圖7:Δ調(diào)制器在輸入正弦波時(shí)的現(xiàn)象
在后文中,約定小寫字母 (x[n], v[n], y[n]) 代表時(shí)域離散信號(hào),大寫字母 (X, V, Y) 代表對(duì)應(yīng)的 z 變換后的信號(hào)。
我們先進(jìn)行直觀理解:設(shè) x[n] 是正弦信號(hào),得到各個(gè)信號(hào)的波形圖如圖7。可以看到 v[n] 在試圖跟隨 x[n],這是因?yàn)楫?dāng) x[n]>v[n] 時(shí),二值量化器會(huì)輸出 y[n]=+1,而因?yàn)?v[n+1]=αv[n]+ky[n] ,只要 α 不是太小,就能讓 v[n+1]>v[n] ,也就是讓 v[n]增大。同理當(dāng) x[n]
有了直觀理解后,進(jìn)行理論分析,首先我們知道時(shí)域關(guān)系:
v[n+1]=αv[n]+ky[n]……(8)
考慮到 y[n]只取+1 和-1,所以 v[n]能達(dá)到的最高的變化率與 v[n] 的取值有關(guān),為:
|Δv|max=min((α?1)v,(1?α)v)+k……(9)
而滿幅正弦波 x[n]=sin?(2πnf/fs) 的變化率隨著 x[n] 的取值而變化,關(guān)系為:
|Δx|max=2πffscos?(arcsin?x)……(10)
為了讓 v[n] 能跟隨 x[n],必須保證 |Δv|max>|Δx|max ,即:
min((α?1)x,(1?α)x)+k>2πffscos?(arcsin?x)……(11)
解(11)得Δ調(diào)制器必須滿足約束:
k2?(1?α)2>(2πffs)2
調(diào)制器能成功跟隨的條件……Δ調(diào)制器能成功跟隨的條件(12)
下面我們推導(dǎo)Δ調(diào)制器在 z 變換域的傳遞函數(shù),注意我們把二值量化器進(jìn)行了線性近似,E 是它的量化噪聲。 另外,以下公式中的大寫字母都是 z 變換域的復(fù)變函數(shù),比如 Y 應(yīng)寫做 Y(z),這里省略了(z)。
Y=X+E?kz?11?αz?1Y
?Y=1?αz?11?(α?k)z?1(X+E)
調(diào)制器的傳遞函數(shù)……Δ調(diào)制器的傳遞函數(shù)(14)
(14)的傳遞函數(shù)有一個(gè)極點(diǎn) z=α?k ,要讓系統(tǒng)穩(wěn)定,令極點(diǎn)在單位圓內(nèi):
調(diào)制器穩(wěn)定的條件?1<α?k<1???……Δ調(diào)制器穩(wěn)定的條件(15)
從前文的直觀敘述我們知道,二值信號(hào) y[n] 包含 v[n] 的增加/減小信息,當(dāng) x[n] 是直流時(shí),v[n] 在 x[n]上下跳躍,此時(shí) y[n]在+1, -1 間交替,并不包含直流信息。這一點(diǎn)我們也可以從傳遞函數(shù)(14)來(lái)理解,在直流(z → 1)時(shí),由于α一般接近于 1,導(dǎo)致 Y 非常小,說(shuō)明直接使用 y[n] 作為輸出就會(huì)丟失 x[n] 的直流部分,因此對(duì)Δ調(diào)制器來(lái)說(shuō),加入圖6所示的補(bǔ)償器是必須的,該補(bǔ)償器的傳遞函數(shù)為 1?(α?k)z?11?αz?1 ,具有積分的效果,可以從 y[n] 中恢復(fù)出 x[n] 的直流信息。經(jīng)補(bǔ)償后,(14)前面的因子被消掉:
調(diào)制器補(bǔ)償后的傳遞函數(shù)W=X+E……Δ調(diào)制器補(bǔ)償后的傳遞函數(shù)(16)
習(xí)慣上,把傳遞函數(shù)表示成:
W=HxX+HeE
其中 Hx 稱為信號(hào)傳遞函數(shù); He 稱為噪聲傳遞函數(shù)。
我們發(fā)現(xiàn),經(jīng)補(bǔ)償后 Hx=He=1 ,這似乎意味著只要滿足約束條件(12)(15)就能隨意配置參數(shù)α和k,實(shí)則不然,因?yàn)槎盗炕鞯姆蔷€性,實(shí)踐中會(huì)觀察到 α=1 時(shí)量化噪聲 e[n] 近似白噪聲,而 e[n] 越小,e[n]越分布于低頻。因此實(shí)踐中往往令 α=1 ,再在(12)(15)的約束下配置一個(gè)盡量小的 k 。在模擬Δ調(diào)制器設(shè)計(jì)中,由于一些現(xiàn)實(shí)問(wèn)題,比如運(yùn)放開(kāi)環(huán)增益并不是無(wú)窮大,導(dǎo)致積分器緩慢泄漏,即 α 是一個(gè)略小于 1 的值(比如 0.99)都是完全能容忍的。不過(guò) α 不能過(guò)小,否則會(huì)導(dǎo)致低頻噪聲很大。
為了驗(yàn)證以上結(jié)論,我們?cè)?12)(15)的約束下設(shè)計(jì)出七種 α, k 的組合如表3。我們編寫代碼仿真,將正弦波 x[n]=0.9sin(2πn/4096) 輸入這些Δ調(diào)制器,計(jì)算出帶寬 f表3??梢钥闯鲈?α>0.97 時(shí) SNR 都還不錯(cuò),但隨著 α 繼續(xù)減小,SNR會(huì)持續(xù)惡化。
加補(bǔ)償?shù)摩ふ{(diào)制器的傳遞函數(shù)為 W=X+E ??紤]到當(dāng) α 接近 1 時(shí),E 為白噪聲,過(guò)采樣技術(shù)帶來(lái)的 SNR 提升滿足公式(7),即每過(guò)采樣 4 倍,SNR 提升 6.02dB 。注意:Δ調(diào)制器與 1-bit ADC 的區(qū)別就在于 1-bit ADC 的量化噪聲 E 不是白噪聲,導(dǎo)致過(guò)采樣技術(shù)失效;而Δ調(diào)制器不會(huì)使過(guò)采樣技術(shù)失效。
Ⅶ 離散一階ΣΔ調(diào)制器
對(duì)Δ調(diào)制器稍作修改就能得到一階ΣΔ調(diào)制器如圖8,它后面也有一個(gè)補(bǔ)償器(但不是必須的)。為了方便分析,設(shè)積分器無(wú)泄漏(α = 1)。實(shí)際使用中與Δ調(diào)制器同樣, α 不能與 1 相差過(guò)大,否則影響性能。另外,相比于Δ調(diào)制器,反饋回路中多了一個(gè)增益 g ,因此ΣΔ調(diào)制器有兩個(gè)參數(shù):k, g 。
圖8:離散一階ΣΔ調(diào)制器的系統(tǒng)框圖
我們依然先進(jìn)行直觀理解:設(shè) k=0.3, g=1.2 ,分別考察輸入 x[n] 為以下情況時(shí)的現(xiàn)象:
直流輸入 x[n]=0 ,如圖9(左),當(dāng) y[n]=?1 時(shí) u[n]=g ,由于積分器的存在導(dǎo)致 v[n] 上升, 導(dǎo)致二值量化器下次會(huì)輸出 y[n+1]=1 。反之,當(dāng) y[n]=1 時(shí)會(huì)讓 v[n] 下降,導(dǎo)致 y[n+1]=?1 。 總之, y[n] 會(huì)在+1 和-1 上反復(fù)跳躍。
直流輸入 x[n]=0.5 ,如圖9(右) ,當(dāng) y[n]=?1 時(shí) u[n]=0.5+g ,引起的 v[n] 的上升量為 v[n+1]?v[n]=k(g+0.5) ;同理當(dāng) y[n]=1 時(shí)引起的 v[n] 的下降量為 ?v[n+1]+v[n]=k(g?0.5) 。 這說(shuō)明每次 v[n] 上升的更多而下降的更少,最終的效果是 v[n] 在 0 附近跳躍,但需要更多的上升步數(shù) 和更小的下降步數(shù),導(dǎo)致 y[n]=1 的情況更多,y[n]=?1 的情況更少。
直流輸入 x[n]=0.001 ,v[n] 每次的上升量為 k(g+0.001) ;下降量為 k(g?0.001) , 盡管上升量和下降量相差很小,但畢竟有微小區(qū)別,這使得在足夠長(zhǎng)的時(shí)間內(nèi) y[n]=1 的情況略多, y[n]=?1 的情況略少。這說(shuō)明理論上一階ΣΔ調(diào)制器有無(wú)限精確的直流分辨率!這是Δ調(diào)制器不具備的。 不過(guò)這依賴于足夠多的樣點(diǎn)以及后級(jí)數(shù)據(jù)處理手段。
正弦輸入 x[n]=0.9sin?(2πn/64) ,如圖10,可以看到當(dāng) x[n] 較大時(shí) y[n]=1 的情況更多;當(dāng) x[n] 較小時(shí) y[n]=?1 的情況更多。
圖9:一階ΣΔ調(diào)制器在輸入 x[n]=0 (左) 和 x[n]=0.5 (右) 時(shí)的現(xiàn)象
圖10:一階ΣΔ調(diào)制器在輸入正弦波時(shí)的現(xiàn)象
下面我們根據(jù)圖8推導(dǎo)ΣΔ調(diào)制器的傳遞函數(shù),注意二值量化器被進(jìn)行了線性近似,E 是它的量化噪聲:
Y=E+V
?Y=E+k1?z?1U
?Y=E+k1?z?1(X?gz?1Y)
?Y=kX+(1?z?1)E1?(1?gk)z?1
一階調(diào)制器的傳遞函數(shù)……一階ΣΔ調(diào)制器的傳遞函數(shù)(17)
(17)有一個(gè)極點(diǎn) z=1?gk ,要讓系統(tǒng)穩(wěn)定,令極點(diǎn)在單位圓內(nèi):
一階調(diào)制器穩(wěn)定的必要條件0
我們也可以在ΣΔ調(diào)制器后加入補(bǔ)償器。這樣可以消掉(17)的分母:
W=1?(1?gk)z?1kY
?W=1?(1?gk)z?1k×kX+(1?z?1)E1?(1?gk)z?1
?W=X+(1?z?1)kE
一階調(diào)制器補(bǔ)償后的傳遞函數(shù)……一階ΣΔ調(diào)制器補(bǔ)償后的傳遞函數(shù)(18)
實(shí)踐中 gk 并不會(huì)設(shè)的太小,因此(17)中的分母 (1?(1?gk)z?1)?1 幾乎不影響低頻( z→1 )的相移和增益的平坦性,因此ΣΔ調(diào)制器的補(bǔ)償器不是必須的,通常我們省略掉補(bǔ)償器,而不像Δ調(diào)制器必須進(jìn)行補(bǔ)償。
現(xiàn)在假設(shè)我們不加補(bǔ)償,也即直接使用圖8中的 Y 作為輸出。根據(jù)(17),我們可以得出ΣΔ調(diào)制器的信號(hào)增益和噪聲增益:
Hx=k1?(1?gk)z?1
He=(1?z?1)1?(1?gk)z?1
調(diào)制器的信號(hào)傳遞函數(shù)和噪聲傳遞函數(shù)……ΣΔ調(diào)制器的信號(hào)傳遞函數(shù)Hx和噪聲傳遞函數(shù)He(19)
考慮到我們只關(guān)注低頻,也即 z 在單位圓上接近 z=1 的位置,此時(shí)噪聲傳遞函數(shù) He 趨近于一 階無(wú)窮小,這說(shuō)明如果我們關(guān)心的信號(hào) x[n] 分布于低頻,則 ΣΔ 調(diào)制器只會(huì)引入很小的噪聲,SNR很高。
為了直觀說(shuō)明這個(gè)特點(diǎn),我們使用《信號(hào)與系統(tǒng)》中學(xué)過(guò)的頻率響應(yīng)法來(lái)畫出ΣΔ調(diào)制器的噪聲頻譜 (噪聲幅頻特性曲線)。具體方法是:把 z=exp?(j2πf/fs) (z 取單位圓上的點(diǎn))代入(19),繪制 |He| 的函數(shù)圖,得到如圖13中的藍(lán)線,可以看出 |He| 隨著 f 的減小而減小,這說(shuō)明:如果圖8中的二值量化器量化噪聲 E 是白噪聲,則ΣΔ調(diào)制器輸出的噪聲偏藍(lán)。因此只要我們關(guān)注的頻率足夠低,帶內(nèi)噪聲就會(huì)很小,得到的 SNR 也會(huì)非常高。
Ⅷ 離散高階ΣΔ調(diào)制器
將一階ΣΔ調(diào)制器中的減法-積分器結(jié)構(gòu)復(fù)制M份就能得到M階直連型ΣΔ調(diào)制器如圖12。推導(dǎo)其傳遞函數(shù):
Y=E+k1?z?1(?gz?1+k1?z?1(?g2z?1+k1?z?1(...k1?z?1(?gMz?1Y+X))))
?Y=z?1?(1?gk)(gk)M+1z?1?(1?gk)(1?z?1)M+1(kMX+(1?z?1)ME)
階直連型調(diào)制器的傳遞函數(shù)……M階直連型ΣΔ調(diào)制器的傳遞函數(shù)(20)
圖12:離散M階ΣΔ調(diào)制器的系統(tǒng)框圖
現(xiàn)在考察該傳遞函數(shù)(20)的穩(wěn)定性,也就是看左邊的因子項(xiàng)的極點(diǎn)是否都在單位圓內(nèi)。我們利用數(shù)值計(jì)算得到一階到五階的穩(wěn)定條件如表4。注意這是線性系統(tǒng)的穩(wěn)定條件!由于因?yàn)榱炕鞯姆蔷€性,該系統(tǒng)還存在非線性失穩(wěn)的可能,因此表4只是系統(tǒng)穩(wěn)定的必要條件。
然后考察幅頻特性,若我們補(bǔ)償?shù)?20)中左邊的因子,得到信號(hào)傳遞函數(shù) Hx=kM ,噪聲傳遞函數(shù) He=(1?z?1)M 。顯然 He 在 z=1 處有n重零點(diǎn),這意味著當(dāng)頻率很?。?f<圖13??梢钥闯鲈趲?f<0.16fs 內(nèi),階數(shù)越高,帶內(nèi)噪聲一定越小。
圖13:理想ΣΔ調(diào)制器的理論噪聲增益:奈奎斯特帶寬內(nèi)的線性坐標(biāo)(左);低頻內(nèi)的對(duì)數(shù)坐標(biāo)(右)
這看似是個(gè)非常好的結(jié)論,意味著我們只要按圖12的結(jié)構(gòu)堆疊階數(shù),理論上就能在我們關(guān)心的低頻帶寬內(nèi)得到無(wú)限低的噪聲。然而,在階數(shù) M>3 時(shí),量化器的非線性往往會(huì)產(chǎn)生非線性失穩(wěn):我們可以把量化器看作一個(gè)增益元件,當(dāng)量化器的輸入 vM[n] 越大時(shí),增益反而越小,因?yàn)橄到y(tǒng)構(gòu)成環(huán)路,增益過(guò)小會(huì)導(dǎo)致環(huán)路失穩(wěn)。除了非線性失穩(wěn)問(wèn)題,高階情況下各積分器的輸出 vi[n] 的范圍往往不易控制,若不精心設(shè)置系統(tǒng),很可能導(dǎo)致 vi[n] 遠(yuǎn)超出范圍 [-1,+1] ,在實(shí)際電路實(shí)現(xiàn)中,可能超出器件的線性工作區(qū)。
所幸我們有很多辦法來(lái)規(guī)避這些問(wèn)題,讓高階ΣΔ調(diào)制器變得可行:
配置圖12中的增益參數(shù) 。比如增加 g 來(lái)讓環(huán)路有足夠的增益;減小 k 來(lái)控制 vi[n] 的范圍。實(shí)際上各個(gè)積分器的增益 k 可取不同值,反饋路徑的增益 g 也可取不同值,來(lái)達(dá)到更優(yōu)的結(jié)果。本文只考慮它們都相同的情況。
在圖12的基礎(chǔ)上增加新的信號(hào)通路(比如前向通路)來(lái)達(dá)到同樣的目的。
拋棄圖12的積分器高階級(jí)聯(lián)結(jié)構(gòu),而是使用多個(gè)低階ΣΔ調(diào)制器級(jí)聯(lián)來(lái)等效出高階的效果。
方法2和3更復(fù)雜且效果好,被廣泛用在當(dāng)今的ΣΔADC集成芯片中。下文我們僅僅簡(jiǎn)單地用方法1來(lái)讓二階和三階ΣΔ調(diào)制器變得可行。
Ⅸ 離散二階、三階ΣΔ調(diào)制器
根據(jù)圖12,二階ΣΔ調(diào)制器的系統(tǒng)框圖如圖14;三階ΣΔ調(diào)制器的系統(tǒng)框圖如圖15。
圖14:離散二階ΣΔ調(diào)制器的系統(tǒng)框圖
圖15:離散三階ΣΔ調(diào)制器的系統(tǒng)框圖
根據(jù)公式(12)得出,二階ΣΔ調(diào)制器的傳遞函數(shù):
Y=k2X+(1?z?1)2E1?(1?gk)(2+gk?z?1)z?1……(21)
以及三階ΣΔ調(diào)制器的傳遞函數(shù):
Y=k3X+(1?z?1)31?(1?gk)(3+2gk+g2k2?(3+gk)z?1+z?2)z?1……(22)
如表5,筆者用代碼仿真的方法確定了能夠穩(wěn)定,且效果較好的二階ΣΔ調(diào)制器的參數(shù) (M=2, k=0.6, g=1.2),以及較好的三階ΣΔ調(diào)制器的參數(shù) (M=3, k=0.3, g=1.3)。為了幫助直觀理解,我們用該二階和三階ΣΔ調(diào)制器繪制了一段時(shí)域波形如圖16和圖17 。
圖16:二階ΣΔ調(diào)制器在輸入正弦波時(shí)的現(xiàn)象
圖17:三階ΣΔ調(diào)制器在輸入正弦波時(shí)的現(xiàn)象
然后我們考察這些配置下的噪聲傳遞函數(shù)。把我們選擇的一階ΣΔ調(diào)制器的參數(shù) (M=1, k=0.45, g=1.2) 、二階ΣΔ調(diào)制器的參數(shù)(M=2, k=0.6, g=1.2) 、三階ΣΔ調(diào)制器的參數(shù)(M=3, k=0.3, g=1.3) 分別代入 (17)、 (21) 和 (22) 并繪制噪聲傳遞的幅頻曲線 |He| ,如圖18 ,可以看出,階數(shù)越高,噪聲增益越低。
圖18:本文的實(shí)驗(yàn)使用的幾種ΣΔ調(diào)制器配置(見(jiàn)表5)的理論噪聲增益
Ⅹ 各種離散二值調(diào)制器的實(shí)現(xiàn)和評(píng)估
本節(jié)對(duì)幾種離散二值調(diào)制器進(jìn)行評(píng)估。我們用 Python 3 實(shí)現(xiàn)了上文中的二值調(diào)制器(部分代碼見(jiàn)附錄),并找到幾種效果不錯(cuò)的配置如表5。
直觀起見(jiàn),取輸入信號(hào) x[n]=0.9sin(2πn/256) ,繪制各調(diào)制器的輸出如圖19,樣點(diǎn)的數(shù)量為256??梢钥闯觯撼甩ふ{(diào)制器外,其余的調(diào)制器均體現(xiàn)出 x[n] 越大則輸出的均值越大的規(guī)律。而Δ調(diào)制器要經(jīng)補(bǔ)償后才能看出這個(gè)規(guī)律。
圖19:輸入為 x[n]=0.9sin(2πn/256) 時(shí)各個(gè)調(diào)制器產(chǎn)生的輸出
然后取輸入 x[n]=0.9sin?(2πn/2048) 繪制 218 個(gè)點(diǎn)的頻譜如圖20 。可以看出不同的調(diào)制器有不同的底噪,Δ調(diào)制器好于PWM調(diào)制器;ΣΔ調(diào)制器好于Δ調(diào)制器;高階ΣΔ調(diào)制器好于低階ΣΔ調(diào)制器。另外,Δ調(diào)制器的底噪呈現(xiàn)白色,而所有ΣΔ調(diào)制器的底噪都呈現(xiàn)出頻率越低,噪聲越小的現(xiàn)象,這符合之前的理論分析。
圖20:輸入為 x[n]=0.9sin(2πn/2048) 時(shí)各個(gè)調(diào)制器輸出的信號(hào)的頻譜(2^18個(gè)點(diǎn))
最后,取不同的正弦波幅度和頻率,用 220 個(gè)點(diǎn)的頻譜計(jì)算帶寬 f表6。注意:在計(jì)算頻譜和SNR時(shí),為了防止頻譜泄漏,時(shí)間窗口都截取 x[n] 的完整周期,且窗口長(zhǎng)度是周期長(zhǎng)度的2的次冪倍。
Ⅺ 總結(jié)
本文帶讀者“入門”了ΣΔ技術(shù),內(nèi)容包括:
理想ADC的信噪比計(jì)算。
ADC過(guò)采樣技術(shù);以及其在量化階數(shù)q較小時(shí)的局限性——量化噪聲不再是白噪聲,導(dǎo)致過(guò)采樣技術(shù)收效甚微。
離散二值調(diào)制器、模擬二值調(diào)制器的基本概念;以及如何用前者實(shí)現(xiàn)DAC,用后者實(shí)現(xiàn)ADC。
最直觀的二值調(diào)制器——PWM調(diào)制器。
ΣΔ調(diào)制器的前身——Δ調(diào)制器,分析出其量化噪聲呈白噪聲,從而讓過(guò)采樣技術(shù)生效。
一階離散ΣΔ調(diào)制器,分析出其量化噪聲偏藍(lán),從而讓過(guò)采樣技術(shù)獲得奇效。
高階離散ΣΔ調(diào)制器:從z變換的角度解釋階數(shù)高的好處,也指出了高階面臨的穩(wěn)定性問(wèn)題。
比較了離散PWM調(diào)制器、Δ調(diào)制器、離散一二三階ΣΔ調(diào)制器的信噪比。
離散ΣΔ調(diào)制器可以實(shí)現(xiàn)ΣΔDAC。如果對(duì)ΣΔADC的基礎(chǔ)——模擬ΣΔ調(diào)制器感興趣,請(qǐng)閱讀(下)篇:
ΣΔ(Sigma-Delta)技術(shù)詳解(下):模擬ΣΔ調(diào)制器73 贊同 · 12 評(píng)論文章
附:一階、二階、三階ΣΔ調(diào)制器的Python實(shí)現(xiàn)
# -*- coding:utf-8 -*- # python3 # 離散ΣΔ調(diào)制器(一階、二階、三階) import numpy as np import matplotlib.pyplot as plt # 運(yùn)行參數(shù) -------------------------------------------------------------------------------- MARGIN = 16384 # 初始丟棄點(diǎn)數(shù) TIME = 1048576 # 有效點(diǎn)數(shù) PERIOD_X = 2048 # 正弦周期 AMP_X = 0.9 # 正弦幅度 BAND_RATIO = 0.5/240 # 過(guò)采樣比 MODULATORS = [ # 參與評(píng)估的調(diào)制器配置,格式: [ 名稱 , 階數(shù) , k , g ] ------------ ['ΣΔ1' , 1 , 0.5 , 1.2 ] , ['ΣΔ2' , 2 , 0.6 , 1.2 ] , ['ΣΔ3' , 3 , 0.3 , 1.3 ] , ] def sigma_delta_mod(X, M, k, g): # ΣΔ 調(diào)制函數(shù) --------------------------------------- Y = np.zeros(len(X)) # 輸出信號(hào) V = np.zeros([M, len(X)]) # 中間信號(hào) for t in range(len(X)): # 遍歷時(shí)間 V[0][t] = V[0][t-1] + k*(X[t] - Y[t-1]*g**M ) # 積分操作 for m in range(1, M): # 遍歷階數(shù) V[m][t] = V[m][t-1] + k*(V[m-1][t] - Y[t-1]*g**(M-m)) # 積分操作 Y[t] = 1.0 if V[M-1][t] > 0 else -1.0 # 量化操作 return Y if __name__ == '__main__': # 主程序 -------------------------------------------- X = np.sin(np.arange(MARGIN+TIME)*2*np.pi/PERIOD_X) * AMP_X # 構(gòu)造正弦波 for (label, M, k, g) in MODULATORS: Y = sigma_delta_mod(X, M, k, g) # 調(diào)制 Y = Y[MARGIN:] # 丟棄邊界 FFT_A = np.abs(np.fft.fft(Y))[1:int(TIME*BAND_RATIO)] + 10e-8 # 計(jì)算頻譜 FFT_F = np.arange(1,int(TIME*BAND_RATIO)) / TIME # 計(jì)算頻譜橫軸 peak = np.argmax(FFT_A) # 計(jì)算峰值 snr = 1.0/(sum(FFT_A**2)/sum(FFT_A[peak-4:peak+4]**2)-1.0) # 計(jì)算SNR plt.plot(FFT_F, FFT_A, label=label ) print('%s SNR=%.1fdB' % (label, 10*np.log10(snr) ) ) plt.xlabel('Frequency (normalized to sample frequency)') plt.yscale('log') plt.legend() plt.grid(True)
審核編輯 黃宇
-
dac
+關(guān)注
關(guān)注
43文章
2291瀏覽量
190975 -
調(diào)制器
+關(guān)注
關(guān)注
3文章
840瀏覽量
45142
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論