首页 > 其他分享 >数字信号处理:自动增益控制(AGC)

数字信号处理:自动增益控制(AGC)

时间:2024-11-01 20:46:11浏览次数:6  
标签:11 信号处理 AGC signed 增益 input 自动增益

自动增益控制:

:自动增益控制(Automatic Gain Control, AGC)是一种信号处理技术,用于在接收端调整输入信号的增益(或放大系数),以保持信号在一个合适的强度范围内,从而防止信号过弱或过强。

工作原理:

AGC电路通过测量接收到的信号强度,将该强度与一个预设的理想水平进行比较,并根据两者的差异自动调整放大器的增益。例如,如果输入信号变得太弱,AGC会自动增加增益;而当输入信号太强时,则会降低增益。这样可以确保接收端获得一个较为稳定的信号强度。

第一个仿真图有点小错误:程序并没有错误。将值设置为有符号数和模拟。

修改完如上图所示。

`timescale 1ns / 1ps

module tops_AGC(
input i_clk,
input i_rst,
input i_flag,
input signed[11:0]i_x,
output signed[11:0]o_egy,
output signed[11:0]o_y,
output o_flag
);
    
//energy
wire signed[11:0]w_absx = (i_x[11] == 1'b0)?i_x:~i_x+1'b1; 
 
integer i;
reg signed[11:0]dly_absx[2048:1]; 
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
	  begin
	       for(i=1;i<=2048;i=i+1)
	       dly_absx[i]<=12'd0;
	  end
else  begin
           dly_absx[1]<=w_absx;
	       for(i=2;i<=2048;i=i+1)
	       dly_absx[i]<=dly_absx[i-1];
      end
end 

reg [23:0]power_E;
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
	  begin
	  power_E  <= 24'd0;
	  end
else  begin
      power_E  <= power_E + dly_absx[1]-dly_absx[2048];
      end
end 
assign o_egy=power_E[22:11];

//signal 延迟
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

reg signed[31:0]r_pw;
always @(posedge i_clk or posedge i_rst)
begin
     if(i_rst)
	  begin
      r_pw <= 32'b0;
	  end
else begin
      r_pw <= $signed(wgains)*$signed(w_y);	
     end
end 

assign o_y=r_pw[31-12:20-12];


endmodule

标签:11,信号处理,AGC,signed,增益,input,自动增益
From: https://blog.csdn.net/sunsheets/article/details/143349816

相关文章

  • FPGA数字信号处理—1S上报一次解析数据
    数字信号结果处理完毕之后,需要定时上报,利用计数器完成定时上报;moduleError_bit_report(inputwireclk,//时钟信号inputwirerst_n,//复位信号,低有效inputwireerror_compare_ena,//误码比较使......
  • AGC 杂题
    AGC029CLexicographicconstraints有\(n\)个字符串,现在告知它们的长度\(a_i\),求使得\(\foralli\in[1,n),s_i<s_{i+1}\)的最小字符集大小。\(n\le2\times10^5,a_i\le10^9\)二分字符集大小\(|\Sigma|\),分类讨论,设起始字符为a:\(a_i<a_{i+1}\):显然\(s_{i+1}\leftarr......
  • 2024年信号处理与神经网络应用国际学术会议(SPNNA 2024) 2024 International Conferenc
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus三、大会介绍2024年信号处理与神经网络应用国际学术会议(SPNNA2024)将于2024年12月13日......
  • 第六届智能控制、测量与信号处理国际学术会议 (ICMSP 2024) 2024 6th International
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus三、大会介绍第六届智能控制、测量与信号处理国际学术会议(ICMSP2024)由西安石油大学、中海油田......
  • XCVU9P 板卡设计原理图:616-基于6U VPX XCVU9P+XCZU7EV的双FMC信号处理板卡 高性能数字
    一、板卡概述     板卡基于6UVPX标准结构,包含一个XCVU9P高性能FPGA,一片XCZU7EVFPGA,用于IO扩展接口,双路HPCFMC扩展高速AD、DA、光纤接口等。是理想应用于高性能数字计算,光纤加速的板卡。板卡全工业级芯片,满足高低温要求。 二、处理板技术指标  ●  主FPGA......
  • AT_agc064_c [AGC064C] Erase and Divide Game 题解
    先考虑所有\(l_i=r_i\)时怎么做,可以建出反向Trie树,问题转化为从根开始每次向左子树或右子树走,第一个拿到空子树的人输,直接在Trie上dp即可。考虑从叶子层开始对每一层的点合并两个子树的dp值,发现每一层值相同的连续段是较少的。于是可以维护这些连续段,每次合并要将每个......
  • [AGC010D] Decrementing
    首先考虑最简单的情况,如果有一个数是\(1\),那么第二步没有作用,胜负是固定的,先判掉。然后发现题目给了一个很奇怪的条件:所有数的最大公约数为\(1\),也就是至少有一个奇数,这提示我们从奇偶数下手。发现第二步中的最大公约数的奇数因子是毫无意义的,因为无论是奇数还是偶数除以一个......
  • XCVU9P 板卡设计原理图:616-基于6U VPX XCVU9P+XCZU7EV的双FMC信号处理板卡 高性能数字
     一、板卡概述     板卡基于6UVPX标准结构,包含一个XCVU9P高性能FPGA,一片XCZU7EVFPGA,用于IO扩展接口,双路HPCFMC扩展高速AD、DA、光纤接口等。是理想应用于  二、处理板技术指标  ●  主FPGA采用XCVU9P-2FLGA2104I;从FPGA型号为XCZU7EV-2FFVC1156I; ......
  • [AGC056C] 01 Balanced
    [AGC056C]01Balanced差分约束系统,Dijkstra算法差分约束系统的常见优化:前缀和。然后乱搞定义把边权全部变成非负即可。Code#include<bits/stdc++.h>#definelllonglong#definepfprintf#definesfscanfusingnamespacestd;constintN=1e6+7;intn,m;intu,v,......
  • 题解:AT_agc027_b [AGC027B] Garbage Collector
    ProblemLink[AGC027B]GarbageCollector题意原题翻译已经很不错了,这里不再赘述。思路推论:每次取的垃圾数量应尽可能均分。证明如图,假设有\(4\)个垃圾需要被捡起,有两种取法:取一号垃圾+取二三四号垃圾。取一二号垃圾+取二三号垃圾。前者所需能量为:\(\display......