部分串行收缩期FIR滤波器实现
这个例子展示了如何实现一个32 tap低通FIR滤波器使用离散冷杉滤波器块。
示例模型中的两个过滤器块实现了一个相同的部分串行32分tap过滤器。上面的块通过指定循环数来配置串行过滤器N输入样本之间。这种间距允许每个乘法器由N系数。第二个块被配置为使用一定数量的乘数,米。这两种配置的结果是相同的过滤器实现。对于32个对称系数,有16个唯一系数。因此,滤波器共享8个系数之间的2个乘数中的每一个。
模型显示了两种应用输入样本的方法,这取决于你设计的其余部分的速率。
开放模式
打开模型。检查顶部块参数。滤波器结构被设置为部分连续收缩
和指定serialization factor为被设置为有效输入样本之间的最小循环次数
。数量的周期使用变量设置(为8),numCycles
。在下一层,指定serialization factor为被设置为倍增器的最大数目
。数量的乘数使用变量设置(为2)。变量在PostLoadFcn
回调函数。
从颜色编码可以看出,两个过滤块的速率是相同的,而生成的输入样本的速率是不同的。
运行模型并检查结果
运行模型。观察生成的图中的输入输出信号。生成图的代码在PostSimFcn
回调函数。
使用模型工具栏打开逻辑分析仪。如果按钮未显示,展开审查结果应用画廊。
检查上升的边缘准备好了
,validIn
,validOut
。
生成HDL代码
要从任一Discrete FIR Filter块生成HDL代码,右键单击该块并选择Create子系统from Selection。然后右键单击子系统并选择HDL代码>生成子系统的HDL代码。两个区块生成相同的HDL代码。