關於DDS的基礎知識

關於DDS的基礎知識git

        聲明:這篇博客是我抄別人的,爲何想抄呢,由於他把DDS中的核心部件,相位累加器以及正弦ROM查找表尋址講得明明白白,我真的好想把這篇文章據爲己有。編碼

 

       DDS是直接數字式頻率合成器(Direct Digital Synthesizer)的英文縮寫,是一項關鍵的數字化技術。與傳統的頻率合成器相比,DDS具備低成本、低功耗、高分辨率和快速轉換時間等優勢,普遍使用在電信與電子儀器領域,是實現設備全數字化的一個關鍵技術。spa

 

        上圖所示是一個基本的DDS結構,主要由相位累加器、相位調製器、正弦ROM 查找表和D /A 構成。圖中的相位累加器、相位調製器、正弦ROM查找表是DDS結構中的數字部分, 因爲具備數控頻率合成的功能,又合稱爲NCO。blog

        相位累加器是整個DDS系統的核心,在這裏完成相位累加功能。相位累加器的輸入是相位增量B∆θ=2N  X fout /fclk,故相位累加器的輸入又稱爲頻率控制字,fclk爲系統基準時鐘,fout爲輸出的頻率。頻率控制字還通過一組寄存器, 該寄存器是同步的, 使得當頻率控制字改變時不會干擾相位累加器的工做。資源

        相位調製器接收相位累加器的相位輸出, 在這裏加上一個相位偏移值, 主要用於信號的相位調製,如應用於通訊方面的相移鍵控等, 不使用此部分時能夠去掉, 或者將其設爲一個常數輸入。一樣相位字輸入也要用同步寄存器保持同步。正弦ROM查找表,完成fsin(B∆θ)的查找錶轉換,是相位到幅度的轉換, 內部存有一個完整週期正弦波的數字幅度信號,輸入是ROM 的地址值, 輸出送往D /A, 轉化成模擬信號。在參考時鐘fclk控制下,頻率控制字K與相位寄存器的輸出反饋在相位累加器中完成加運算,存入寄存器,做爲下一次加運算的一個輸入值,相位累加器輸出高位數據做爲波形存儲器的相位抽樣地址值,查找波形存儲器中相對應單元的電壓幅值,獲得波形二進制編碼,實現相位到電壓幅值的轉變。波形二進制編碼再經過D/A轉換器,把數字信號轉換成相應的模擬信號。同步

fout =K X fclk/ 2N博客

        當K=l時,可得DDS的最小分辨率爲:fout =fclk/ 2N根據採樣定理,K的最大值應小於2N/2。累加器獲得的相位是怎麼去尋址正弦ROM的,對於N位的相位累加器對應2的N次方數量的相位累加值,若是正弦ROM中存儲的點數也是2的N次方的話,對存儲容量和資源的要求就比較高了,實際上在尋址正弦ROM表時,用的是相位累加值的高位,也就是說並非每一個時鐘fc都從正弦ROM表中取一個數值,而是多個時鐘取一個值,這樣能保證相位累加器溢出時,從正弦ROM表中取出正好一個正弦週期的樣點。所以,相位累加器每計數2的N次方次,對應一個正弦週期。而相位累加器1秒鐘計數fc次,在k=1時,DDS輸出的時鐘頻率就是頻率分辨率。頻率控制字K增長時,相位累加器溢出的頻率增長,對應DDS輸出的頻率變爲K倍的DDS頻率分辨率。it

        深刻剖析:class

        設定:ROM存儲點數爲1024,每一個點是用8位二進制表示。即,ROM地址線寬度爲10,數據線寬度爲8。基礎

        根據上述條件能夠知道,相位調製器位寬M=10,那麼根據DDS原理,相位累加器位寬N=20。那麼在相位調製器中與相位控制字進行累加時,應用相位累加器的高10位累加。而相位累加器的低十位只與頻率控制字累加。爲何是這樣子?

        咱們以頻率控制字K=1爲例,相位累加器的低十位一直會加1,直到低十位溢出向高十位進位,此時ROM地址應該是0,也就是說,ROM的0地址中的數據被讀了1024次,繼續下去,ROM中的1024個點,每一個點都將會被讀1024次,最終輸出的波形頻率應該是參考時鐘頻率的1/1024。 fout =1 Xfclk/ 1024。反過來想,週期被擴大了1024 。一樣當頻率控制字爲10時,相位累加器的低十位一直會加10,那麼,相位累加器的低十位溢出的時間比上面會快十倍,則ROM中的每一個點相比於上面會少讀10次,因此最終輸出頻率是上述的10倍。fout =10 Xfclk/ 1024。這就是DDS。

        DDS 最終輸出的正弦波的幅值,必須都是ROM表中的正弦幅值。以前咱們說根據採樣定理,頻率控制字K的最大值應小於2的N次冪除以2,這是有道理的,累加器數據位寬20位,ROM表地址位寬10位,在最終ROM表尋址時,用的是累加器的高10位,而低10位只用來進行累加。因爲咱們上述說DDS最終輸出正弦波的賦值必須是ROM表中的幅值,也就是說,ROM表中的幅值必須都被用到,而不能跳過。以累加器位寬20位爲例,它的一半是1024,當頻率控制字以超過1024累加時,高十位輸出累加值會超過1,也就是在尋址ROM表時跳過某些賦值。根據上述能夠得出結論了,頻率控制字K的最大值應小於2的N次冪除以2。

相關文章
相關標籤/搜索