0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在軟件中實(shí)現(xiàn)高精度NCO

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Patrick Butler ? 2022-07-24 16:44 ? 次閱讀

在本系列的第 1 部分中,我們將了解如何基于直接數(shù)字頻率合成 (DDFS) 原理設(shè)計(jì)一個(gè)非常精確的正弦波發(fā)生器,但在浮點(diǎn) DSP 處理器上通過軟件實(shí)現(xiàn)。在第 2 部分中,我們將介紹如何在軟件中實(shí)現(xiàn)高精度 NCO。

構(gòu)建一個(gè)具有與最好的模擬振蕩器相似或更好的失真性能的高精度交流音調(diào)發(fā)生器,如最著名的惠普分析儀或應(yīng)用筆記 AN-1323 中所述,即使專用于音頻,也不是一件容易的事頻譜(直流至 20 kHz 范圍)。然而,如前所述,完整的軟件實(shí)現(xiàn),使用嵌入式處理器的足夠算術(shù)精度執(zhí)行相位計(jì)算 (ωt) 和正弦函數(shù) (sin(ωt)) 近似,當(dāng)然可以幫助最大限度地減少量化副作用、噪聲、以及由此產(chǎn)生的馬刺。這意味著圖 2 中的所有 NCO 功能塊都轉(zhuǎn)換為代碼行(沒有 VHDL!

對于相位到正弦幅度轉(zhuǎn)換引擎,完整的 LUT 方案或任何變化都需要過多的內(nèi)存或過多的插值操作才能實(shí)現(xiàn)完美的正弦一致性。相反,用于正弦逼近的多項(xiàng)式方法通過允許使用成本非常低的通用 DSP,提供了非常好的復(fù)雜性與精度之間的折衷。多項(xiàng)式級數(shù)展開也非常有吸引力,因?yàn)樗鄬唵?,并且能夠在選擇冪級數(shù)類型時(shí)提供充分的靈活性,并為給定的精度定制算法。它不需要大的存儲(chǔ)空間、少于 100 行 SHARC DSP 裝配線,并且只需要幾個(gè) RAM 位置來存儲(chǔ)多項(xiàng)式系數(shù)和變量,因?yàn)檎抑祪H在采樣時(shí)刻計(jì)算。

首先,正弦逼近函數(shù)的明顯選擇是使用具有適當(dāng)階數(shù)的直線 Taylor/MacLaurin 冪級數(shù)來滿足目標(biāo)精度。然而,由于冪級數(shù)往往在端點(diǎn)處失效,因此在執(zhí)行任何多項(xiàng)式評估之前,必須將參數(shù)輸入范圍縮小到更小的區(qū)間。在沒有參數(shù)范圍縮減的情況下,只有非常高階的多項(xiàng)式才能支持函數(shù)域上的高精度,例如 [–π, +π]。因此,需要對初等函數(shù)應(yīng)用一些變換以得到簡化參數(shù),例如 sin(|x|) = sin(f + k × π/2) 和 sin(f) = sin(x – k × π/ 2) 0≤f《π/2。因此,應(yīng)特別注意三角函數(shù)以避免減法抵消,這將導(dǎo)致嚴(yán)重的精度損失并產(chǎn)生災(zāi)難性的結(jié)果,尤其是在算術(shù)精度較差的情況下。在我們的例子中,當(dāng)相位輸入較大或接近 π/2 的整數(shù)倍時(shí),可能會(huì)發(fā)生這種情況。

除了周期性和模 2π 重復(fù)之外,sin(x) 函數(shù)的對稱特性還可用于進(jìn)一步減小逼近范圍。鑒于正弦函數(shù)在區(qū)間 [0, 2π] 中關(guān)于點(diǎn) x = π 反對稱,因此可以使用以下關(guān)系:

對于區(qū)間 [0, π/2] 中的 x,這進(jìn)一步減小了角度輸入逼近范圍。進(jìn)一步將參數(shù)減少到更小的區(qū)間(如 [0, π/4] 以提高準(zhǔn)確性)效率不高,因?yàn)樗枰瑫r(shí)評估正弦和余弦函數(shù),這由常見的三角關(guān)系決定:sin(a+b ) = sin(a) × cos(b) + cos(a) × sin(b),值得產(chǎn)生正交音。

ADI 公司ADSP-21000 系列應(yīng)用手冊第 1 卷描述了一種幾乎理想的(用于嵌入式系統(tǒng))正弦逼近函數(shù),該函數(shù)基于為第一個(gè) ADI DSP 浮點(diǎn)處理器(即 ADSP-21020)編寫的優(yōu)化冪級數(shù),它基本上是一個(gè)SHARC核心。sin(x) 的這種實(shí)現(xiàn)依賴于 Hart 等人 4 發(fā)表并由 Cody 和 Waite5 改進(jìn)的極小極大多項(xiàng)式近似,用于浮點(diǎn)運(yùn)算,以減少舍入誤差并避免如前所述的取消的發(fā)生。minimax 方法依賴于 Chebyshev 多項(xiàng)式和 Remez 交換算法來確定所需最大相對誤差的系數(shù)。如圖 3 中的 MATLAB 所示,

poYBAGLdBniAFRfFAACjXt8PGkk574.png

圖 3. 與定義在 0 附近的 Taylor-MacLaurin 方法不同,極小極大正弦近似方法在 [–π/2 到 +π/2] 區(qū)間內(nèi)最小化和均衡最大相對誤差。

雖然所有計(jì)算都可以使用 32 位定點(diǎn)算術(shù)執(zhí)行,但多年來,最常見和最方便的數(shù)學(xué)計(jì)算格式一直是 IEEE 754 浮點(diǎn)標(biāo)準(zhǔn),尤其是在處理長數(shù)時(shí)。當(dāng)時(shí)根本沒有單片浮點(diǎn)DSP處理器,只有ADSP-3212和ADSP-3222等簡單的浮點(diǎn)乘法器和ALU計(jì)算IC。這種格式取代了計(jì)算機(jī)行業(yè)的大多數(shù)專有格式,并成為所有 SHARC DSP 處理器的原生格式,包括單精度 32 位、擴(kuò)展精度 40 位以及最近用于 ADSP-SC589 的雙精度 64 位和 ADSP-SC573。

SHARC 40 位擴(kuò)展單精度浮點(diǎn)格式及其 32 位尾數(shù)為該正弦波生成應(yīng)用提供了足夠的精度 (u 2–32) 并保持相等,Cody 和 Waite 表明 15 階多項(xiàng)式是合適的對于 32 位的整體精度,在 [0 到 +π/2] 輸入域上具有均勻分布的誤差。最小化運(yùn)算次數(shù)并保持準(zhǔn)確性的最后調(diào)整是實(shí)現(xiàn)多項(xiàng)式計(jì)算的霍納規(guī)則,這是一種在一個(gè)點(diǎn)上計(jì)算多項(xiàng)式的快速取冪方法,例如:

poYBAGLdBoCABwgmAAA-zapy0_w804.png

R1 到 R7 是多項(xiàng)式級數(shù)的 Cody 和 Waite 系數(shù),只需 8 次乘法和 7 次加法即可計(jì)算任何輸入?yún)?shù) ε[0, π/2] 的正弦函數(shù)。以匯編子程序形式編寫的完整 sin(x) 近似代碼在 SHARC 處理器上大約需要 22 個(gè)內(nèi)核周期執(zhí)行。原始匯編子程序被修改為在獲取 40 位多項(xiàng)式浮點(diǎn)系數(shù)時(shí)同時(shí)執(zhí)行雙內(nèi)存訪問,以節(jié)省六個(gè)周期。

poYBAGLdBoiAIUhIAAFCZGsmw7U665.png

圖 4. 軟件 DDS 簡化框圖給出了數(shù)據(jù)算術(shù)格式和處理元件之間各種量化步驟的位置。

NCO 64 位相位累加器本身使用雙精度二進(jìn)制補(bǔ)碼小數(shù)格式的 SHARC 32 位 ALU 來執(zhí)行。具有內(nèi)存更新的完整相位累加器執(zhí)行需要 11 個(gè)內(nèi)核周期,因此,每個(gè) NCO 輸出樣本在大約 33 個(gè)內(nèi)核周期內(nèi)生成。

圖 4 中的圖表顯示了基于軟件 DSP 的 NCO 的功能塊實(shí)現(xiàn),其中參考了每個(gè)階段的算術(shù)格式精度。此外,信號(hào)模擬重構(gòu)還需要一個(gè)或兩個(gè) DAC 及其模擬抗混疊濾波器電路,以實(shí)現(xiàn)完整的 DDFS。處理鏈的關(guān)鍵要素是:

64位相位累加器(SHARC ALU雙精度加法溢出);

64 位小數(shù)定點(diǎn)到 40 位 FP 轉(zhuǎn)換塊;

范圍縮減塊 [0 到 + π/2] 和象限選擇(Cody 和 Waite);

用于相位幅度轉(zhuǎn)換的正弦逼近算法 (Hart);

–1.0 到 +1.0 范圍內(nèi)的 sin(x) 重建和歸一化階段;

必要時(shí)進(jìn)行 LP FIR 濾波器和 sin(x)/x 補(bǔ)償;

以及 40 位 FP 到 D 位定點(diǎn)轉(zhuǎn)換和縮放功能,以適應(yīng) DAC 數(shù)字輸入。

可以在 NCO 的輸出端放置一個(gè)可選的數(shù)字低通濾波器,以消除可能折疊在感興趣頻帶中的任何雜散和噪聲。可選地,該濾波器可以根據(jù)為模擬重建選擇的 DAC 提供插值和/或逆 sin(x)/x 頻率響應(yīng)補(bǔ)償。這種低通 FIR 濾波器可以使用 MATLAB 濾波器設(shè)計(jì)器工具來設(shè)計(jì)。例如,假設(shè)采樣頻率為 48 kSPS,直流至 20 kHz 帶寬,帶內(nèi)紋波為 0.0001 dB,帶外衰減為 –150 dB,則可以使用 40 位浮點(diǎn)實(shí)現(xiàn)高質(zhì)量等紋波濾波器系數(shù)。只有 99 個(gè)濾波器系數(shù),它的總執(zhí)行時(shí)間將在單指令、單數(shù)據(jù) (SISD) 單計(jì)算單元模式下消耗大約 120 個(gè) SHARC 內(nèi)核周期。數(shù)字濾波后,DMA 使用其中一個(gè) DSP 同步串行端口將計(jì)算的樣本對發(fā)送到 DAC。為了獲得更好的速度性能,鏈接 DMA 操作也可以與大型乒乓存儲(chǔ)器緩沖區(qū)一起支持按塊操作進(jìn)行處理。例如,塊數(shù)據(jù)大小可以等于 FIR 數(shù)據(jù)延遲線的長度。

NCO 的最終調(diào)整以獲得最佳 SFDR

如前所述,NCO 受到雜散的影響主要是由于相位累加器輸出的截?cái)?,并且在較小程度上是由于對通過計(jì)算或制表獲得的正弦值進(jìn)行的幅度量化造成的。相位截?cái)鄬?dǎo)致的誤差通過相位調(diào)制(鋸齒波)在載波頻率附近產(chǎn)生雜散,而正弦幅度量化導(dǎo)致諧波相關(guān)的雜散,盡管長期以來被認(rèn)為是隨機(jī)誤差和噪聲。今天,如 Henry T. Nicholas 和 H. Samueli 的技術(shù)論文 7 中所描述的,相位累加器的操作在數(shù)學(xué)上是眾所周知的。經(jīng)過全面分析,提出了一個(gè)模型,將相位累加器視為離散相位樣本置換發(fā)生器,從中可以預(yù)測頻率雜散。

pYYBAGLdBpKAYExlAAAP_ctnWdA749.png

(其中 GCD 是最大公約數(shù))由頻率調(diào)諧字 M 的最右邊位位置 L 確定,如圖 4 所示。因此,L 的值定義了序列類別,每個(gè)類別共享自己的一組相位組件,但根據(jù)排列

poYBAGLdBpqAAS3WAAAQd5F0Xtg352.png

比率。在時(shí)域中生成的這些截?cái)嘞辔粯颖拘蛄杏糜谕ㄟ^ DFT 確定頻域中每個(gè)雜散線的相應(yīng)位置和幅度。這些序列還表明 M (FTW) 的奇數(shù)值表現(xiàn)出最低頻率雜散的幅度,并建議對相位累加器進(jìn)行簡單修改,以滿足這些最小條件,只需將 1 LSB 添加到 FTW。這樣,無論 M 值和相位累加器的初始內(nèi)容如何,相位累加器輸出序列都被迫始終具有相同的 2N 個(gè)相位元素。然后,最差雜散音幅度的電平降低 3.922 dB,等于 SFDR_min (dBc) = 6.02 × W。 Nicholas 改進(jìn)的相位累加器為 NCO 帶來了幾個(gè)好處,

poYBAGLdBqKAHxlMAADhX71cioc120.png

圖 5. FTW 最右邊的非零位的位置設(shè)置了理論上的 SFDR 最壞情況水平。Nicholas 改進(jìn)的相位累加器解決了任何 N 值的問題,并使 NCO 的 SFDR 最大化。

因此,對于 32 位的輸出相位字 W,由于相位截?cái)喽鴮?dǎo)致的最大雜散幅度被限制為 –192 dBc!正弦樣本值的有限量化也會(huì)導(dǎo)致另一組頻率雜散,通常將其視為噪聲,并通過眾所周知的關(guān)系 SNRq(dB) = 6.02 × D + 1.76 進(jìn)行估計(jì)。由于相位到正弦幅度轉(zhuǎn)換算法階段的近似誤差,這必須添加到寄生元素中,然而,考慮到在選擇相位到正弦近似算法和計(jì)算的精度。

這些結(jié)果表明,我們的軟件正弦 NCO 的線性度和噪聲都處于理論水平,遠(yuǎn)遠(yuǎn)超出了測試市場上大多數(shù)高精度 ADC 所需的閾值。仍然需要找到信號(hào)鏈中最后但最關(guān)鍵的元素:重建 DAC 及其互補(bǔ)模擬抗混疊濾波器和相關(guān)的驅(qū)動(dòng)器電路,可以滿足預(yù)期的性能水平。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 驅(qū)動(dòng)器
    +關(guān)注

    關(guān)注

    52

    文章

    8065

    瀏覽量

    145645
  • 濾波器
    +關(guān)注

    關(guān)注

    159

    文章

    7673

    瀏覽量

    177231
  • dac
    dac
    +關(guān)注

    關(guān)注

    43

    文章

    2251

    瀏覽量

    190643
收藏 人收藏

    評論

    相關(guān)推薦

    物聯(lián)網(wǎng)系統(tǒng)中高精度RTK定位方案的實(shí)現(xiàn)_高精度定位模塊

    物聯(lián)網(wǎng)系統(tǒng)為什么要使用高精度定位模塊 物聯(lián)網(wǎng)系統(tǒng)中使用高精度定位模塊的原因主要體現(xiàn)在以下幾個(gè)方面: 提高定位精度 厘米級高精度
    的頭像 發(fā)表于 09-26 17:53 ?455次閱讀
    物聯(lián)網(wǎng)系統(tǒng)中<b class='flag-5'>高精度</b>RTK定位方案的<b class='flag-5'>實(shí)現(xiàn)</b>_<b class='flag-5'>高精度</b>定位模塊

    探索UWB技術(shù)的獨(dú)特優(yōu)勢:實(shí)現(xiàn)高精度定位

    在UWB定位系統(tǒng),一個(gè)標(biāo)簽通過與三個(gè)基站的信號(hào)交互進(jìn)行三角測量,最多可以有30個(gè)標(biāo)簽同時(shí)與這三個(gè)基站通信,實(shí)現(xiàn)對多個(gè)目標(biāo)的高精度定位和跟蹤。 采用三點(diǎn)平面定位法,精確的定位計(jì)算:在UWB和AoA
    的頭像 發(fā)表于 09-14 17:00 ?550次閱讀
    探索UWB技術(shù)的獨(dú)特優(yōu)勢:<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>高精度</b>定位

    何在MSP430?上實(shí)現(xiàn)內(nèi)置振蕩器的高精度定時(shí)器

    電子發(fā)燒友網(wǎng)站提供《如何在MSP430?上實(shí)現(xiàn)內(nèi)置振蕩器的高精度定時(shí)器.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 11:10 ?0次下載
    如<b class='flag-5'>何在</b>MSP430?上<b class='flag-5'>實(shí)現(xiàn)</b>內(nèi)置振蕩器的<b class='flag-5'>高精度</b>定時(shí)器

    何在激光雷達(dá)和接近檢測利用高速比較器提高精度

    電子發(fā)燒友網(wǎng)站提供《如何在激光雷達(dá)和接近檢測利用高速比較器提高精度.pdf》資料免費(fèi)下載
    發(fā)表于 09-02 09:33 ?0次下載
    如<b class='flag-5'>何在</b>激光雷達(dá)和接近檢測<b class='flag-5'>中</b>利用高速比較器提<b class='flag-5'>高精度</b>

    什么是高精度定位平板?

    普通GPS設(shè)備的精度。 高精度定位平板的關(guān)鍵技術(shù)是RTK(Real-Time Kinematic,實(shí)時(shí)動(dòng)態(tài)測量)技術(shù)。RTK技術(shù)通過接收來自基站的差分信號(hào),實(shí)時(shí)修正GPS信號(hào)的誤差,實(shí)現(xiàn)
    的頭像 發(fā)表于 06-12 17:53 ?732次閱讀

    高精度滾珠絲桿在航空航天技術(shù)實(shí)現(xiàn)精準(zhǔn)對接!

    滾珠絲桿以其高精度,高效率,高剛性,高壽命等特點(diǎn)。作為一種高效,節(jié)能,高精度的傳動(dòng)與定位元件,在航空航天領(lǐng)域中有著非常出色的運(yùn)用。它以精確的直線定位和運(yùn)動(dòng)控制能力,賦予智能制造設(shè)備高速、高效的傳動(dòng)能力,從而輕松實(shí)現(xiàn)在航空航天領(lǐng)域
    的頭像 發(fā)表于 05-29 17:36 ?485次閱讀
    <b class='flag-5'>高精度</b>滾珠絲桿在航空航天技術(shù)<b class='flag-5'>中</b><b class='flag-5'>實(shí)現(xiàn)</b>精準(zhǔn)對接!

    mcsdk無法做高精度位置控制如何解決?

    ,那么位置控制很容易超調(diào)和來回調(diào)整,速度調(diào)整不過來,因此我只能做在臨近位置時(shí)候切換成電流環(huán),可還是無法做高精度位置控制,我想請問一下問題如何解決 2第二個(gè)問題是,如何在MCSDK添加第二個(gè)傳感器,如
    發(fā)表于 03-12 07:25

    輪廓測長|圖儀器SJ51系列測長機(jī)實(shí)現(xiàn)高精度二維長度測量

    高精度二維長度測量的重要性及測長機(jī)在精密制造業(yè)的價(jià)值與應(yīng)用領(lǐng)域高精度二維長度測量技術(shù)在現(xiàn)代精密制造業(yè),是保證產(chǎn)品質(zhì)量和工藝精度的基礎(chǔ),可
    發(fā)表于 01-23 09:36 ?0次下載

    電感多少精度高精度

    電感作為電子電路中非常重要的電子元器件之一,我們在選擇電感時(shí)候會(huì)考慮它的精度。電感精度其實(shí)指的是電感值的公差或者容差,這個(gè)參數(shù)對于確保電路性能的穩(wěn)定性很重要。那么,你知道電感多少精度的算高精度
    的頭像 發(fā)表于 01-23 09:21 ?500次閱讀

    請問AD9788NCO如何編程?

    AD9788NCO如何編程?
    發(fā)表于 12-25 06:28

    激光掃描裝配間隙尺寸高精度檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    鑒于傳統(tǒng)測量方法效率低下,無法滿足工件裝配間隙尺寸自動(dòng)測量的高精度、高速度要求,探討了一種激光掃描裝配間隙尺寸高精度檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),設(shè)計(jì)了系統(tǒng)的機(jī)械結(jié)構(gòu)和控制系統(tǒng)的總體方案,研究分析了
    的頭像 發(fā)表于 12-20 14:37 ?973次閱讀
    激光掃描裝配間隙尺寸<b class='flag-5'>高精度</b>檢測系統(tǒng)的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    高精度電壓源的作用及其在電壓測量的應(yīng)用

    在電子領(lǐng)域中,高精度電壓源扮演著關(guān)鍵的角色,為各種應(yīng)用提供穩(wěn)定、準(zhǔn)確的電壓信號(hào)。它是由精確的電壓源和精密的參考電路組成。下面Aigtek西安安泰電子將為大家介紹高精度電壓源的作用及其在電壓測量
    的頭像 發(fā)表于 12-19 10:11 ?482次閱讀
    <b class='flag-5'>高精度</b>電壓源的作用及其在電壓測量<b class='flag-5'>中</b>的應(yīng)用

    Yaskawa安川電機(jī):實(shí)現(xiàn)高精度運(yùn)動(dòng)控制的利器

    軌跡的控制,滿足各種高精度制造和加工需求。同時(shí),安川電機(jī)的運(yùn)動(dòng)控制器采用先進(jìn)的計(jì)算機(jī)技術(shù),具有強(qiáng)大的運(yùn)算和控制能力,能夠實(shí)現(xiàn)實(shí)時(shí)監(jiān)控和精確調(diào)整,確保運(yùn)動(dòng)過程的高精
    的頭像 發(fā)表于 12-08 09:02 ?1011次閱讀
    Yaskawa安川電機(jī):<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>高精度</b>運(yùn)動(dòng)控制的利器

    電磁流量計(jì):在工業(yè)應(yīng)用實(shí)現(xiàn)高精度

    電子發(fā)燒友網(wǎng)站提供《電磁流量計(jì):在工業(yè)應(yīng)用實(shí)現(xiàn)高精度.pdf》資料免費(fèi)下載
    發(fā)表于 11-23 15:10 ?0次下載
    電磁流量計(jì):在工業(yè)應(yīng)用<b class='flag-5'>中</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>高精度</b>

    高精度電壓源是什么意思

    高精度電壓源是一種能夠產(chǎn)生穩(wěn)定、準(zhǔn)確和可調(diào)節(jié)的電壓輸出的設(shè)備。在各種電子應(yīng)用,高精度電壓源被廣泛應(yīng)用于模擬信號(hào)處理、測試和測量領(lǐng)域。本文將介紹高精度電壓源的基本原理、特點(diǎn)和應(yīng)用場景。
    的頭像 發(fā)表于 11-17 17:02 ?629次閱讀
    <b class='flag-5'>高精度</b>電壓源是什么意思