天天看點

【AGC+FPGA】基于FPGA的數字AGC自适應增益設計,應用在BPSK調制解調系統中

        AGC測試,這裡我們主要通過産生一個信号,輸入到AGC中,來分析AGC的工作效果,其仿真結果如下 圖所示:

【AGC+FPGA】基于FPGA的數字AGC自适應增益設計,應用在BPSK調制解調系統中

 這裡,我們使用測試信号的時候,通過輸入一個正弦信号,實作AGC的功能。

        BPSK解調部分,這裡隻能測試部分,因為原始程式中,包括了AD部分,這個部分是外部的資料的模數轉換之後獲得數字信号,這個仿真沒法模拟。

module BPSKTop(
   input wire clk,
   input wire rst,
   input wire CE1x,
   input wire CE2x,
   input wire CE4x,
   input wire CE128x,
   input wire Reset,
   input wire[15:0] DI,
   input wire[15:0] DQ,
   input wire[31:0] BTRThr,
   output wire[15:0] TPBus1,
   output wire[15:0] TPBus2,
   output wire[15:0] TPBus3,
   output wire PLLLockFlag,
   output wire[15:0] BestSampleI,
   output wire[15:0] BestSampleQ,
   output wire BTRDecisionEn,
   output wire BTRDecisionData);

   wire [15:0] LPFOutI;
   wire [15:0] LPFOutQ;
   wire [15:0] SumLPFOutI;
   wire [15:0] SumLPFOutQ;
   wire [32:0] PLLComplexMultiplerOutI;
   wire [32:0] PLLComplexMultiplerOutQ;
   wire [15:0] NCOCosin;
   wire [15:0] NCOSin;
   wire [15:0] BPSKPLLSourceReal;
   wire [15:0] BPSKPLLSourceImag; 
   wire [15:0] BestSampleITmp;
   wire [15:0] BestSampleQTmp;
   wire TmpBit;
   wire [15:0] TmpSymbol;

BPSKTop_ComplexMult BPSKTop_ComplexMult_ins(
    .clk(clk),
    .rst(rst),
    .DI(DI),
    .DQ(DQ),
    .NCOCosin(NCOCosin),
    .NCOSin(NCOSin),
    .PLLComplexMultiplerOutI(PLLComplexMultiplerOutI),
    .PLLComplexMultiplerOutQ(PLLComplexMultiplerOutQ));
  
BPSKPLLTop U_BPSKPLLTop(
   .clk(clk), 
   .CE128x(CE128x), 
   .Reset(rst), 
   .SinkReal(PLLComplexMultiplerOutI[31:16]), 
   .SinkImag(PLLComplexMultiplerOutQ[31:16]), 
   .BPSKPLLLockFlagOut(PLLLockFlag), 
   .NCOCosin(NCOCosin), 
   .NCOSin(NCOSin), 
   .SourceReal(BPSKPLLSourceReal), 
   .SourceImag(BPSKPLLSourceImag));
   
   
   
   
SumClearFilter U_SumClearFilter(
   .clk(clk), 
   .CEx(CE128x), 
   .SinkReal(PLLComplexMultiplerOutI[31:16]), 
   .SinkImag(PLLComplexMultiplerOutQ[31:16]), 
   .SourceReal(LPFOutI), 
   .SourceImag(LPFOutQ));

BTRTop U_BTRTop(
   .clk(clk), 
   .CE1x(CE1x), 
   .CE2x(CE2x), 
   .DI(PLLComplexMultiplerOutI[31:16]), 
   .DQ(PLLComplexMultiplerOutQ[31:16]), 
   .BTRThr(BTRThr), 
   .BestSampleI(BestSampleITmp), 
   .BestSampleQ(BestSampleQTmp), 
   .BTRDecisionEn(BTRDecisionEn), 
   .BTRDecisionData(BTRDecisionData));
   
assign BestSampleI = BestSampleITmp;
assign BestSampleQ = BestSampleQTmp;
assign TPBus1 = BPSKPLLSourceReal;
assign TPBus2 = BPSKPLLSourceImag;
assign TPBus3 = SumLPFOutI;
   
endmodule      

繼續閱讀