吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數字電路中最簡單的混頻知識

e9Zb_gh_8734352 ? 來源:未知 ? 作者:李倩 ? 2018-08-14 14:35 ? 次閱讀

混頻就是把兩個不同的頻率信號混合,得到第三個頻率。在模擬電路中經常見到的就是把接收機接收到的高頻信號,經過混頻變成中頻信號,再進行中頻放大,以提高接收機的靈敏度。

數字電路中最簡單的混頻便是兩個信號做乘法,可以得到它們的和頻信號與差頻信號。數字混頻在通信的調制、解調、DUC(數字上變頻)、DDC(數字下變頻)等系統中應用廣泛。通常把其中一個信號稱為本振信號(local oscillator),另一個信號稱為混頻器的輸入信號。

程序設計

程序設計系統時鐘5MHz,625kHz的輸入信號與625kHz的本振信號做混頻,根據混頻原理會得到1.25MHz的和頻信號與0Hz(直流),將直流濾除掉得到1.25MHz的有效信號。

設計的頂層模塊接口如下所示:

程序中首先生成本振信號。Quartus和Vivado中都提供了類似功能的IP核:Vivado中叫DDS(Direct Digital Synthesizers)Compiler;Quartus中叫NCO(Numerically controlled oscillators)。下面以實例化NCO為例,具體的設計方法在下文講解。

接下來用乘法進行混頻。我們都知道計算機中有帶符號數signed和無符號數unsigned,還知道計算機經常以二進制補碼的形式的表示帶符號數。

FPGA設計中,不管是Altera還是Xilinx,它們的IP核幾乎都是采用二進制補碼帶符號數,也有很多的ADCDAC芯片的數據接口也采用的是二進制補碼。因此,在設計中,我們要清楚什么時候用什么數值表示法。比如NCO的輸出為帶符號數二進制補碼,假設混頻的輸入信號也是帶符號數二進制補碼,則在整個混頻程序設計中都要保持這個數值表示方法,否則就會出錯。

在下面的方法1中,再定義一個帶符號的寄存器將輸入信號轉換為帶符號數是很有必要的:“wire signed [9:0] din_s = din;”。如果不這樣做,直接使用乘法運算符“*”,會被綜合為無符號數乘法,得到的就是錯誤的結果。

當然也可以用方法2,乘法器IP核可以選擇計算方式是“signed”還是“unsigned”,將乘法器設置為signed也可以完成正確的計算。

接下來濾除混頻后的直流信號。由于乘法的運算結果為帶符號數,接下來的計算使用到的寄存器都應申明為signed。需要強調的是,signed和unsigned的申明只是告訴設計的運算如何看待這個寄存器中的數,并不能改變寄存器的值。比如“11”這個值,如果申明為signed,運算將其視作-1,如果申明為unsigned,運算將其視作3。因為有符號數和無符號數的運算法則是不一樣的,所以錯誤的申明會導致結果計算錯誤。

上面濾除直流分量的方法并不通用,由于5Mhz的系統時鐘是625kHz信號的8倍,所以連續8個點的平均值便是直流分量。不過程序設計思路還是可以學習,比如依次移位緩存數據、截高位做除法這些小技巧。

NCO IP核的使用

在Quartus中打開該IP核,配置界面如下。后面的Quartus版本中將IP核集成到了qsys中,配置界面略有不同,但設置的參數之類的基本一樣。

設定好相位累加器精度、角度分辨率、幅度精度、系統時鐘和輸出信號頻率,便可以得到一個相位增量值(phase increment value),在實例化NCO模塊時傳入的便是這個值。實際的輸出頻率和設定的頻率會存在一定誤差,下方便展示了輸出信號的頻域和時域圖形。總體來說設置比較簡單。

如果需要仿真,在生成IP核前一定要在“Set up simulation”中選中“Generate Simulation Model”和“Generate netlist”,如下圖所示。否則在導入ModelSim時會失敗,無法進行仿真。

DDS Compiler IP核的使用

01

基本配置

在Vivado中打開DDS Compiler IP核,配置界面如下:

同樣設定系統時鐘,Parameter Selection選擇“System Parameters”,這種設計方式可以直接設置無雜散動態范圍、頻率分辨率、輸出頻率等系統級的參數,和Quartus的NCO IP核很像。另外一種“Hardware Parameters”設計方式需要自己設定輸出數據和相移的位寬,輸出頻率、相位偏移等值需要自己計算對應的二進制數值。這兩種設計方式向不同需求的設計者提供。

總線位寬與系統參數之間的轉換關系公式參考Xilinx官方文檔pg141。

相位增量和相位偏移都可以設置為可編程的“Programmable”和“Streaming”方式,本設計只需要產生625kHz固定頻率的本振信號,設置為“Fixed”即可(所需資源少)。在“Summary”中可以看到整個DDS系統的詳細信息。

02

位寬問題

需要提醒的是系統最終的實際信號位寬和總線接口位寬并不一致。IP核的位寬只會是8的倍數,多余的位數會移符號為填充,如下圖所示。

更直觀的感受,看一個DDS Compiler IP核的仿真:

可以看到相移雖然有16bit的位寬,但是有效的只有低10bit,高位都是符號為。為了更好的觀察相位值,新建一個“virtual bus“,將低10bit加到bus中,如下圖所示:

可以清楚的看到相位和幅度之間的關系。

03

產生sin與cos信號

很多系統中需要sin和cos信號(如解調系統中的本振信號),在DDS中設置為“Sine and Cosine”輸出時,sin和cos信號會共用數據總線,sin使用高字節,cos使用低字節,格式如下:

04

產生帶有相位偏移的信號

如果需要生成帶有可調初始相位(也叫相位偏移Phase Offset)的信號,在DDS中將“Phase Offset Programmability”設置為“Streaming”,IP核端口會增加一個PHASE輸入通道,該通道數據總線的有效位寬與設置的頻率分辨率(Frequency Resolution)有關,可以在Summary界面中看到位寬(Phase Width)。該數據總線與360°相位之間線性對應。比如Phase Width為16Bits,則0對應0°,FFFF對應360°,7FFF對應180°,以此類推。

NCO和DDS是經常用到的IP核,在后面的“FPGA數字信號處理“系列介紹的其它系統中,也會經常出現,因此需要熟悉掌握這兩個IP核的使用。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21796

    瀏覽量

    605998
  • 數字電路
    +關注

    關注

    193

    文章

    1629

    瀏覽量

    80822

原文標題:FPGA數字信號處理(二)數字混頻

文章出處:【微信號:gh_873435264fd4,微信公眾號:FPGA技術聯盟】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    看懂數字電路的四個必備知識

    要看懂數字電路圖,首先應掌握一些數字電路的基本知識;其次是了解二進制邏輯單元的各種邏輯符號及輸出、輸入關系;然后還應掌握一些邏輯代數的知識。具備了這些基本
    發表于 11-16 11:21 ?1.7w次閱讀

    數字電路的基礎知識

      用數字信號完成對數字量進行邏輯運算和算術運算的電路稱為數字電路。 由于它具有邏輯運算和邏輯處理功能,所以又稱為數字邏輯
    發表于 02-23 14:18 ?2.5w次閱讀
    <b class='flag-5'>數字電路</b>的基礎<b class='flag-5'>知識</b>

    模擬電路數字電路的基礎知識詳解

    電子電路是單片機硬件部分的基礎知識,電子電路分為模擬電路數字電路。單片機是使用數字電路,但AD
    發表于 01-25 07:15

    怎樣看數字電路

    怎樣看數字電路圖緊扣“怎樣看數字電路圖”的主題,系統地介紹了看懂數字電路圖所必須掌握的基礎知識、基本方法和技巧,并通過電路實例進行了
    發表于 12-26 10:55 ?4830次閱讀

    數字電路基礎知識

    數字電路基礎知識 1、數字量和模擬量 2、數制和碼制 3、進制轉換 4、三進制運算 5、邏輯運算 6、基本邏輯門
    發表于 04-01 14:45 ?1154次下載

    數字電路基礎知識

    數字電路基礎知識,都是常用的必備的知識,基礎中的基礎
    發表于 03-16 14:28 ?29次下載

    模擬電路數字電路知識匯總

    數字信號完成對數字量進行算術運算和邏輯運算的電路稱為數字電路,或數字系統。由于它具有邏輯運算和邏輯處理功能,所以又稱
    發表于 09-11 15:22 ?77次下載
    模擬<b class='flag-5'>電路</b>與<b class='flag-5'>數字電路</b><b class='flag-5'>知識</b>匯總

    數字電路基礎知識與要點

    數字電路基礎知識與要點
    發表于 09-19 09:00 ?62次下載
    <b class='flag-5'>數字電路基礎知識</b>與要點

    數字電路比模擬電路的優點

    本文主要詳細介紹了數字電路比模擬電路的優點,分別是數字電路結構簡單、數字電路容易標準化、數字電路
    發表于 05-16 17:50 ?1.9w次閱讀

    基于FPGA的數字電路設計

    數字電路作為一門專業基礎課,除了介紹數字電路的理論知識外,更需要通過配套的實驗平臺將理論知識和實踐環節相結合,培養學生的動手能力和實踐創新能力。
    的頭像 發表于 08-16 12:03 ?7689次閱讀
    基于FPGA的<b class='flag-5'>數字電路</b>設計

    數字電路中最基本的門電路

    電路數字電路中最基本的邏輯單元。它可以使輸出信號與輸入信號之間產生一定的邏輯關系。在數字電路中,信號大都是用電位(電平)高低兩種狀態表示,利用門
    的頭像 發表于 09-16 15:04 ?3757次閱讀

    數字電路基礎知識

    數字電路基礎知識
    發表于 11-15 17:12 ?0次下載

    17個圖解數字電路基礎知識

    本文主要介紹數字電路基礎知識,用最簡潔的內容介紹最核心的知識
    的頭像 發表于 01-14 11:41 ?1.5w次閱讀

    數字電路基礎知識分享1

    數字芯片本質是0-1邏輯。我們將用系列文章來一起學習數字電路基礎。我們的目標不是求大求全,而是整理一些面試過程跟數字電路基礎相關的知識點,以及平時工作中經常用到的
    的頭像 發表于 05-04 15:00 ?1205次閱讀

    數字電路知識點總結

    本文整理了數字電路課程中的相關基本的知識點和較為重要的知識點,用于求職的數電部分的知識準備,差缺補漏。
    的頭像 發表于 05-30 15:07 ?5040次閱讀
    <b class='flag-5'>數字電路</b><b class='flag-5'>知識</b>點總結
    网上百家乐官网的技巧| 竞咪百家乐官网的玩法技巧和规则| 百家乐怎么会赢| 發中發百家乐的玩法技巧和规则| 海原县| 潘多拉百家乐官网的玩法技巧和规则 | 哪个百家乐平台信誉好| 皇冠现金网导航| 百家乐官网赌场策略大全| 百家乐博牌规例| 许昌市| 帝王百家乐新足球平台| 188比分| 真人百家乐官网网络游戏信誉怎么样| 百家乐策略网络游戏信誉怎么样 | 现场百家乐牌路分析| 三易博| 玩百家乐官网上高尔夫娱乐场| 大发888老虎机手机版下载安装| 百家乐官网怎么| 太阳城88娱乐城| 百家乐官网赌博策略论坛| 百家乐官网庄家必赢诀窍| 立博百家乐官网的玩法技巧和规则 | 百家乐官网投注很好| 线上百家乐官网开户| 真人百家乐视频赌博| 大发888娱乐城 真钱bt| 百家乐官网真人博彩的玩法技巧和规则| 威尼斯人娱乐城怎么赢| 百家乐官网不倒翁缺点| 百家乐路子分| 百家乐官网娱乐城介绍| 新梦想百家乐的玩法技巧和规则 | 小孟百家乐官网的玩法技巧和规则| 大发888掉线| 网上百家乐官网解密| 皇冠正网| 百家乐投注科学公式| 百家乐官网网上技巧| 凯斯百家乐的玩法技巧和规则 |