基于matlab FPGA verilog的FIR滤波器设计

FPGA学习交流 2018-06-08 09:41 次阅读


203537ag09vfggf80289rg.png


本例程实现8阶滤波器,9个系数,由于系数的对称性,h(0)=h(8),h1(1)=h(7),h(2)=h(6),h(3)=h(5),h(4)为中间单独一个系数。根据公式:203540r0khhz1gypbzzey1.png


实现框图:

203538ahze28diee2n8ueh.png



203538b2c33032tdjdtd2r.png



推导出当系数N为偶数时,例如N=4:y(n)=h(0)*{x(0)+x(n-3)}+h(1)*{x(n-1)+x(n-2)}

当系数N为奇数时,例如N=5:

y(n)=h(0)*{x(0)+x(n-1)}+h(1)*{x(n-1)+x(n-3)}+h(2)*x(n-2)


1、用matlab生成和量化滤波器系数

203539zlmaen6dihdlvkoi.png


设置参数后,点击“Design Filter”按钮,“file”—“export”,把滤波器系数导出到workspace,如下图:

203539gi83i88dj88mqxd2.png



执行命令:Num=Num’ ,把滤波器系数拷贝到文件COFFICIENT.dat中。

量化系数:在matlab中运行quantization.m

2、说明

用matlab程序sin_1MHz_gen.m生成正弦波波形表,改变变量f0 = 1.5e6可以生成不同频率的波形。把第一个周期的波形数据存入signal_1m.dat文件中,存入的数据个数为Fs/Fo的最小正整数之比的分子,比如Fs=25MHz,Fo=0.3MHz,Fs/Fo=250/3(Fs=25/24MHz),则存入文件signal_1m.dat的波形数据个数为开头的250个数据。相应的signal_gen0.v中的语句if(i0<50)相应的改为if(i0<250)。仿真时signal_1m.dat放在仿真目录下

3、滤波器的multisim仿真

运行matlab,用sin_1MHz_gen.m产生5MHz(f0 =5e6)正弦波信号,Fs/Fo=5,把数据hex_sin_data的前5个数据存入signal_1m.dat文件,相应的signal_gen0.v中的语句if(i0<50)相应的改为if(i0<5)。

仿真的波形如下图(fir滤波器的输入输出信号):

203539zz6zcgp2f8rqpr23.png



运行matlab,用sin_1MHz_gen.m产生1MHz(f0 =1e6)正弦波信号,Fs/Fo=25,把数据hex_sin_data的前5个数据存入signal_1m.dat文件,相应的signal_gen0.v中的语句if(i0<5)相应的改为if(i0<25)。

仿真的波形如下图(fir滤波器的输入输出信号):

203540jihbwh92xi8bwpii.png


由此可见FIR对带外信号起到衰减的作用。

部分代码:

//Date     :2012-5-27
//Description :  8 阶FIR滤波器 ,通带2MH,阻带8MHz ,带外衰减80dB,通带波动1dB        
//Uesedfor
//Taobao    :
//E-mail    :2352517093@qq.com
//==========================================================================
`timescale 1 ns / 1 ns

module fir_filter
              (
               i_fpga_clk ,
               i_rst_n    ,
               i_filter_in,
               o_filter_out
               );

 input                   i_fpga_clk  ; //25MHz
 input                   i_rst_n     ;
 input signed      [7:0] i_filter_in ; //数据速率25Mh
 output reg signed [7:0] o_filter_out; //滤波输出

//==============================================================
//8阶滤波器系数,共9个系数,系数对称
//==============================================================
 wire signed[15:0] coeff1 = 16'd239 ;
 wire signed[15:0] coeff2 = 16'd1507;
 wire signed[15:0] coeff3 = 16'd4397;
 wire signed[15:0] coeff4 = 16'd7880;
 wire signed[15:0] coeff5 = 16'd9493;

//===============================================================
//延时链
//===============================================================
reg signed [7:0] delay_pipeline1 ;
reg signed [7:0] delay_pipeline2 ;
reg signed [7:0] delay_pipeline3 ;
reg signed [7:0] delay_pipeline4 ;
reg signed [7:0] delay_pipeline5 ;
reg signed [7:0] delay_pipeline6 ;
reg signed [7:0] delay_pipeline7 ;
reg signed [7:0] delay_pipeline8 ;

always@(posedge i_fpga_clk or negedge i_rst_n)
      if(!i_rst_n)
               begin
                   delay_pipeline1 <= 8'b0 ;
                    delay_pipeline2 <= 8'b0 ;
                    delay_pipeline3 <= 8'b0 ;
                    delay_pipeline4 <= 8'b0 ;
                    delay_pipeline5 <= 8'b0 ;
                    delay_pipeline6 <= 8'b0 ;
                    delay_pipeline7 <= 8'b0 ;
                    delay_pipeline8 <= 8'b0 ;
               end
      else
               begin
                   delay_pipeline1 <= i_filter_in     ;

热门推荐

收藏 人收藏
分享:

评论

相关推荐

FPGA资源怎么平民化?阿里云的新改造

FPGA (现场可编程门阵列)由于其硬件并行加速能力和可编程特性,在传统通信领域和IC设计领域大放异....

发表于 06-23 09:44 30次 阅读
FPGA资源怎么平民化?阿里云的新改造

FPGA中的冒险现象和如何处理毛刺

通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。例如,在数字电路设计中,常常采用格雷码计数器取代....

发表于 06-23 08:49 20次 阅读
FPGA中的冒险现象和如何处理毛刺

面向数据包处理的Xilinx智能解决方案

在开放式协作服务爆炸性增长以及移动和社交网络不断发展的推动下,结合智能设备的普及以及不同服务供应商和....

发表于 06-22 15:13 26次 阅读
面向数据包处理的Xilinx智能解决方案

NGcodec谈FPGA编码在HEVC和AV1上现状与未来

随着HEVC、AV1等更复杂算法的Codec份额逐步增长,实现高质量视频编解码需要硬件支持,软件的方....

发表于 06-22 15:01 25次 阅读
NGcodec谈FPGA编码在HEVC和AV1上现状与未来

关于基于分数低阶协方差谱的频谱感知算法研究及其FPGA实现

长期以来,传统的频谱管理与划分采用静态频谱分配方式[1],导致无线频谱利用率低下,同时研究发现,即使....

的头像 电子设计 发表于 06-22 14:58 110次 阅读
关于基于分数低阶协方差谱的频谱感知算法研究及其FPGA实现

Xilinx FPGA对数字信号处理的性能

Xilinx FPGA 可提供卓越的数字信号处理 (DSP) 性能,能够满足音频处理、接口、压缩、嵌....

发表于 06-22 14:57 31次 阅读
Xilinx FPGA对数字信号处理的性能

关于基于分段多项式近似的DDFS研究及FPGA实现

感应式磁力仪基于法拉第电磁感应原理,用于探测近地空间的低频交变磁场[1],它通常自带标准信号源,用于....

的头像 电子设计 发表于 06-22 14:55 108次 阅读
关于基于分段多项式近似的DDFS研究及FPGA实现

分布式算法是一项重要的FPGA技术

式中:xb(n) 表示第n个数据的第b位。由于x(n)为有限位数据,且xb(n)的取值为[0,1],....

的头像 FPGA极客空间 发表于 06-22 14:53 159次 阅读
分布式算法是一项重要的FPGA技术

关于基于前导的OFDM系统信道估计及FPGA实现

正交频分复用(OFDM)由于具有抗多径衰落,频谱利用率高等特点,因而被广泛用于无线通信系统中。但是由....

的头像 电子设计 发表于 06-22 14:51 100次 阅读
关于基于前导的OFDM系统信道估计及FPGA实现

FEC使PAM4成为可能 DSP处理实现112G

我们需要更多的数据,而且希望更快。在即将来临的5G时代,NRZ编码对于我们来说还不够快,而NRZ型编....

的头像 面包板社区 发表于 06-22 14:13 129次 阅读
FEC使PAM4成为可能 DSP处理实现112G

获得高校、专家一致认可的小脚丫FPGA开发板到底有何神奇的地方?——小脚丫STEP-MXO2 二代评测

背景 微控制器作为目前嵌入式系统设计的主力军在各行各业得到了广泛的应用,但随着物联网、智能硬件、VR....

发表于 06-22 11:35 44次 阅读
获得高校、专家一致认可的小脚丫FPGA开发板到底有何神奇的地方?——小脚丫STEP-MXO2 二代评测

FPGA仿真问题

发表于 06-22 09:56 58次 阅读
FPGA仿真问题

FPGA电源设计挑战

发表于 06-22 09:38 202次 阅读
FPGA电源设计挑战

实践电能质量控制技术之变频器相关问题的解决

变频器也带来了许多前所未有困扰,主要表现在对配电系 统的不良影响,对邻近电子设备的干扰,以及对电机的....

发表于 06-22 08:00 22次 阅读
实践电能质量控制技术之变频器相关问题的解决

关于IPIPEIF和ISIF对RAW数据的处理,请问是什么原因改变了RAW数据的附加信息?

发表于 06-22 07:56 154次 阅读
关于IPIPEIF和ISIF对RAW数据的处理,请问是什么原因改变了RAW数据的附加信息?

请问dm385 ar0331摄像头的fpga起什么作用?

发表于 06-22 06:04 22次 阅读
请问dm385 ar0331摄像头的fpga起什么作用?

请问DM355可以做视频叠加吗?需要加FPGA吗?

发表于 06-22 02:39 17次 阅读
请问DM355可以做视频叠加吗?需要加FPGA吗?

请问fpga+7002把24bit或者30bit的数据转化为8bit的数据如何实现?

发表于 06-22 00:33 18次 阅读
请问fpga+7002把24bit或者30bit的数据转化为8bit的数据如何实现?

Matlab检测空间线段(线段,直线或射线)是否与空间三角形曲面相交的函数

发表于 06-22 00:32 79次 阅读
Matlab检测空间线段(线段,直线或射线)是否与空间三角形曲面相交的函数

谈谈滤除这些特定的尖峰瞬态事件的主要考虑因素

滤波并不总是必需的,具有最小的动态变化电流的电池供电的直流电路将是一个例子。大的、复杂的系统可能有高....

的头像 安森美半导体 发表于 06-21 17:00 202次 阅读
谈谈滤除这些特定的尖峰瞬态事件的主要考虑因素

请问低通滤波器的-3db截止频率设置为多少比较合适?

发表于 06-21 16:25 123次 阅读
请问低通滤波器的-3db截止频率设置为多少比较合适?

一项名为FlexMEMS的创新工艺成功开发出的柔性射频滤波器

此外,这项技术并不仅限于制造柔性射频滤波器,还可以应用于制造多种柔性微机电器件,如压力计、加速度计、....

的头像 微波射频网 发表于 06-21 16:02 275次 阅读
一项名为FlexMEMS的创新工艺成功开发出的柔性射频滤波器

基于FPGA的异步FIFO的实现

大家好,又到了每日学习的时间了,今天我们来聊一聊基于FPGA的异步FIFO的实现。 一、FIFO简介....

的头像 FPGA学习交流 发表于 06-21 11:15 536次 阅读
基于FPGA的异步FIFO的实现

基于单片机对FPGA进行编程配置

本文实现了基于遗传算法的硬件演化过程。通过Mcu随机产生种群,选择好的基因进行交叉变异产生后代,然....

发表于 06-21 10:45 88次 阅读
基于单片机对FPGA进行编程配置

揭秘造芯黑马的神秘面纱

如果说目前高端集成电路的落后现状是因为我国相关产业起步晚、积累少导致的,对于如今再次兴起的人工智能浪....

的头像 电子发烧友网工程师 发表于 06-21 08:02 272次 阅读
揭秘造芯黑马的神秘面纱

请问谁有XILINX FPGA 7系列的原理图封装?

发表于 06-21 02:14 121次 阅读
请问谁有XILINX  FPGA 7系列的原理图封装?

请问哪位大神知道matlab计算脉冲持续时间、脉冲间隔的程序?

发表于 06-20 19:28 47次 阅读
请问哪位大神知道matlab计算脉冲持续时间、脉冲间隔的程序?

FPGA和CPU如何搭配?

如下图,FPGA作为协处理器,CPU把指令写入内存,FPGA从内存读取指令执行,并把计算结果写入内存....

的头像 ssdfans 发表于 06-20 15:17 271次 阅读
FPGA和CPU如何搭配?

PCB设计过程中需要考虑的因素

千兆位级串行I/O技术有着极其出色的优越性能,但这些优越的性能是需要条件来保证的,即优秀的信号完整性....

发表于 06-20 14:24 72次 阅读
PCB设计过程中需要考虑的因素

FPGA和ASIC之间界限正在模糊,FPGA为未来的ASIC提供设计架构

该系列器件现在包括从基本的可编程逻辑一直到复杂的SoC。在各种应用领域(包括汽车,AI,企业网络,航....

发表于 06-20 14:13 55次 阅读
FPGA和ASIC之间界限正在模糊,FPGA为未来的ASIC提供设计架构

可编程在辅助驾驶系统中的应用

通过消除繁琐的驾驶动作,辅助驾驶还可提供更高的舒适水平。例如,传统的巡航控制允许司机设定一个固定的行....

发表于 06-20 14:01 28次 阅读
可编程在辅助驾驶系统中的应用

Xilinx的7系列FPGA高速收发器:TX发送端的介绍

每一个收发器拥有一个独立的发送端,发送端有PMA(Physical Media Attachment....

发表于 06-20 13:48 48次 阅读
Xilinx的7系列FPGA高速收发器:TX发送端的介绍

FPGA学习系列:21. 自动售货机的设计

设计背景: 我们从开始学习 FPGA。到现在也慢慢的学到了血多的东西,那么我们就应该慢慢的去学习深一....

的头像 FPGA学习交流 发表于 06-20 10:41 665次 阅读
FPGA学习系列:21. 自动售货机的设计

如何选择符合目标系统规格以及标准的相应架构、电路和元件呢?

如何选择符合目标系统规格以及标准的相应架构、电路和元件呢?这些是由电路满足在效率、带宽和精度方面提供....

的头像 Excelpoint世健 发表于 06-20 10:08 644次 阅读
如何选择符合目标系统规格以及标准的相应架构、电路和元件呢?

关于FFT硬件实现,设计中RAM输出端为何没有使用REG

以2048点为例,根据理论值计算,计算一次2048点的IFFT的时间应为130us。在采用流水线的方....

的头像 FPGA极客空间 发表于 06-20 09:05 378次 阅读
关于FFT硬件实现,设计中RAM输出端为何没有使用REG

EMI滤波器设计中的干扰特性和阻抗特性

滤波器的制造商给出的滤波器插损是在50W标准阻抗系统中的性能。众所周知,电源的输入阻抗随着频率的变化....

的头像 贸泽电子设计圈 发表于 06-20 08:53 498次 阅读
EMI滤波器设计中的干扰特性和阻抗特性

关于PIC和FPGA的区别及优缺点总结

FPGA是逻辑门器件,可以配置成为并行逻辑模块。FPGA最大优点是并行处理。例如构建一百个与非门,F....

的头像 FPGA极客空间 发表于 06-19 16:20 223次 阅读
关于PIC和FPGA的区别及优缺点总结

增强机器学习能力的“左膀右臂”的GPU、FPGA芯片

FPGA是帮助公司和研究人员解决问题的芯片。FPGA是一种集成电路,可以编程为多种用途。它有一系列“....

的头像 人工智能学家 发表于 06-19 15:27 355次 阅读
增强机器学习能力的“左膀右臂”的GPU、FPGA芯片

基于FPGA的PCIe设备如何才能满足PCIe设备的启动时间的要求?

根据PCIe的协议,当设备启动后,PCIe设备必须满足启动时间的要求,即上电后100ms内,完成PC....

发表于 06-19 10:24 59次 阅读
基于FPGA的PCIe设备如何才能满足PCIe设备的启动时间的要求?

如何避免升级失败而使FPGA变砖呢?

如果升级过程中出现意外情况,FLASH里面原有的固件被破坏,那么FPGA能够从备份固件区启动配置,即....

发表于 06-19 10:09 52次 阅读
如何避免升级失败而使FPGA变砖呢?

单片机中按键消抖程序

效率上来说,延时消抖花费时间在无意义延时上,而相对较好的定时轮询还是不可避免的在轮询,而现在这种方式....

的头像 电子工程专辑 发表于 06-19 08:55 306次 阅读
单片机中按键消抖程序

DE1的SoC开发工具包的用户手册详细资料免费下载

DE1的SoC开发工具包提供了一个强大的硬件设计平台建立在片上系统(SoC)FPGA公司,它结合了最....

发表于 06-19 08:00 21次 阅读
DE1的SoC开发工具包的用户手册详细资料免费下载

如何建立OpenCL开发环境编译和执行DE1 SoC的示例项目的详细概述

DE1 SoC是Altera片上系统(SOC)FPGA构建的一个健壮的硬件设计平台,它是Altera....

发表于 06-19 08:00 21次 阅读
如何建立OpenCL开发环境编译和执行DE1 SoC的示例项目的详细概述

SOPC和FPGA的介绍和基础实验的详细资料概述

本文档的主要内容详细介绍的是SOPC和FPGA的介绍和基础实验的详细资料概述包括了:FPGA基础实验....

发表于 06-19 08:00 36次 阅读
SOPC和FPGA的介绍和基础实验的详细资料概述

DE2-115板的详细介绍和实验指导的详细资料概述

这个练习的目的是学习如何将简单的输入和输出设备连接到FPGA芯片上,并实现使用这些设备的电路。我们将....

发表于 06-19 08:00 35次 阅读
DE2-115板的详细介绍和实验指导的详细资料概述

LabVIEW状态图模块的详细介绍和使用手册详细概述

该模块在 LabVIEW 中增加了创建状态图的功能,以开収基于事件的控制与测试系统。状态图编程模块迚....

发表于 06-19 08:00 22次 阅读
LabVIEW状态图模块的详细介绍和使用手册详细概述

基于Matlab的工业锅炉燃烧系统模糊解耦控制设计的详细中文资料概述

锅炉燃烧系统是一个复杂的系统 ,有许多个变量 ,各变量之间具有耦合关系 ,很难建立精确的数学模型 。....

发表于 06-19 08:00 20次 阅读
基于Matlab的工业锅炉燃烧系统模糊解耦控制设计的详细中文资料概述

简谈FPGA的上电复位

大家好,博主最近有事忙了几天,没有更新,今天正式回来了。那么又到了每日学习的时间了,今天咱们来聊一聊....

的头像 FPGA学习交流 发表于 06-18 19:24 645次 阅读
简谈FPGA的上电复位

FPGA学习系列:18. 数码管的设计

设计背景: 数码管是一种半导体发光 器件 ,其基本单元是发光二极管。 数码管在我们的许多设计中都又用....

的头像 FPGA学习交流 发表于 06-18 19:24 671次 阅读
FPGA学习系列:18. 数码管的设计

FPGA学习系列:19. rom到数码管显示设计

设计背景: rom是读写的的静态存储单元,在我们的设计中我们会经常用到,数码管模块同样的大大小小的设....

的头像 FPGA学习交流 发表于 06-18 19:24 555次 阅读
FPGA学习系列:19. rom到数码管显示设计

FPGA学习系列:20. ram控制器的设计(调用IP核)

设计背景: 随机存取存储器 (random access memory,RAM)又称作随机存储器,是....

的头像 FPGA学习交流 发表于 06-18 19:24 679次 阅读
FPGA学习系列:20. ram控制器的设计(调用IP核)

四旋翼飞行器的动力学建模与在Matlab simulink软件中仿真的资料概述

四旋翼飞行器是一种能够垂直起降的多旋翼飞行器,它非常适合近地侦察、监视的任务,具有广泛的军事和民事应....

发表于 06-15 08:00 32次 阅读
四旋翼飞行器的动力学建模与在Matlab simulink软件中仿真的资料概述

模糊聚类的原理和划分算法,流程图以及Matlab程序的资料免费下载

模糊c划分空间为:即有c个类,共N个数据(样本),对于某一样本,其在所有类的隶属度值和为1,对于某一....

发表于 06-15 08:00 28次 阅读
模糊聚类的原理和划分算法,流程图以及Matlab程序的资料免费下载

集中离散的傅氏变换以及matlab实现方法

分析:可见,离散序列的DTFT变换是周期的,这也符合Nyquist采样定理的描述,连续时间信号经周期....

的头像 嵌入式资讯精选 发表于 06-14 14:15 229次 阅读
集中离散的傅氏变换以及matlab实现方法

你一定想知道FPGA的那些事...

作者:张泽小脚丫STEP 导读:FPGA(Field Programmable Gate Array....

发表于 06-14 13:35 325次 阅读
你一定想知道FPGA的那些事...

动态规划方法的利用matlab实现及其应用的有效工具详细资料概述

本文运用 matlab 语言实现了动态规划的逆序算法,根据状态变量的维数,编写了指标函数最小值的逆序....

发表于 06-14 08:00 17次 阅读
动态规划方法的利用matlab实现及其应用的有效工具详细资料概述

基于Matlab的GUI工具和内置的串口通信API的详细中文资料概述

Mat lab 不仅具有强大的科学计算功能, 还内置了 GUI 工具用于进行界面开发。利用 Matl....

发表于 06-14 08:00 22次 阅读
基于Matlab的GUI工具和内置的串口通信API的详细中文资料概述

Excel与Matlab的数据交互的详细中文资料概述

本文的的主要内容详细介绍的是Excel与Matlab的数据交互的详细中文资料概述 假设列举十只股票....

发表于 06-14 08:00 21次 阅读
Excel与Matlab的数据交互的详细中文资料概述

MDO是什么?MDO是怎样工作的?

SA 通过下变频关心的信号,然后扫描通过解析带宽 (RBW) 滤波器的传输频带,来进行功率相对于频率....

的头像 电子发烧友网 发表于 06-13 10:16 227次 阅读
MDO是什么?MDO是怎样工作的?