1. 程式人生 > >數字信號處理的FPGA實現——混頻器(Mixer)

數字信號處理的FPGA實現——混頻器(Mixer)

外部 matlab code *** str rev 波形 white sed

  1. 設計思路

    在FPGA中實現一個簡單的混頻器電路,將兩個625Khz的正弦波信號相乘輸出。其中625Khz的本振信號由FPGA內部的NCO產生,625Khz的正弦波信號通過讀取外部的激勵文件(txt)產生。其中外部激勵文件由matlab仿真程序產生。

  2. 實驗效果

將兩個625Khz混頻後產生的信號中的直流分量濾除,輸出1.25Mhz正弦波信號,為了方便觀察實驗現象對波形進行625_000分頻。並且進行整形(過0檢測)輸出給led燈。

  1. matlab仿真

    實驗代碼

/*****************************************************

  * Module Name : edge_get.v

  * Engineer : maobitcoder

  * Target Device : EP2C8Q208C8

  * Tool versions : Vscode

  * Create Date : 20183320: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)