首页 > 其他分享 >m基于FPGA的AGC自适应增益控制系统verilog实现,包含testbench

m基于FPGA的AGC自适应增益控制系统verilog实现,包含testbench

时间:2023-06-13 21:34:22浏览次数:35  
标签:采样 数字 FPGA AGC verilog 信号 接收 数字滤波

1.算法仿真效果 Vivado2019.2仿真结果如下: 1.png

放大后可以看到:

2.png3.png4.png

2.算法涉及理论知识概要 数字AGC(Automatic Gain Control)是一种广泛应用于通信系统中的自动增益控制技术。它可以自动调节接收信号的增益,以使信号的强度保持在适当的范围内,从而保证接收到的信号质量。

    数字AGC广泛应用于通信系统中,如无线电通信、卫星通信、雷达系统等。在这些应用中,数字AGC可以保证接收到的信号强度始终在适当的范围内,从而保证通信的质量和可靠性。以无线电通信为例,数字AGC可以使接收机在强信号和弱信号之间自动切换,从而避免强信号引起的失真和弱信号引起的噪声。数字AGC还可以减少对电池的能量消耗,延长电池寿命。在卫星通信中,数字AGC可以使接收机在不同的天线方向之间自动切换,并根据信号的强度进行自动调节,从而保证接收到的信号质量和可靠性。在雷达系统中,数字AGC可以保证雷达接收到的回波信号强度始终在适当的范围内,从而保证雷达的探测距离和探测精度。总之,数字AGC是一种非常重要的技术,在通信系统、雷达系统等领域有着广泛的应用和发展前景。

   在文中,我们将详细介绍基于FPGA的数字AGC的原理和工作过程实现步骤。数字AGC的基本原理是在接收信号经过前端放大器之后,将信号进行采样、ADC转换、数字滤波等处理,得到信号的强度值,并将其与设定的阈值进行比较,然后根据比较结果对前端放大器的增益进行自动调节,使信号的强度保持在适当的范围内。具体来说,数字AGC的工作过程如下:

采样:接收信号经过前端放大器之后,将其进行采样,得到一系列的采样值。 ADC转换:将采样值通过ADC转换成数字信号。 数字滤波:对ADC转换后的数字信号进行数字滤波,去除高频噪声和低频漂移。 平方运算:对数字滤波后的信号进行平方运算,得到信号的功率值。 移动平均:对平方运算后的信号进行移动平均,得到信号的平均功率值。 比较:将平均功率值与设定的阈值进行比较,得到比较结果。 自动调节:根据比较结果对前端放大器的增益进行自动调节,使信号的强度保持在适当的范围内。 以上就是数字AGC的基本原理。下面我们将介绍如何在FPGA中实现数字AGC。

3.Verilog核心程序

reg signed[11:0]dly_x[2149:1]; 
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
	  begin
	       for(i=1;i<=2149;i=i+1)
	       dly_x[i]<=12'd0;
	  end
else  begin
           dly_x[1]<=i_x;
	       for(i=2;i<=2149;i=i+1)
	       dly_x[i]<=dly_x[i-1];
      end
end 
//flag 延迟
reg signed[2148:0]dly_flag; 
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
	  begin
	      dly_flag<=2149'd0;
	  end
else  begin
          dly_flag<={dly_flag[2147:0],i_flag};
      end
end 
wire signed[11:0]w_y   = dly_x[2149];
assign o_flag= dly_flag[2048];
 
 
//自动增益
wire [19 : 0] gains;
blk_agc blk_agc_u (
  .clka(i_clk),            // input wire clka
  .rsta(i_rst),            // input wire rsta
  .addra(o_egy),          // input wire [8 : 0] addra
  .douta(gains),          // output wire [19 : 0] douta
  .rsta_busy()  // output wire rsta_busy
);
 
 
reg signed[19:0]wgains;
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
	  begin
      wgains <= 20'b0;
	  end
else begin
          if(o_flag == 1'b1)
          wgains <= gains;
          else
          wgains <= wgains;
     end
end
endmodule

标签:采样,数字,FPGA,AGC,verilog,信号,接收,数字滤波
From: https://blog.51cto.com/matworld/6472972

相关文章

  • m基于FPGA的CRC循环冗余校验系统verilog实现,包含testbench
    1.算法仿真效果本系统进行了两个平台的开发,分别是:Vivado2019.2Quartusii18.0+ModelSim-Altera6.6dStarterEdition其中Vivado2019.2仿真结果如下:Quartusii18.0+ModelSim-Altera6.6dStarterEdition的测试结果如下:对比matlab结果:2.算法涉及理论知识概要CRC(CyclicR......
  • m基于FPGA的CRC循环冗余校验系统verilog实现,包含testbench
    1.算法仿真效果本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera6.6d StarterEdition 其中Vivado2019.2仿真结果如下:   Quartusii18.0+ModelSim-Altera6.6d StarterEdition的测试结果如下:  对比matlab结果:  2......
  • m基于FPGA的AGC自适应增益控制系统verilog实现,包含testbench
    1.算法仿真效果Vivado2019.2仿真结果如下:  放大后可以看到:   2.算法涉及理论知识概要       数字AGC(AutomaticGainControl)是一种广泛应用于通信系统中的自动增益控制技术。它可以自动调节接收信号的增益,以使信号的强度保持在适当的范围内,从而保证接收到......
  • AGC043
    AGC043A.RangeFlipFindRoute简单DPB.123Triangle推性质。利用模运算将减法变成加法(在绝对值0/1的情况下)。GiantGraph类似于博弈论的东西。首先考虑\(n^2\)建图的做法,在考虑不建图,利用虚建边的形式做。参考:题解AT5800【[AGC043C]GiantGraph】-Kewth的洛谷博......
  • AGC033
    AGC033听讲着感觉没有做的那套AGC055难。主要是套路比较多。A.DarkerandDarker简单的BFS即可。B.LRUDGame有两种做法:逆着考虑,还原可赢的初始区间。对于先手,当前如果有一个向上走的,那么纵向上界便会被抬高。其他方向类似。对于后手,与先手相反,会使得范围变小,但......
  • Xilinx FPGA,“加速”视频质量提升
    Photoby ChrisPeeters from Pexels本文内容Xilinx张吉帅在LiveVideoStackCon2019深圳站上的精彩分享,他将重点讨论异构计算中非常具有潜力的一部分——FPGA,并详细介绍赛灵思以及其技术生态合作伙伴在有关视频加速,图片转码等方面的解决方案。 文/张吉帅整理/LiveVideoSt......
  • Atcoder-AGC033C
    看到这道题,是个博弈论,没见过树上的,于是想到在数列里的博弈论,又联想到树的特殊形式————链。于是我们来讨论一下链的情况(对于没有硬币的点,我们就视为它被删掉了):讨论链的情况发现若是选择两端的点,顶点数会减一;若是选择中间的点,顶点数会减二。现在我们站在链的角度来思考......
  • m基于FPGA的基础OFDM调制解调verilog实现,包括IFFT和FFT,包含testbench
    1.算法仿真效果其中Vivado2019.2仿真结果如下:2.算法涉及理论知识概要正交频分复用(OrthogonalFrequencyDivisionMultiplexing,OFDM)是一种多载波调制技术,其基本原理是将高速数据信号分成多个低速子载波,在每个子载波上调制数据,将所有子载波叠加在一起形成OFDM信号。OFDM信号具......
  • m基于FPGA的基础OFDM调制解调verilog实现,包括IFFT和FFT,包含testbench
    1.算法仿真效果其中Vivado2019.2仿真结果如下   2.算法涉及理论知识概要       正交频分复用(OrthogonalFrequencyDivisionMultiplexing,OFDM)是一种多载波调制技术,其基本原理是将高速数据信号分成多个低速子载波,在每个子载波上调制数据,将所有子载波叠加在一......
  • m基于FPGA的16QAM调制解调通信系统verilog实现,包含testbench,不包含载波同步
    1.算法仿真效果本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera6.6d StarterEdition 其中Vivado2019.2仿真结果如下:  Quartusii18.0+ModelSim-Altera6.6d StarterEdition的测试结果如下: 2.算法涉及理论知识概要   ......