LabVIEWwilliam hill官网
直播中

王小佳6565

3年用户 7经验值
擅长:模拟技术
私信 关注
[问答]

怎么在labview FPGA端实现离散传递函数的表达?

我只知道有一个这个控件,叫直接型离散传递函数实现,但是我输入离散传递函数的系数之后,他的输出有问题。我再非FPGA端尝试使用相同的系数进行仿真,输出是没有问题的。我不知道前面的问题出在哪里,或者说还有没有其他的方法实现传递函数的表达。 我是用来构建一个控制算法的。GFLL5LY(}%ION@}J1XQK~QM.png

回帖(1)

李霞

2024-5-9 16:42:21
在LabVIEW FPGA端实现离散传递函数的表达,可以使用Direct Form Discrete Transfer Function(直接型离散传递函数实现)控件。如果在使用该控件时遇到输出问题,可以尝试以下步骤进行排查和解决:

1. 确保系数输入正确:检查输入的离散传递函数系数是否正确,包括分子系数(b0, b1, ..., bn)和分母系数(a1, a2, ..., an)。确保这些系数与非FPGA端的仿真系数一致。

2. 检查数据类型:确保输入信号和输出信号的数据类型一致。在FPGA端,通常使用定点数或浮点数。如果数据类型不匹配,可能导致输出问题。

3. 检查缓冲区大小:Direct Form Discrete Transfer Function控件需要一定的缓冲区来存储历史数据。确保缓冲区大小足够大,以避免溢出或数据丢失。

4. 检查初始化:在FPGA端,需要对Direct Form Discrete Transfer Function控件进行初始化,以确保滤波器的初始状态正确。可以使用FIR Filter Initialize VI来初始化滤波器。

5. 检查采样率:确保FPGA端的采样率与非FPGA端的仿真采样率一致。不同的采样率可能导致输出差异。

6. 考虑舍入误差:FPGA端通常使用定点数进行计算,这可能导致舍入误差。如果舍入误差对系统性能有影响,可以尝试使用浮点数或调整系数以减少误差。

7. 使用其他方法:如果Direct Form Discrete Transfer Function控件仍然无法满足需求,可以尝试使用其他方法实现传递函数,如使用FIR Filter控件实现FIR滤波器,或使用IIR Filter控件实现IIR滤波器。

8. 调试和优化:在FPGA端进行调试和优化,以提高系统性能和稳定性。可以使用LabVIEW FPGA的调试工具,如波形图、探针和性能计数器,来帮助定位问题。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分