FPGA数字滤波----梯形成形设计

多道脉冲幅度分析器的核心,
------梯形成形算法。
单指数脉冲梯形成形算法算法:
设前置放大器输出为理想指数信号,
时域表达式为:
Ui(t)=Umaxe-t/taoμ(t)
Umax 为脉冲幅值,tao为前端放大器的时间常数,μ(t)为标准单位阶跃函数,以Ts为周期对输入信号进行采样,可以得到脉冲序列的表达式:
Ui(t)=Umaxe-nTs/taoμ(t)
令e-nTs/tao=q,对上式进行Z变换得:
Ui(t)=Umaxz/(z-d)
理想梯形函数的分段函数表示如下: Uo(t)=y1(t)+y2(t)+y3(t)+y4(t)
y1(t)=(Umax/ta)t y2(t)=-y1(t-ta)
y3(t)=-y1(t-tb)
y4(t)=y1(t-tc)
式中:ta、tb、tc分别为梯形的上升沿、平顶、下降沿的宽度。令ta=naTs、tb=nbTs、tc=ncTs,理想梯形函数的分段函数经过单边的z变换可表示为:
Uo(z)=Umax
(1-z-na-z-nb+z-nc)/(1-2z-1+z-2)
从而可得梯形成形算法的传递函数:
H(z)=Uo(z)/Ui(z)=[z(1-z-na)(1-z-nb)(1-qz-1)]/[na(1-z-1)2

Matlab仿真如下图

根据梯形成形算法,在Matlab中编写相应的脚本测试程序,运行后如下图所示。
在这里插入图片描述
在用Matlab验证算法成功后根据相应参数对梯形成形算法进行设计,最后在FPGA中进行实现。本人做了两种方法,将其做对比。
方法一:
根据梯形成形算法直接用硬件描述需要编写工程,完成后使用modelsim软件做功能仿真进行验证,的结果如下图。
![在这里插入图片描述]在这里插入图片描述
从matlab脚本仿真,再到modelsim功能仿真验证了数字梯形成形算法的可行性。接下来,将代码下载进FPGA中进行测试,本人使用AD9226对信号进行采集。接入信号发生器,产生脉冲输入,用逻辑分析仪SingalTap ii观测,成形效果完美。
在这里插入图片描述
方法二:System generator数字信号处理工具,搭建梯形成形算法模型,自动生成梯形成形算法的Verilog 代码,此方法避开Verilog代码编写,但是对这里截位要求需控制的很好,不然自动生成的代码功能仿真没问题,时测出大问题。而且只适用于赛灵思芯片,代码可读性可移植性较差。随着芯片制裁,赛灵思和阿尔特拉的FPGA一片难求价格昂贵,本人认为System generator局限性很大,可做认知学习,真正长久还是考写代码。增强工程的可移植性,找到相应国产可替代方案。
在这里插入图片描述
本人现在从事FPGA开发工作,曾经研究方向是核电子学,如有兴趣小伙伴可后台私信我。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

777你猜猜777

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值