一種應用於高速ADC的LMS誤差校正系統及方法與流程
2023-05-23 14:35:41 3

本發明涉及一種應用於高速ADC的LMS誤差校正系統及方法。
背景技術:
隨著集成電路工藝的進步,數字自適應校正技術(簡稱LMS)被廣泛的應用於解決ADC中的各類偏差問題,LMS算法是對初始化的濾波器係數依據最小均方誤差準則進行不斷修正來實現的,LMS算法有一個收斂時間,這個時間受到算法步長因子的控制,在一定值範圍內,增大步長因子會減小收斂時間,但是穩定後跟蹤精度較低,反之則調整時間更長,穩定後跟蹤精度更高。
對ADC當中運算放大器的增益誤差校正是LMS算法的一個典型應用。由於運算放大器的增益誤差的校正常常需要千分之一的精度,所以LMS算法的步長因子通常是一個很小的值,比如處於10^-12級別,至少需要41比特小數才能以有符號數的形式表達這個步長因子,因此在具體運算時數據的位寬非常大,難以在高速電路當中進行實現。隨著近年來高速ADC電路的發展,急需一種可以在高速ADC當中實現誤差校正LMS算法的電路及方法。
技術實現要素:
本發明的目的在於克服現有技術的不足,提供一種應用於高速ADC的LMS誤差校正系統及方法。
本發明的目的是通過以下技術方案來實現的:一種應用於高速ADC的LMS誤差校正系統,包括串並轉換電路、並行運算電路和結果生成電路;所述的串並轉換電路的輸出端與並行運算電路連接,並行運算電路的輸出端與結果生成電路連接;串並轉換電路用於將ADC的採樣輸入信號和採樣輸出信號進行串並轉換,得到多路的ADC採樣輸入信號和ADC採樣輸出信號,並行運算電路用於將串並轉換得到的信號進行並行運算,結果生成電路接收並行運算電路的輸出做進一步處理,並實現誤差校正信號的輸出。
所述的並行運算電路包括多個並行運算支路,每個並行運算支路對應於一路ADC採樣輸入信號和ADC採樣輸出信號;每個並行運算支路的輸出端均與結果生成電路連接。
所述並行運算支路包括ADC採樣輸入信號並行輸入端、採樣輸出信號並行輸入端、第一運算輸出端、第二運算輸出端和四個乘法器;
第一乘法器的兩路輸入端分別與ADC採樣輸入信號並行輸入端和採樣輸出信號並行輸入端連接,第一乘法器的輸出端與第三乘法器的一路輸入端連接,第三乘法器的另一路輸入端連接信號u,第三乘法器的輸出端與第一運算輸出端連接;
第二乘法器的兩路輸入端均與採樣輸出信號並行輸入端連接,第二乘法器的輸出端與第四乘法器的一路輸入端連接,第四乘法器的另一路輸入端連接信號u,第四乘法器的輸出端與第二運算輸出端連接。
所述的結果生成電路包括加法器一、加法器二、加法器三、減法器、D觸發器一、D觸發器二、D觸發器三、除法器和第五乘法器;所述加法器一的輸入端分別與每個並行運算支路的第一運算輸出端連接,加法器一的輸出端通過D觸發器一與加法器三的第一路輸入端連接;所述加法器二的輸入端分別與每個並行運算支路的第二運算輸出端連接,加法器二的輸出端與減法器的負輸入端連接,減法器的正輸入端接1*2exp信號,減法器的輸出端與D觸發器二連接,D觸發器二的輸出端與第五乘法器的第一路輸入端連接,第五乘法器的第二路輸入端與D觸發器三的輸出端連接,第五乘法器的輸出端與加法器三的第二路輸入端連接,加法器三的輸出端與除法器連接,該除法器除數固定,除法器輸出端既與D觸發器三輸入端連接,同時也與結果生成電路的輸出端連接,作為最終的LMS誤差校正信號。
所述結果生成電路中,第五乘法器的第二路輸入端輸入的信號w[kM]表示誤差跟蹤信號,由上一次最終輸出的LMS誤差校正信號通過D觸發器三處理得到,。
所述的一種應用於高速ADC的LMS誤差校正系統的校正方法,包括以下步驟:
S1.獲取ADC的採樣輸入信號d[n]和採樣輸出信號x[n];
S2.將信號d[n]和信號x[n]進行串並轉換,並在每個並行運算支路中結合信號u對串並轉換得到的信號進行運算,u代表步長因子科學計數法的有效位,即將LMS運算的步長因子u*2-exp放大2exp倍即可得到u;
S3.將每個並行運算支路中第一運算輸出端的信號相加,得到p_res_sum[kM],將每個並行運算支路的第二輸出端信號相加,並通過減法器處理,得到信號s_res_sum[kM];
S4.將p_res_sum[kM]通過D觸發器一的處理後得到信號P1;將s_res_sum[kM]通過D觸發器二處理後,與w[kM]相乘得到信號P2,將信號P1與信號P2相加,由於在生成s_res_sum[kM]和p_res_sum[kM]的運算中,步長因子均被放大2exp倍,所以得到最終輸出的LMS誤差校正信號也被放大2exp倍,即輸出結果為w[(k+1)M]*2exp:
w[(k+1)M]*2exp=w[kM]*s_res_sum[kM]+p_res_sum[kM];
S5.將加法器三的結果w[(k+1)M]*2exp通過右移的方式進行除法運算後,得到最終輸出信號w[(k+1)M]。
所述的步驟S2包括以下子步驟:
S21.將信號d[n]進行串並轉換,得到d[kM]、d[kM+1]、….d[kM+m]…d[kM+M-1];其中m為0到M-1之間的整數,M表示串並轉換得到的信號個數,即並行運算的支路個數;
S22.將信號x[n]進行串並轉換,得到x[kM]、x[kM+1]、….x[kM+m]…x[kM+M-1];其中m為0到M-1之間的整數,M表示串並轉換得到的信號個數,即並行運算的支路個數;
S23.在並行運算電路的每個支路中,結合信號u對串並轉換得到的信號進行運算,從每個並行運算支路的第一運算輸出端和第二運算輸出端輸出運算結果,其中u代表步長因子科學計數法的有效位,實現將LMS運算的步長因子u*2-exp放大2exp倍,-exp為冪指數。
所述的步驟S3包括以下子步驟:
S31.將每個並行運算支路中第一運算輸出端的信號通過第一加法器相加,得到p_res_sum[kM],由於在並行運算支路中採用步長因子科學計數法的有效位u進行運算,故LMS運算的步長因子u*2-exp實際上被放大了2exp倍,只有有效位u參與運算,得到的信號實際上放大了2exp倍:
<![CDATA[ p _ r e s _ s u m k M = u M * Σ m = 0 m = M - 1 d k M + m * x k M + m ; ]]>
S32.將每個並行運算支路的第二輸出端信號通過第二加法器相加,得到的信號同樣放大了2exp倍,並通過減法器運算,由於減數被放大2exp倍,因此被減數也需要放大同樣倍數,因此需要用1*2exp減去相加得到的信號,獲得s_res_sum[kM]::
<![CDATA[ s _ r e s _ s u m k M = 1 * 2 exp - u M * Σ m = 0 m = M - 1 x 2 k M + m . ]]>
所述的w[kM]由上一次最終輸出的LMS誤差校正信號w[(k+1)M]通過D觸發器三處理得到。
進一步地,在公式w[(k+1)M]*2exp=w[kM]*s_res_sum[kM]+p_res_sum[kM]中,實際上運算放大結果擴大了2exp倍;本申請中最終的輸出結果需要除以2exp,或者通過乘以2-exp,通過右移以抵消這种放大。
本發明的有益效果是:本發明先通過串並轉換電路進行轉換,再通過並行運算電路及結果生成電路進行計算,所有變量的數據率都比原始輸入數據率降低了M倍,同時並行運算電路可根據電路的實現速度進行相應的流水線運算,從而避免了運算量最大的這一部分成為制約系統實現速度的瓶頸。
附圖說明
圖1為LMS算法校正ADC電路運放增益的應用框圖;
圖2為本發明的原理框圖;
圖3為並行運算電路及結果生成電路的具體電路圖。
具體實施方式
下面結合附圖進一步詳細描述本發明的技術方案,但本發明的保護範圍不局限於以下所述。
如圖1所示,使用LMS算法校正ADC電路運放增益的應用框圖,通過在ADC的輸入端加入確知的信號d[n],再將ADC的輸出x[n]與d[n]進行相關運算,可以計算出圖中的opamp_gain值,即運放增益。
如圖2所示,一種應用於高速ADC的LMS誤差校正系統,包括串並轉換電路、並行運算電路和結果生成電路;所述的串並轉換電路的輸出端與並行運算電路連接,結果生成電路的輸出端與並行運算電路連接;串並轉換電路用於將ADC的輸入採樣信號和採樣輸出信號進行串並轉換,得到多路的ADC採樣輸入信號和ADC採樣輸出信號,並行運算電路用於將串並轉換得到的信號進行並行運算,結果生成電路接收並行運算電路的輸出做進一步處理,並實現誤差校正信號的輸出。
本申請中由於高速ADC電路的數據率通常為幾百MHz甚至GHz以上,LMS算法當中大量高位寬的數據運算無法直接實現如此之高的數據吞吐率,所以必須引入串並轉換電路,將輸入數據率降低。
如圖3所示,所述的並行運算電路包括多個並行運算支路,每個並行運算支路對應於一路ADC採樣輸入信號和ADC採樣輸出信號;每個並行運算支路的輸出端均與結果生成電路連接。
所述並行運算支路包括ADC採樣輸入信號並行輸入端、採樣輸出信號並行輸入端、第一運算輸出端、第二運算輸出端和四個乘法器;
第一乘法器的兩路輸入端分別與ADC採樣輸入信號並行輸入端和採樣輸出信號並行輸入端連接,第一乘法器的輸出端與第三乘法器的一路輸入端連接,第三乘法器的另一路輸入端連接信號u,第三乘法器的輸出端與第一運算輸出端連接;
第二乘法器的兩路輸入端均與採樣輸出信號並行輸入端連接,第二乘法器的輸出端與第四乘法器的一路輸入端連接,第四乘法器的另一路輸入端連接信號u,第四乘法器的輸出端與第二運算輸出端連接。
所述的結果生成電路包括加法器一、加法器二、加法器三、減法器、D觸發器一、D觸發器二、D觸發器三、除法器和第五乘法器;所述加法器一的輸入端分別與每個並行運算支路的第一運算輸出端連接,加法器一的輸出端通過D觸發器一與加法器三的第一路輸入端連接;所述加法器二的輸入端分別與每個並行運算支路的第二運算輸出端連接,加法器二的輸出端與減法器的負輸入端連接,減法器的正輸入端接1*2exp信號,減法器的輸出端與D觸發器二連接,D觸發器二的輸出端與第五乘法器的第一路輸入端連接,第五乘法器的第二路輸入端與D觸發器三的輸出端連接,乘法器的輸出端與加法器三的第二路輸入端連接,加法器三的輸出端與除法器連接,該除法器除數固定(除數為2exp),除法器輸出端既與D觸發器三輸入端連接,同時也與結果生成電路的輸出端連接,作為最終的LMS誤差校正信號。
從圖3可以看出,每一個並行運算支路分別計算當前輸入所對應的p_res變量和s_res變量,並行運算支路的輸入數據率為原始數據率的M分之一,所以p_res變量和s_res變量的運算速度可以大幅度降低,方便電路實現。
所述結果生成電路中,第五乘法器的第二路輸入端輸入的信號w[kM]由上一次最終輸出的LMS誤差校正信號通過D觸發器三處理得到。
所述的一種應用於高速ADC的LMS誤差校正系統的校正方法,包括以下步驟:
S1.獲取ADC的採樣輸入信號d[n]和採樣輸出信號x[n];
S2.將信號d[n]和信號x[n]進行串並轉換,並在每個並行運算支路中結合信號u對串並轉換得到的信號進行運算,u代表步長因子科學計數法的有效位,即將LMS運算的步長因子u*2-exp放大2exp倍即可得到u;
S3.將每個並行運算支路中第一運算輸出端的信號相加,得到p_res_sum[kM],將每個並行運算支路的第二輸出端信號相加,並通過減法器處理,得到信號s_res_sum[kM];
S4.將p_res_sum[kM]通過D觸發器一的處理後得到信號P1;將s_res_sum[kM]通過D觸發器二處理後,與w[kM]相乘得到信號P2,將信號P1與信號P2相加,由於在生成s_res_sum[kM]和p_res_sum[kM]的運算中,步長因子均被放大2exp倍,所以得到最終輸出的LMS誤差校正信號也被放大2exp倍,即輸出結果為w[(k+1)M]*2exp:
w[(k+1)M]*2exp=w[kM]*s_res_sum[kM]+p_res_sum[kM];
S5.將加法器三的結果w[(k+1)M]*2exp通過右移的方式進行除法運算後,得到最終輸出信號w[(k+1)M]。
其中s_res_sum[kM]和p_res_sum[kM]與w[kM]無關,可根據輸入數據提前進行獨立運算,即通過並行運算支路結合結果生成電路中的加法器實現。
所述的步驟S2包括以下子步驟:
S21.將信號d[n]進行串並轉換,得到d[kM]、d[kM+1]、….d[kM+m]…d[kM+M-1];其中m為0到M-1之間的整數,M表示串並轉換得到的信號個數,即並行運算的支路個數;
S22.將信號x[n]進行串並轉換,得到x[kM]、x[kM+1]、….x[kM+m]…x[kM+M-1];其中m為0到M-1之間的整數,M表示串並轉換得到的信號個數,即並行運算的支路個數;S23.在並行運算電路的每個支路中,結合信號u對串並轉換得到的信號進行運算,從每個並行運算支路的第一運算輸出端和第二運算輸出端輸出運算結果;其中u代表步長因子科學計數法的有效位,實現將LMS運算的步長因子u*2-exp放大2exp倍,-exp為冪指數。
所述的步驟S3包括以下子步驟:
S31.將每個並行運算支路中第一運算輸出端的信號通過第一加法器相加,得到p_res_sum[kM],由於在並行運算支路中採用步長因子科學計數法的有效位u進行運算,故LMS運算的步長因子u*2-exp實際上被放大了2exp倍,只有有效位u參與運算,得到的信號也放大了2exp倍:
<![CDATA[ p _ r e s _ s u m k M = u M * Σ m = 0 m = M - 1 d k M + m * x k M + m ; ]]>
S32.將每個並行運算支路的第二輸出端信號通過第二加法器相加,得到的信號同樣放大了2exp倍,並通過減法器運算,由於減數被放大2exp倍,因此被減數也需要放大同樣倍數,用1*2exp減去相加得到的信號,獲得s_res_sum[kM]:
<![CDATA[ s _ r e s _ s u m k M = 1 * 2 exp - u M * Σ m = 0 m = M - 1 x 2 k M + m . ]]>
所述的w[kM]由上一次最終輸出的LMS誤差校正信號w[(k+1)M]通過D觸發器三處理得到。
進一步地,在公式w[(k+1)M]*2exp=w[kM]*s_res_sum[kM]+p_res_sum[kM]中,實際上運算放大結果擴大了2exp倍;本申請中最終的輸出結果需要除以2exp,或者通過乘以2-exp,通過右移以抵消這种放大。