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

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

3天内不再提示

FPGA数字信号处理-FIR滤波器及AM解调

冬至子 来源:maobitcoder 作者:maoarmstrong 2023-10-17 11:43 次阅读

1.AM解调概论

AM解调中一般的方式是进行全波整流或者半波整流,然后经过一个低通滤波器即可。

本文为数字AM解调。本文采取全波整流加FIR低通滤波器的方式进行解调。

在数字通信系统中一般全波整流实现方式就是取绝对值,半波整流就是直接舍弃负值。

下面一小段代码就是取绝对值的。

图片

那为什么取绝对值,然后经过低通滤波器就能出来包络信号呢?关于此处的理论推导。去看书吧。

2.FIR滤波器概述

FIR滤波器是什么样的结构,有什么样的特性等等等为了避免大家烦我在这里就不抄课本了。接下来我们就简单的理解下FIR滤波器。

注意本说法仅仅为新手入门了解。直观了解FIR滤波器的特性。许多定义和概念可能存在纰漏。希望广大读者理性参考。

FIR滤波器的结构如下:

图片

我们假设图中的n就为10。接下来我们抛开FIR这个概念。假设我就是要实现10个数字取个平均数。那么我只要让h(0),h(1),h(2)……h(9),均为0.1。那么每个数字进来被乘以0.1。然后把10个数字加起来。这就是一个均值滤波。(这种把两组数据对应相乘然后再加载一起的操作就是卷积的概念)。

依据经验我们知道,当取的数字越多(即n越大)这个滤波器的输出值就更稳定。消耗的资源对应着也会越多。

上述举得例子为求均值。但是假设说我们现在要做更复杂的需求,比如滤除一定频率的波形。那就需要更加准确的计算各个参数。所幸我们生于伟大的时代,有很多工具可以代替我们算出更合适的抽头系数。例如matlab的FDATools以及FilterSolutions 2015。

3. FIR滤波器 参数计算

打开Filter Solutions这个软件。选择数字滤波器(这个工具功能十分强大,可以设计有源,无源,微带线,数字等等不同种类的滤波器)。

打开软件设置如下,因为再实现的时候FIR滤波器采用了完全对称的结构。我们选择一个125阶的FIR滤波器。选一个合适的窗函数,至于不同的窗函数有什么不同的性能表现在这里就不赘述了。

图片

由于我们的包络信号是1M。选择一个2M的低通滤波器。

图片

左上方有各种选项,我们来查看一下它的频率响应。看起来还是可以的。

然后点击右上角的SynthesizeFilter、

点击选项卡的Vec选项,然后Copy Num/Den ,FIR滤波器的抽头系数就复制到剪切板上了。

图片

4. FIR滤波器 XILINX IP核实现

添加一个FIR滤波器,把系数复制进去(注意只复制括号内的内容)。

图片

可以看到左侧的频率相应图。其中红色线为设计的参数。蓝色线为经过定点量化后的抽头系数的频率响应。图中的横坐标为归一化的频率(不知道什么叫归一化频率的自行百度),纵坐标为幅度的衰减。可以看到设计效果还是可以的。

滤波器也可以选则抽取或者插值或者希尔伯特或者最简单的单速率滤波器。关于抽取核插值我会在后面更新的文章中写出,希望大家持续关注。

为了节约资源我们可以设计成抽取滤波器。但是为了避免造成大家的困惑,本文中依然采用单速率的滤波器。

我们进行第二页的设置

图片

时钟频率核输入采样频率均为100M。

接下来进行第三页的设置最上面的哪个就是抽头系数的相关设置,在这里我们可以调节量化(定点化)的参数。从而让前文提到的红线和蓝线更接近(即实现效果更接近设计效果)。当然调节不同的参数,其资源占用和性能表现也会有所不同。下面的几个选项大家可以自行研究。

图片

后面两页内容是设计实现时的面积或者速度优化啥的。大家自行研究在本设计中不做修改。

在implementation Details (实现细节中)可以看到数据的输出格式。其中定点数为[34:17]。也可以发现资源占用为63个乘法器,因为本设计中的FIR滤波器为对称结构。所以可以省下一半的资源。

图片

这样我们的FIR滤波器就基本设计完成了。

5. FIR滤波器 XILINX 实现与验证。

这部分的代码比较简单,我们讲上节课的Modout信号接出来后进行取绝对值。得到的信号是20bit的。我们选取其中的高16bit送入FIR滤波器。然后就可以得到输出了,FIR滤波器的输入输出信号还有一些有效,握手信号之类的,大家自行查阅手册了解。

接下来进行仿真,仿真中我们把FIR输出的[33:17]位单独拿出来进行显示即可。最终效果如图。

图片

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

    关注

    1625

    文章

    21619

    浏览量

    601154
  • 低通滤波器
    +关注

    关注

    14

    文章

    471

    浏览量

    47287
  • 数字信号处理

    关注

    15

    文章

    553

    浏览量

    45758
  • fir滤波器
    +关注

    关注

    1

    文章

    94

    浏览量

    19007
  • 半波整流
    +关注

    关注

    0

    文章

    52

    浏览量

    12461
收藏 人收藏

    评论

    相关推荐

    DSP in FPGAFIR滤波器(一)

    FIR 滤波器广泛应用于数字信号处理中,主要功能就是将不感兴趣的信号滤除,留下有用信号。##全并
    发表于 06-27 10:02 9288次阅读

    DSP in FPGAFIR滤波器(二)

    FIR 滤波器广泛应用于数字信号处理中,主要功能就是将不感兴趣的信号滤除,留下有用信号。##脉动
    发表于 06-30 09:47 2094次阅读

    【参考书籍】基于FPGA数字信号处理——高亚军著

    `《基于FPGA数字信号处理》是一本有关如何在FPGA上实现数字信号处理的著作。本书以Xili
    发表于 04-24 09:33

    什么是fir数字滤波器 什么叫FIR滤波器

    什么是fir数字滤波器 Part 1: Basics1.1 什么是FIR滤波器?FIR 滤波器
    发表于 01-16 09:42 1.7w次阅读

    基于FPGAFIR数字滤波器的优化设计

    目前数字滤波器的硬件实现方法通常采用专用DSP芯片或FPGA,本文从FIR滤波器的系数考虑,采用CSD编码,对FIR
    发表于 08-16 10:54 3803次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>FIR</b><b class='flag-5'>数字滤波器</b>的优化设计

    基于MATLAB与FPGAFIR滤波器设计与仿真

    数字滤波器数字信号处理领域内的重要组成部分。FIR滤波器又以其严格的线性相位及稳定性高等特性被广泛应用。本文结合MATLAB工具软件介绍了
    发表于 09-25 11:34 120次下载
    基于MATLAB与<b class='flag-5'>FPGA</b>的<b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>设计与仿真

    数字信号处理FPGA实现

    结构类型的fir数字滤波器fpga实现、不同结构fft的fpga实现、数字正交下变频的fpga
    发表于 12-23 11:07 45次下载

    轻松设计数字FIR滤波器

    FIR滤波 FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,又称为非递归型
    发表于 06-07 08:51 13次下载
    轻松设计<b class='flag-5'>数字</b><b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>

    基于FPGA的硬件加速FIR流水结构滤波器实现、设计及验证

    。 随着数字通信技术的快速发展,高质量的信息处理滤波器的性能和资源占有量提出了更高的要求。有限冲击响应(FIR)数字有限冲激响应
    发表于 11-18 06:15 1465次阅读
    基于<b class='flag-5'>FPGA</b>的硬件加速<b class='flag-5'>器</b>的<b class='flag-5'>FIR</b>流水结构<b class='flag-5'>滤波器</b>实现、设计及验证

    FPGAFIR抽取滤波器设计教程

    FPGA实现抽取滤波器比较复杂,主要是因为在FPGA中缺乏实现乘法运算的有效结构,现在,FPGA中集成了硬件乘法器,使FPGA
    发表于 04-28 11:50 1267次阅读
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>FIR</b>抽取<b class='flag-5'>滤波器</b>设计教程

    基于FIR滤波器结构实现级联型信号处理器FPGA的设计

    数字信号处理领域,滤波器无疑是个非常重要的环节。而在数字滤波器中,有限脉冲响应(FIR滤波器
    的头像 发表于 04-22 08:07 5693次阅读
    基于<b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>结构实现级联型<b class='flag-5'>信号</b><b class='flag-5'>处理器</b><b class='flag-5'>FPGA</b>的设计

    如何使用FPGA实现FIR抽取滤波器的设计

    FPGA实现抽取滤波器比较复杂,主要是因为在FPGA中缺乏实现乘法运算的有效结构,现在,FPGA中集成了硬件乘法器,使FPGA
    发表于 09-25 10:44 3次下载
    如何使用<b class='flag-5'>FPGA</b>实现<b class='flag-5'>FIR</b>抽取<b class='flag-5'>滤波器</b>的设计

    FIR滤波器代码及仿真设计

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

    IIR滤波器FIR滤波器的区别

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

    基于FPGA实现FIR数字滤波器

    数字信号处理系统中,有限脉冲响应(finite impulse response,FIR)数字滤波器是一个非常重要的基本单元。近年来,由于FPGA
    的头像 发表于 11-05 16:26 109次阅读
    基于<b class='flag-5'>FPGA</b>实现<b class='flag-5'>FIR</b><b class='flag-5'>数字滤波器</b>