[AGC+FPGA] Diseño de ganancia adaptativa AGC digital basado en FPGA, aplicado en el sistema de modulación y demodulación BPSK

        Prueba AGC, aquí analizamos principalmente el efecto de trabajo de AGC generando una señal e introduciéndola en el AGC. Los resultados de la simulación se muestran en la siguiente figura:

 Aquí, cuando usamos la señal de prueba, implementamos la función AGC ingresando una señal sinusoidal.

        Parte de demodulación BPSK, aquí solo la parte de prueba, porque el programa original incluye la parte AD, esta parte es la señal digital obtenida después de la conversión de analógico a digital de los datos externos, esta simulación no se puede simular.

       La prueba de simulación de la parte de demodulación BPSK es la siguiente:

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

Cómo obtener el código fuente completo

Método 1: Póngase en contacto con el bloguero a través de WeChat o QQ

Método 2: suscríbase al tutorial de MATLAB/FPGA, obtenga el caso del tutorial y 2 códigos fuente completos de forma gratuita

A15-04

Supongo que te gusta

Origin blog.csdn.net/ccsss22/article/details/123964309
Recomendado
Clasificación