首页/文章/ 详情

大学毕业设计一席谈之二十二 数字AGC的matlab仿真(4)FPGA实现

4月前浏览2928

时隔三年,再次续写此系列,只为能让同行们看到真正使用的产品程序以及形成的过程,有MATLAB仿真程序,也有部分verilog代码展示,毕竟最终的仿真程序都要转换为产品。当然后续还要测试优化过程!数字AGC是在FPGA中实现的,所以就需要编写对应的verilog代码。此文价格很高,非专业人士不要付费阅读!再不写出来,感觉这些知识都要忘光了,不能让这些代码和资料在电脑里面发“霉”!本文内容接近一万字,请耐心看完!其中有大量的涉及不同使用模式的测试内容。

虽然本文归属在了毕业设计系列,但如果没有达到相关专业硕士毕业的水平,估计其中很多内容难以消化!切记提醒,勿要盲目购买!当年完成下变频的研制,为公司省了上百万的费用,其中的核心就是AGC。下面是下变频器的架构框图!


之前的文章已经给出了AGC的仿真程序,从浮点仿真开始,然后保证了性能之后转为定点程序,这是已经在产品中使用的代码。不过当年在使用前经过的大量的测试,在测试过程中还做了相关的改动。为什么还要改动呢?要适应传输体制。不同的调制方式下使用AGC的方式存在差异,这就是实践出真知!当年AGC的测试工作就耗了项目组接近一个月的时间!测试工作中会发现很多实际问题,比如快充慢放问题!这是个非常实际的工程现象,处理不好会导致通信性能下降!

先看看芯片里面关于AGC的内容,写的非常好,这是当年我研制的目标要求,当然还有电台的特殊要求,会一一道来的。

看到芯片资料,你就会配置芯片以满足产品需求,可惜的是后来这个芯片停产了!于是只能自研替代!
AGC的增益范围!
坐标转换方便进行增益换算!
AGC算法简介!当年本人写仿真程序也借鉴了本文档,看了不下数十次!
本人写的增益转换表也是如此!对应的仿真代码如下!为什么要做表?大家想过在FPGA中如何完成小数增益的调整呢?这就需要做表了,因为这是非线性的转换!
如何细化?请仔细看好下面的内容!
%%%%%%%%%      积分模块     %%%%%%%%%%%%
loop_mid(i+1) = loop_mid(i) + loop_input(i); % 输出5位整数 16位小数
% 要使得调整精度非常高,小数部分的内容也必须实现!
%*********   增益转换为乘数    *********   
%%% 整数dB值转换为乘数     

来源:通信工程师专辑
非线性MATLAB芯片通信
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-06-16
最近编辑:4月前
算法工匠
博士后 | 高级工程师 诚信做事 认真讲课 传播知识
获赞 395粉丝 2573文章 315课程 40
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈