數字信號處理的FPGA實現——混頻器(Mixer)
設計思路
在FPGA中實現一個簡單的混頻器電路,將兩個625Khz的正弦波信號相乘輸出。其中625Khz的本振信號由FPGA內部的NCO產生,625Khz的正弦波信號通過讀取外部的激勵文件(txt)產生。其中外部激勵文件由matlab仿真程序產生。
實驗效果
將兩個625Khz混頻後產生的信號中的直流分量濾除,輸出1.25Mhz正弦波信號,為了方便觀察實驗現象對波形進行625_000分頻。並且進行整形(過0檢測)輸出給led燈。
matlab仿真
實驗代碼
/*****************************************************
* Module Name : edge_get.v
* Engineer : maobitcoder
* Target Device : EP2C8Q208C8
* Tool versions : Vscode
* Create Date : 2018年3月3日20:09:14
* Revision : v1.0
* Description :實現雙邊沿檢測 高電平輸出
*****************************************************/
module edge_get(
clk,
rst_n,
signal,
pos_edge,
neg_edge
);
input clk;
input rst_n;
input signal;
output pos_edge;
output neg_edge;
reg signal_r0;
reg signal_r1;
always @(posedge clk or
negedge rst_n) begin
if (!rst_n) begin
signal_r0 <= 1‘b0;
signal_r1 <= 1‘b0;
end
else begin
signal_r0 <= signal;
signal_r1 <= signal_r0;
end
end
assign pos_edge = signal_r0 & ~signal_r1;
assign neg_edge = ~signal_r0 & signal_r1;
endmodule // edge_get
四,FPGA實現
數字信號處理的FPGA實現——混頻器(Mixer)