大家好,我是一個專心搞硬件,專注于模拟電路的苦逼小白工程師豆小白,在今後的日子裡,我會把日常工作及學習中遇到的各類模拟電路問題及各類相關技術分享給大家,用最直白明了的語言将各類技術揉碎了喂給大家。那麼,接下來,硬件飯堂就正式開飯,請各類道友們小闆凳準備好!
飯堂第一餐:DDS,直接數字頻率合成技術
相信大家在日常工作及學習中應該或多或少的都需要接觸一些信号合成方面的東西吧,簡單的比如通信電路中需要通過震蕩來合成基波,複雜的呢,可能就不僅僅需要合成單一特定頻率的正弦波,甚至還要能夠讓輸出波形可調,甚至是輸出其他形式的波形,那麼,在這種情況下,dds技術便成為了各位最好的選擇了。而該項技術的基本原理呢,也是比較簡單的,下面就請我給大家好好說說這個DDS吧。
技術基本要點
1:頻率的合成方式對于一個正弦波,雖然它的幅度不是線性的,但是它的相位卻是線性增加的。而DDS 正是利用了這一特點來産生正弦信号。那既然如此,我們就把正弦波的相位均分,比如均分為2^n份,而在每一個時鐘周期出現的時候,相位則從0°步進一次,一直加2^n次,即可把整個360°相位加完,而每加一次便賦予其一個特定的幅值,那麼加完後我們便得到了一個新的周期信号了,而該信号的周期即為加完這2^n次所需要的時間呀,設時鐘頻率為Fc,那麼新的信号頻率即為Fc/2^n。
而當我們需要改變該信号的頻率的時候,便有兩種途徑:
(1):改變相位的均分量,有些書上也叫做相位步進值,其實代表的含義都是一樣的,360°均分的份數多了,加完整個360°所需要的時間也就大了呀,反之頻率也就小了嘛。
(2):改變單次累加所需的時間,即通過分頻的方式改變時鐘周期。
2:幅值的合成方式:對于一個正弦波信号而言,我們所需要的不僅僅是頻率,還有信号幅值,而信号幅值的合成方式,是基于查表的方式進行合成的。在信号合成的時候,我們先預存幾組特定正弦波的幅值,在合成時,用每次累加獲取到的相位進行查表從而獲取對應相位點的幅值,當然,我們不可能把所有可能需要的正弦波幅值都預存起來,隻能先預存幾組,而其他幅值的正弦波可以通過後續軟件的細調和外部硬件電路加衰減或增益粗調來進行輸出。具體電路原理可參考下圖。至于軟件細調方式及後續硬件電路的粗調檔位的選擇嘛,由于篇幅有限,在此就不多贅述了,如果各位看客大人感興趣或有所需要,可關注或私信我呦!
當然啦,任何一項技術都會有其優勢及弊端嘛,DDS也一樣,相較于傳統的信号産生方式而言,DDS由于是從相位的角度進行信号的合成的,便使其擁有了超高速的頻率切換時間,并且具有極高的頻率精準度,而且也非常方便用于後續的信号調制。而且,畢竟DDS是基于數字技術合成的嘛,所以也具有非常好的可編程性。而其缺點呢,也是硬件電路中比較常見的一個現象吧,那就是高頻信号的保真度的問題,畢竟慢慢來的時候,誰都挺好,但是一快就問題百出了,DDS也一樣,當需要超高頻率的信号而言,就拿最簡單的正弦波舉例吧,想提高頻率,無外乎兩個辦法,要麼提高系統時鐘頻率,要麼減少相位步進次數,而相位步進次數太少,容易導緻信号波形變形,所以就隻能提高系統時鐘頻率啦。當然,有件事是可以肯定的,那就是越簡單的波形能輸出的最高頻率越高,而例如方波這種信号的話,那可以肯定的是,基本上幾MHz就已經不錯了,頻率再高的話,方波就變形了,至于原因嘛,咱們也可以簡單說一下,大家如果感興趣的話,可以自己驗證呦!
首先呢,作為一個方波信号,其上升沿時間是一個很重要的考量參數,而對于高頻方波而言吧,想要擁有很短的上升時間,最好的辦法就是在相位步進時,上升過程隻需要一個相位點即可,那麼上升時間則是系統時鐘周期,比如150MHz的系統時鐘而言,其上升時間最快也就是6.6ns左右,但這隻是理想狀态下,因為隻需要一個相位點的話,那麼就會造成很大的過沖,所以基本上一個上升過程最起碼也要兩個相位步進,那麼你的上升時間也就受到了一定的限制影響。
此外,衡量一個方波信号是否合格的另外一個考量參數,即高低電平時的平坦度,在高頻情況下,效果也不是很良好。至于原因呢,大緻就是:方波嘛,從FFT的角度來說,方波是由無數個奇次諧波組成的,例如1k的方波,那麼其諧波頻率即為1k,3k,5k,7k等等等等。同理,對于一個10MHz的方波而言,其諧波頻率為10M.30M.50M.70M等等等等。理想情況下,奇次諧波階數越高,方波越逼真,但這隻是理想狀況,而在實際中呢,有一個非常重要的限制因素,那就是濾波器。DAC輸出後面必須要有濾波器對波形進行平滑,不然波形就階梯上升了,而濾波器的截止頻率設置的都并不會很高,就拿150MHz的DAC舉例吧,後面我搭配過80M的濾波器,而對于這種情況而言,一個10M的方波信号,通過濾波器之後呢,其所包含的諧波頻率就隻有10M.30M.50M.70M了,而這四階的諧波,根本無法使方波的變平坦,最後的結果就失真了。而如果提高濾波器的截止頻率呢,卻又容易使波形不夠平滑,又或者從各種地方引入亂七八糟的噪聲,最後得不償失,就比如下圖,10MHz的方波。
所以最後的結果就是,像方波這種信号,很難做到非常高的頻率了。當然,如果你有十幾G甚至更高頻率的時鐘的話,簡單的正弦波信号還是可以很輕松地做到非常高的頻率的啦。
好啦,本次分享就暫時結束了,歡迎評論讨論呦!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!