数控AGC实现(转)
一种混合式高动态范围AGC算法与FPGA实现 http://www.sohu.com/a/221438387_781333
基于FPGA的快速自动增益控制系统设计 http://www.docin.com/p-1435248299.html
xilinx 平方根IP核的用法- 整形平方根算法 https://blog.csdn.net/sinat_25326461/article/details/72388355
本文引用地址: http://www.21ic.com/app/eda/201103/78261.htm
1 数控AGC 实现方法
数控AGC 原理框图如图1 所示,在信号数字化后,根据样本估计出信号功率,与参考值比较后,反馈控制前端的数控VGA 芯片,将信号输出调整到ADC 的满量程附近,以获得全程数字量化和最大输出信噪比。
图1 AGC 环路框图
要实现AGC 控制,必须先检测信号幅度或功率的估计值,通过正交I/Q 的均方值即I2+ Q2 精确得到AGC 信号功率,其中I、Q 为同相正交2 支路的符号峰值采样点数据。计算机仿真表明,当信号以每符号4 采样点进行统计平均估计时,得到的估计值与定时恢复无关,即I、Q 值不必为最佳采样点。
由于输入信号的幅度通常是缓慢变化的,故可通过一段时间样值的累加进行一次估计,通常将累加值与参考值相比,得到AGC 需放大或缩小的倍数。在这里,将除法运算改为对数运算后的减法实现,通过与参考值的比较,直接对应需放大或缩小的dB数。再通过查表,转化为数控VGA 芯片的控制字,反馈至前端。这与模拟AGC 相比,由于反馈部分的主要功能由数字方法实现,使得复杂的控制要求用数字信号处理技术能够较容易的实现,且具有快速收敛和精确的稳态响应等优点。
2 计算机仿真
在Matlab 中,首先生成PN 9 的伪随机码作为基带信号。进行格雷码的预差分编码和成型滤波,上变频、加噪、下变频后得到正交和同相2 路基带信号:
式中,△ω为载波频偏,θ0 为载波相位,则:
仿真中,设置其中信噪比为12 dB,中频为70 MHz,符号率2 Mbps,采样率为64MHz,抽取率为8,信号功率估计时累积长度为1 024 点,即256 个符号。
调整前采样所得的中频信号如图2 所示。其中前4 000 点的信号放大倍数为1,4 001 至9 000 点的信号放大倍数为10,9 000 点之后的放大倍数为20,即信号幅度有2 次变化,需通过AGC 进行调整,使信号幅度保持恒定。图2( a) 为AGC 调整后的中频信号,其中调整的参考值为前4 000点信号的功率,可以看出在4 000和9 000附近信号有一段抖动,这是调整所需的相应时间; 下图为AGC 的放大倍数,同样的,在4 000和9 000点产生了跳变,以响应信号幅度的变化,其中前4 000点的放大倍数为1,4 001至9 000点的放大倍数变为0. 1,而9 000点之后则为0. 05。另外根据仿真结果,信号功率估计值最大偏差小于1 dB,因此,该估计算法和调整控制是准确有效的。
图2 调整前后的信号及放大倍数
3 硬件实现
硬件方案的具体实现如图3 所示。上面为信号处理板卡,下面为中频执行板卡。其中控制板卡上AD 转换由AD9640 芯片完成,输入信号的峰峰值可设置范围为1~ 2 V,本系统初始化为2 V; 控制部分在FPGA XC4VLX100 中完成,以产生时钟、使能和数据三线控制信号; 作为环路执行元件的是前端中频板上的AD8370,其控制功率增益范围为- 11~ + 34 dB; 3 dB带宽为750 MHz; 串行的8 bit 控制信号接口; 提供200Ω差分输入和100Ω差分输出。由于本方案动态范围需达60 dB,故采用了2 级AD8370 级联,为了让系统工作稳定,设计时应使2 级的放大倍数尽量接近,以避免第2 级出现饱和,因此在将调整的倍数转化为AD8370 控制字时,需特别注意。
图3 硬件测试板卡
系统由微波信号源4438C 产生中频70 MHz、比特率4 Mbps 的QPSK 信号,采样时钟64 MHz,由前端中频部分的DDS 产生,系统抽取率仍为8,由DDC后的CIC 完成。
实现中,I、Q 两路的均方值由FPGA 中乘法器DSP48 求取,累加器完成均方值的累加,而累加样本点的个数直接决定了控制调整的相应速度,累加长度太长会使相应速度变慢,无法跟上信号的变化; 但长度太短又会使估计的功率值不准,起伏太大从而引起控制精度的下降,通过实测发现通常数百符号即可得出较准确的信号功率估值,因此对符号率百K 以上量级的信号而言可以在数毫秒甚至更短的时间内完成信号的精确调整。本系统设置为1 ms 进行一次调整,即2 048 个符号得到一次估计值。此外,求对数运算以及信号需调整的倍数到控制字的转换都通过查表实现,其中增益控制字查找表的可实现增益为- 13~ + 60 dB,其深度为4 096,即每1 dB的变化对应56 个步进,可实现最小0. 02 dB的调整,因此结合之前的准确估计一起实现了较高的控制精度。
为避免低信噪比情况下AD 长时间工作在溢出状态,系统设置的参考值设计为比AD 满量程小2 dB左右。经测试,当4 dBm 的QPSK 信号直接输入AD 时,AD 采集信号的量化值为# 6 000 左右,距14位满量程对应的# 8 192 约2 dB,故以此功率为参考。如图4 所示,横轴为输入信号功率,纵轴为AGC的增益。理论上2 级AD8370 级联能实现90 dB 的动态,但实测中,在信噪比10 dB 条件下,单级在- 7~ + 28 dB 范围,2 级联合在- 14~ + 56 dB时,其线性性较好,故在本系统中实现了近70 dB的动态范围。
图4 输入信号强度及对应的AGC 增益
4 结束语
首先介绍了数控AGC 的原理,指出AGC 的数字实现方法的优点。在此基础上,对功率检测以及反馈控制方法进行了计算机仿真,结果表明,该方法是可行的,适合FPGA 实现。在硬件实现中,通过2级AD8370 级联实现了近70 dB 的动态范围变化,并保证了控制精度误差小于1 dB。
数控AGC实现(转)的更多相关文章
- AGC电路以及AD8347正交解调芯片
1.AGC电路的工作原理 1.1AGC电路的用途 随着电磁环境的日益恶化, 不同频段电磁信号之间的相互串扰, 以及可能出现的人为干扰, 将会导致接收机输入端口的信号动态范围较大, 一旦出现电路饱和或是 ...
- 远程监控显示brother数控机床数据
最近几个月公司太忙了,到现在已经连续出差两个多月了. 这个项目这要做mes系统,涉及到产品在机床的加工过程监控,然后led看板显示产品进度. 这里的主角是日本的brother数控机床,服务器按照一定频 ...
- PureBasic—数控编辑框与调节块和进度条
三个有关上下限问题的控件,它们也是主要控件的组成部分,分别为:SpinGadget() 数控编辑框TrackBarGadget() 调节块控件ProgressBarGadget() ...
- AtCoder Beginner Contest 122 D - We Like AGC(DP)
题目链接 思路自西瓜and大佬博客:https://www.cnblogs.com/henry-1202/p/10590327.html#_label3 数据范围小 可直接dp f[i][j][a][ ...
- AtCoder Beginner Contest 122 D - We Like AGC (DP)
D - We Like AGC Time Limit: 2 sec / Memory Limit: 1024 MB Score : 400400 points Problem Statement Yo ...
- 【博客大赛】使用LM2677制作的3V至24V数控可调恒压源
[博客大赛]使用LM2677制作的3V至24V数控可调恒压源 http://bbs.ednchina.com/BLOG_ARTICLE_3013105.HTM LM2677,是TI公司生产的高效率 ...
- AEC、AGC、ANS在视音频会议中的作用?
AGC是自动增益补偿功能(Automatic Gain Control),AGC可以自动调麦克风的收音量,使与会者收到一定的音量水平,不会因发言者与麦克风的距离改变时,声音有忽大忽小声的缺点.ANS是 ...
- AGC 018E.Sightseeing Plan——网格路径问题观止
原题链接 鸣谢:AGC 018E.Sightseeing Plan(组合 DP) 本蒟蒻认为,本题堪称网格路径问题观止. 因为涵盖了不少网格路径问题的处理方法和思路. 一句话题意: 给你三个矩形. 三 ...
- 使用LM2576制作数控电源
http://www.daxia.com/bibis/moredata30_1207792_29862.shtml 图中DA和PWM任选其一, 当DA或PWM输出为0~1.25V时,输出在12.5V~ ...
随机推荐
- tstringlist详细用法
TStringList 类是在Delphi使用最厂的一个对像,我们这里一起来看看 TStringList 的详细用法. 先把要讨论的几个属性列出来:1.CommaText2.Delimiter &am ...
- Google云平台使用方法 | Hail | GWAS | 分布式回归 | LASSO
参考: Hail Hail - Tutorial windows也可以安装:Spark在Windows下的环境搭建 spark-2.2.0-bin-hadoop2.7 - Hail依赖的平台,并行处 ...
- C# winform 窗体怎么隐藏标题栏,不显示标题栏
//没有标题 this.FormBorderStyle = FormBorderStyle.None; //任务栏不显示 this.S ...
- 20180831xlVBA_WorksheetsCosolidate
Sub WorkSheetsConsolidate() Rem 设置求和区域为 单元格区域;单元格区域 Const Setting As String = "A1;B2:C4" D ...
- Linux简单了解
Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和U ...
- H5微信页面开发 IOS系统 input输入框失去焦点,软键盘关闭后,被撑起的页面无法回退到原来正常的位置,导致弹框里的按钮响应区域错位
H5微信页面开发,软键盘弹起后,若原输入框被遮挡,页面整体将会上移,然而当输入框失焦,软键盘收起后,页面未恢复,导致弹框里的按钮响应区域错位. 解决方案:给输入框(或select选择框)添加失去焦点的 ...
- addEventListener调用带参数函数
当传递参数值时,使用"匿名函数"调用带参数的函数: <body> <button id="btn">click me</butto ...
- Being a Good Boy in Spring Festival HDU - 1850
桌子上有M堆扑克牌:每堆牌的数量分别为Ni(i=1…M):两人轮流进行:每走一步可以任意选择一堆并取走其中的任意张牌:桌子上的扑克全部取光,则游戏结束:最后一次取牌的人为胜者. 现在我们不想研究到底先 ...
- web功能模块测试用例(模板)
web功能模块测试用例(模板): https://wenku.baidu.com/view/4ada3464ddccda38376baff8.html 如图所示:
- leetcode_输入一个数组,目标树,检查目标是数组下标的哪两个之和,不准重复
今天是leetcode第一天,但是不太顺利.做这些,想不到 原题目: 我给的答案: class Solution { public: vector<int> twoSum(vector&l ...