該實驗可以作為DDS Compiler IP核的使用典例
背景知識
混頻原理
混頻就是把兩個不同的頻率信號混合,得到第三個頻率。在模擬電路中經常見到的就是把接收機接收到的高頻信號,經過混頻變成中頻信號,再進行中頻放大,以提高接收機的靈敏度。
數字電路中最簡單的混頻便是兩個信號做乘法,可以得到它們的和頻信號與差頻信號。數字混頻在通信的調制、解調、DUC(數字上變頻)、DDC(數字下變頻)等系統中應用廣泛。通常把其中一個信號稱為本振信號(localoscillator),另一個信號稱為混頻器的輸入信號。
NCO&DDS
NCO是Altera公司Quartus中的NCOIP核[Numerically controlledoscillators數控振蕩器]
DDS是Xilinx公司Vivado中的DDSCompiler IP核[Direct DigitalSynthesizers直接數字合成器]
NIOS是Altera公司推出的,是為了配合FPGA而設計的
ARM是Xilinx公司集成的,集成的目的也是為了方便FPGA的使用
它們都是嵌入式處理器
程序設計
設計思路
程序設計系統時鐘5MHz,625kHz的輸入信號與625kHz的本振信號做混頻,根據混頻原理會得到1.25MHz的和頻信號與0Hz(直流),將直流濾除掉得到1.25MHz的有效信號。
如何濾除直流信號?
隔離直流信號最常用的方法就是用電容進行隔直!
就是在前后級電路之間串接一個電容,電容的充放電時間要大于信號頻率。
以下濾除直流信號部分將采取一種比較特殊的方式!
頂層模塊接口
module Mixer
(
input clk, //5MHz系統時鐘
input rst_n, //低電平有效復位信號
input [9:0] din, //輸入信號
output [9:0] s_oc, //本振信號,625kHz
output out_valid, //NCO輸出有效信號
output [19:0] dout //混頻輸出信號
);
生成本振信號
wire [9:0]oc_sin;
oc oc
(
.phi_inc_i (16'd8192), //相位增量,對應625kHz
.clk (clk),
.reset_n (rst_n),
.clken (1'b1), //時鐘允許信號
.fsin_o (oc_sin), //本振正弦信號
.out_valid (out_valid) //輸出有效標志
);
混頻
接下來用乘法進行混頻。我們都知道計算機中有帶符號數signed和無符號數unsigned,還知道計算機經常以二進制補碼的形式表示帶符號數。
在FPGA設計中,不管是Altera還是Xilinx,它們的IP核幾乎都是采用二進制補碼帶符號數,也有很多的ADC、DAC芯片的數據接口也采用的是二進制補碼。因此,在設計中,我們要清楚什么時候用什么數值表示法。
濾除混頻后的直流信號
由于5Mhz的系統時鐘是625kHz信號的8倍,所以連續8個點的平均值便是直流分量
DDS Compiler IP核的使用
基本配置
位寬問題
產生sin與cos信號
產生帶有相位偏移的信號
-
模擬電路
+關注
關注
125文章
1561瀏覽量
102796 -
接收機
+關注
關注
8文章
1182瀏覽量
53526 -
混頻器
+關注
關注
10文章
681瀏覽量
45737 -
DDS
+關注
關注
21文章
634瀏覽量
152728 -
數字混頻
+關注
關注
0文章
4瀏覽量
7479
發布評論請先 登錄
相關推薦
評論