【教學】數位直接頻率合成訊號產生器



贊助商連結


山賊
2005-09-05, 11:19 PM
基本電路方塊圖

 +----←----+
 | +-+ +-+ | +-+
 +-+加| |暫| ↑ |R|
頻率 |法+-+存+→+→+O+→D/A & LPF
數值-+器| |器|   |M|
資料 +-+ +++   +-+
        ↑
        CLK

動作說明:
ROM 內儲存 Sine-wave 的數值波形資料, 譬如以 8bits data bus 的 ROM, 波形的波峰就是 FF, 波谷就是 00, 波形解析度為 256 階; 波形的時間軸就是 ROM 的 N 條 Address bus 輸入, 以 10bits address 輸入來說, 時間軸的解析度就共有 1024 的點, 用來描述時間..

暫存器內資料一開始為 0, 頻率數值資料 P 必須大於一, 此處以 1 為例, 加法器輸出為 1 , 如此在 clk 到來時, 暫存器載入 1, 輸送到 ROM 的 Address 就變成 1, 如此週而復始, 加法器每次就加 1, rom 的位址線輸入就從 0000000000 計數到最高值 1111111111 , 共 1024 個 CLK 才完成一個 Sine wave 的週期循環, 此時 LPF 輸出頻率為 CLK 的頻率除以 1024..

倘若增加頻率數值資料 P 為 2, 加法器每次加 2, 輸送到 ROM Address 的計數只要 1024/2=512 個 CLK 便完成一個 Sine-wave 週期循環, 如此可推演隨著 P 值的增加或減少(最少必須為 1, 否則 ROM Address 不會變化, 輸出 data 不會變動, 為 0Hz), 便可以增減輸出頻率, 且其穩定度只取決於 CLK..

因此合成頻率的輸出就是 Fo = Fclk / (2^N) * P, 而依取樣原理, Fo 的上限為 Fclk / 2, 事實上大約 0.4 * Fclk..

倘若有兩顆 ROM , 另一顆內的 Wave table 資料為 Cosine, 或是降低波幅解析度為 4bits (16階),Hi-nibble 放 sine-table, Lo nibble 放 cosine-table, 如此就可以一次輸出 sin & cos 的信號..

除此之外, 也可改變線路如下:

 +-----←-----+
 | +-+   +-+ | +-+
 +-+加|   |暫| ↑ |R|
頻率 |法+-+-+存+→+→+O+→D/A & LPF
數值-+器| | |器|   |M|
資料 +-+ ↓ +++   +-+
       |  ↑   
 +--←--+ clk   
 |
 | +-+   +-+   +-+
 +-+加|   |暫|   |R|
相位差|法+---+存+---+O+→D/A & LPF
數值-+器|   |器|   |M|
資料 +-+   +-+   +-+
          ↑
         clk

如此就可以做成以數值控制相位差的兩信號源..

此外若 ROM 的容量較大, 也可以將振幅, DSB ,調頻或調相(譬如 PSK,DPSK,QPSK,QAM 等)的資料直接燒錄在 ROM 中, 達到數值調變; 調變的輸入, 就是額外的 Address, 譬如 Wave-table 為 A0~A15, 調變資料輸入為 A16~A20, ROM 內資料的波形描述僅用 2bits(僅是舉例! 實際上這樣在較低頻輸出時, 波形失真相當大), 其餘 6 bits 為調變信號變化, 如此一顆 1MB (8Mbits) 的 ROM 便可做到; 另外調頻調相的達成, 也可直接從 "頻率數值資料或相位數值資料" 以數位化達成, 如此 ROM 僅需儲存振幅 & DSB 的資料即可..

如今這類電路都已經集成 IC 化了, 有興趣的網友可到 Google 輸入 "DDS" 或全名 "Direct Digital Synthesis" 就會有相關的資料可供參考..

贊助商連結


k2
2005-09-11, 10:28 PM
其實這項技術已經普遍存在我們生活週遭
像是音樂cd,一般電話DTMF復頻撥號
都是使用直接頻率合成訊號的技術

kouyoumin
2005-09-12, 08:50 PM
其實這項技術已經普遍存在我們生活週遭
像是音樂cd,一般電話DTMF復頻撥號
都是使用直接頻率合成訊號的技術
音樂CD如何應用這項技術呢? 願聞其詳 :confused:

k2
2005-09-13, 02:39 PM
音樂CD如何應用這項技術呢? 願聞其詳 :confused:

其實說穿了音樂cd光碟片裡儲存的資料
也就是以 44.1k 取樣做成的 wave table
就相當於電路方塊圖裡 ROM 的部分
其他如D/A 和 LPF等等就是相當於是cd音響主機
所合成出來的信號也就是我們所聽到的音樂罷了