0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA 实现线性相位 FIR 滤波器的注意事项

FPGA设计论坛 来源:未知 2023-05-26 01:20 次阅读

点击上方蓝字关注我们

本文将回顾对称 FIR滤波器的高效 FPGA 实现的注意事项。

本文将推导对称 FIR 滤波器的模块化流水线结构。我们将看到派生结构可以使用XilinxFPGA 的 DSP 片有效地实现。

对称 FIR 滤波器

让我们考虑一个八阶 FIR 滤波器。该滤波器的传递函数为

$$Y(z)= sum_{k=0}^{7} z^{-k} h_k X(z)$$

假设滤波器是对称的,并且我们有 $$h_k = h_{7-k}$$ 对于 $$k=0, 1, dots ,7$$。因此,传递函数可以改写为

$$Y(z)= (1+z^{-7})h_0X(z)+(z^{-1}+z^{-6})h_1X(z)+(z^{-2}+ z^{-5})h_2X(z)+ (z^{-3}+z^{-4})h_3X(z)$$

公式 1

我们可以将公式 1 实现为具有四级流水线的系统,如图 1 所示。此框图的每个阶段对应于公式 1 的四项之一。

cd76dba8-fb1f-11ed-90ce-dac502259ad0.jpg

图 1. 点击放大。

由于我们插入了三个寄存器组来执行流水线操作,因此我们预计会有三个时钟周期的延迟。就 z 变换而言,图 1 的输出将是 $$z^{-3}$$ 乘以 $$Y(z)$$(如公式 1 所示)。换句话说,我们有 $$sig7=z^{-3}Y(z)$$。因此,我们有

$$egin{align}
sig7 &= z^{-3}(1+z^{-7})h_0X(z)
+z^{-3}(z^{-1}+z^{-6 })h_1X(z)
&+z^{-3}(z^{-2}+z^{-5})h_2X(z) + z^{-3}(z^{-3}+ z^{-4})h_3X(z)

end{对齐}$$

公式 2

现在,我们应该将这四项中的每一项分配到图 1 中的适当阶段。我们有输出 sig7 的方程式,因此首先设计系统的阶段会更容易。如果我们将术语 $$z^{-3}(1+z^{-7})h_0X(z)$$ 实现为阶段 4,我们将必须级联十个延迟元件来实现 $$z^{- 10}$$。但是,如果我们将 $$z^{-3}(z^{-3}+z^{-4})h_3X(z)$$ 实现为阶段 4,我们将只需要七个延迟元件的级联。因此,我们将方程式 2 的一项实现为图 1 的阶段 4。这给出了图 2 中所示的电路。

cd8a3978-fb1f-11ed-90ce-dac502259ad0.jpg

图 2

因此,我们得到

$$sig6 = z^{-3}(1+z^{-7})h_0X(z)
+z^{-3}(z^{-1}+z^{-6})h_1X(z) +z^{-3}(z^{-2}+z^{-5})h_2X(z)$$

这使

$$sig5 = z^{-2}(1+z^{-7})h_0X(z)
+z^{-2}(z^{-1}+z^{-6})h_1X(z) +z^{-2}(z^{-2}+z^{-5})h_2X(z)$$

现在,就像第 4 阶段一样,我们可以推导出图 1 的第 3 阶段并获得图 3 中的电路。

cda4e4da-fb1f-11ed-90ce-dac502259ad0.jpg

图 3

现在,我们有

$$sig3 = z^{-1}(1+z^{-7})h_0X(z)
+z^{-1}(z^{-1}+z^{-6})h_1X(z) $$

可以改写为

$$sig3 = z^{-1}sig1
+z^{-1}(z^{-1}+z^{-6})h_1X(z)$$

在哪里

$$sig1 = (1+z^{-7})h_0X(z)$$

使用这两个方程,我们可以找到图 4 所示的终结构。

cdbf2624-fb1f-11ed-90ce-dac502259ad0.jpg

图 4.点击放大。

请注意,对于级,包含一个零输入的加法器,以强调原理图的模块化和规则结构。此外,在 sig7 之后放置了一个额外的延迟元件。如您所见,虚线框内的电路在结构的每个阶段都重复出现。这种模块化结构是理想的,因为它便于扩展结构以用于任意数量的抽头。

Xilinx 在其高性能 FPGA 中将虚线框内的电路实现为 DSP slice。这些DSP Slice可以高效级联;这就是为什么可以使用多个切片来实现给定的 FIR 滤波器的原因。在下一节中,我们将回顾 DSP48 Slice 的结构。

赛灵思 DSP Slice

DSP Slice 是多种元素,实现图 4 的 FIR 滤波器只是众多可能应用中的一种。图 5 显示了 Virtex-4 器件中 DSP48 片的框图。

cdd79d3a-fb1f-11ed-90ce-dac502259ad0.png

图 5. Virtex-4 器件中 DSP48 片的框图。图片由赛灵思提供。点击放大。

加法器/减法器的输出方程为

$$Adder Out= Big ( Z pm (X+Y+C_{in}) Big )$$

其中 X、Y 和 Z 表示相应多路复用器的输出值。多路复用器允许我们为加法器/减法器选择不同的输入。乘法是 DSP Slice 的典型应用。例如,我们可以配置 DSP48 slice 来实现以下等式:

$$Adder Out = C pm (A imes B + C_{in})$$

当使用乘法器功能时,X 和 Y 多路复用器的输出必须馈送到加法器,因为方框图中所示的乘法器生成两个部分结果,这些结果由加法器/减法器组合以产生终的乘法结果。有关详细信息,请参阅 Xilinx 的书 DSP:设计以获得结果的第 21 页。

slice 不同输入路径中的寄存器允许我们进行流水线设计。例如,我们可以直接将输入 A 应用于 slice 的数学部分,其路径中没有寄存器,或者我们可以在其路径中放置一个或两个寄存器。这是通过可以从寄存器之前或之后选择输入的多路复用器(参见图 5)实现的。

DSP 切片(图 5 中标记为“P”)的输出可以应用于同一切片的加法器/减法器以实现累加器。

如图 5 所示,DSP Slice 支持多种功能,包括乘法、乘法后累加、全流水线乘法和循环桶式移位。DSP48 Slice 的更版本包含一些修改,例如包括预加器块,这使得 Slice 更加通用。例如,预加器可用于实现对称 FIR 滤波器(如上所述)。请注意,DSP slice 旨在有效地实现上述功能。这就是为什么与使用 FPGA 通用结构的设计相比,基于 DSP 片的设计可以实现更低的功耗、更高的性能和更高效的硅片利用率。有关 Xilinx DSP slice 的更多详细信息,请参阅上述书籍。

使用 DSP Slice 实现对称 FIR 滤波器

下面的图 6 显示了图 5 的 DSP slice 的简化框图。

ce023568-fb1f-11ed-90ce-dac502259ad0.jpg

图 6

这个简化的框图强调了一个 slice 的输出可以作为输入路由到下一个 slice 的加法器/减法器。如果我们忽略图 6 中所示的输入寄存器,则图 6 的原理图与图 4 的虚线框内的电路相同。因此,通过级联这些 DSP slice,我们可以有效地实现图 4 的 FIR 滤波器。在这个在这种情况下,我们可以使用 FPGA 的通用结构切片来实现红色加法器(参见图 4)。

图 7 显示了使用 7 系列 DSP48 片的图 4 的实现。


ce1c42c8-fb1f-11ed-90ce-dac502259ad0.png

图 7. 八抽头对称 FIR 滤波器的基于 DSP48 的实现。图片由赛灵思提供。点击放大。

此处,带阴影的加法器实现了图 4 中的红色加法器,延迟线可以使用片内的寄存器实现。您可以在此处图 7 电路的 Xilinx VHDL 代码(如果单击此链接,将立即开始)。

结论

我们推导出用于对称 FIR 滤波器的模块化流水线结构。我们还研究了 Xilinx DSP slice 的结构,它可用于实现多种功能,包括乘法、乘法后累加、全流水线乘法和循环桶式移位。7 系列 DSP48 Slice 更加通用,可以更高效地实施对称 FIR 滤波器。

ce4439a4-fb1f-11ed-90ce-dac502259ad0.png

ce50fce8-fb1f-11ed-90ce-dac502259ad0.pngce612aaa-fb1f-11ed-90ce-dac502259ad0.jpg

扫取二维码获取

更多精彩

FPGA设计论坛

往期推荐

  • 至芯科技-FPGA就业培训来袭!你的选择开启你的高薪之路!5月30号西安中心开课、欢迎咨询!

  • FPGA 的 DCM时钟管理单元概述

  • 简谈CPUMCU、FPGA、SoC这些芯片异同之处

  • 简谈Altera和Xilinx的FPGA 区别

欢迎关注至芯科技

至芯官网:www.zxopen.com

至芯科技技术论坛:www.fpgaw.com

至芯科技淘宝网址:

https://zxopen.taobao.com

至芯科技FPGA初级课程(B站):

https://space.bilibili.com/521850676

至芯科技FPGA在线课程(腾讯课堂):

https://zxopenbj.ke.qq.com/

至芯科技-FPGA 交流群(QQ):282124839

扫码加微信邀请您加入FPGA学习交流群

ce73f7de-fb1f-11ed-90ce-dac502259ad0.pngce83fc6a-fb1f-11ed-90ce-dac502259ad0.jpgce97ef04-fb1f-11ed-90ce-dac502259ad0.png

欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!

cea4ec86-fb1f-11ed-90ce-dac502259ad0.png

点个

cebab7d2-fb1f-11ed-90ce-dac502259ad0.png

在看

你最好看


原文标题:FPGA 实现线性相位 FIR 滤波器的注意事项

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21328

    浏览量

    593251

原文标题:FPGA 实现线性相位 FIR 滤波器的注意事项

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Vivado 使用Simulink设计FIR滤波器

    滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR
    发表于 04-17 17:29

    Vivado经典案例:使用Simulink设计FIR滤波器

    FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格
    的头像 发表于 03-25 09:18 601次阅读
    Vivado经典案例:使用Simulink设计<b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>

    电源滤波器接线的注意事项

    电源滤波器接线的注意事项  电源滤波器在电子设备中起着非常重要的作用,它能够有效地滤除电源中的干扰和杂波,保证设备正常运行。在进行电源滤波器的接线安装时,需要
    的头像 发表于 01-11 15:59 421次阅读

    电源滤波器的选购、安装和使用注意事项有哪些?

    电源滤波器的选购、安装和使用注意事项都有哪些?电源滤波器维爱普电源滤波器主要是安装于电源输入主回路中,位于设备和电网之间。因此一方面可以阻止设备的电磁干扰通过电源线传导到电网,超过规范
    的头像 发表于 12-05 10:27 371次阅读
    电源<b class='flag-5'>滤波器</b>的选购、安装和使用<b class='flag-5'>注意事项</b>有哪些?

    电源滤波器如何正确使用?电源滤波器安装时的注意事项

    电源滤波器如何正确使用?电源滤波器安装时的注意事项? 电源滤波器是一种常见的电力设备,主要用于降低电源的噪声、spike、和ripple等,从而保证电源供应的稳定性和可靠性。它通常被安
    的头像 发表于 10-25 15:48 1057次阅读

    滤波器的作用及注意事项简要分析

    滤波器的作用及注意事项简要分析  滤波器是电子电路中一种常见的元件,其主要作用是对信号进行滤波,即去除或减弱其中某些频率的成分,使得输出的信号符合特定的要求。
    的头像 发表于 10-25 15:42 1555次阅读

    FIR滤波器实现方法有哪几种?

    漂移和噪声等问题。 有限冲激响应(FIR滤波器能在设计任意幅频特性的同时保证严格的线性相位特性。 一、FIR数字滤波器
    的头像 发表于 10-20 01:30 1698次阅读
    <b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>的<b class='flag-5'>实现</b>方法有哪几种?

    如何实现一种基于FPGA的横向FIR滤波器设计?

    设经过AD采集得到的输入序列为x(n),其通过单位冲激响应为h(n)的因果FIR滤波器后,输出y(n)在时域可表示为线性卷积和的形式
    发表于 07-25 09:01 337次阅读
    如何<b class='flag-5'>实现</b>一种基于<b class='flag-5'>FPGA</b>的横向<b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>设计?

    标准频带FIR滤波器设计

    FIR(Finite Impulse Response,有限脉冲响应)滤波器是一种数字滤波器,其输出信号仅由输入信号和滤波器的冲激响应决定。FIR
    的头像 发表于 06-20 11:26 966次阅读

    如何使用HLS加速FPGA上的FIR滤波器

    电子发烧友网站提供《如何使用HLS加速FPGA上的FIR滤波器.zip》资料免费下载
    发表于 06-14 15:28 1次下载
    如何使用HLS加速<b class='flag-5'>FPGA</b>上的<b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>

    IIR滤波器FIR滤波器的区别

    数字滤波器是数字信号处理中最常用的一种技术,可以对数字信号进行滤波、降噪、增强等处理,其中最常见的两种数字滤波器是IIR滤波器FIR
    的头像 发表于 06-03 10:21 1.6w次阅读

    FIR滤波器代码及仿真设计

    上文 FPGA数字信号处理之滤波器2_使用dsp48e1的fir滤波器设计完成了结构设计。
    的头像 发表于 06-02 12:36 810次阅读
    <b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>代码及仿真设计

    简谈FIR滤波器和IIR滤波器的区别

    是有限长的,因而滤波器是稳定的系统。 二、特点: FIR滤波器的最主要的特点是没有反馈回路,稳定性强,故不存在不稳定的问题; FIR具有严格的线性
    发表于 05-29 16:47

    并行FIR滤波器MATLAB与FPGA实现

    本文介绍了设计滤波器FPGA实现步骤,并结合杜勇老师的书籍中的并行FIR滤波器部分进行一步步实现
    的头像 发表于 05-24 10:57 717次阅读
    并行<b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>MATLAB与<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>

    串行FIR滤波器MATLAB与FPGA实现

    本文介绍了设计滤波器FPGA实现步骤,并结合杜勇老师的书籍中的串行FIR滤波器部分进行一步步实现
    的头像 发表于 05-24 10:56 616次阅读
    串行<b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>MATLAB与<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>