FPGA设计FIR滤波器低通滤波器,代码及视频

2023-10-23 00:29

本文主要是介绍FPGA设计FIR滤波器低通滤波器,代码及视频,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

名称:FIR滤波器低通滤波器

软件:Quartus

语言:Verilog/VHDL

本资源含有verilog及VHDL两种语言设计的工程,每个工程均可实现以下FIR滤波器的功能。

e2b3a0bc-46e4-4418-921e-482c7e86db23.png

代码功能:

设计一个8阶FIR滤波器(低通滤波器),要求截止频率为20KHz,使用线性相位结构。

参数设计方法:

使用matlab软件设计滤波器系数

滤波器系数设计:

打开Matlab软件在指令窗口中键入:m=fir1(7,0.2),即可得到如下的系数:

0.009、0.048、0.164、0.279、0.279、0.164、0.048、0.009

将系数放大1000倍即:9,48,164,279;乘加计算计算完成后再除以1000.

演示视频(以VHDL工程文件为例,verilog同理):

http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=212

FPGA代码Verilog/VHDL代码资源下载网:www.hdlcode.com

代码下载:

FIR滤波器低通滤波器(代码在文末付费下载)软件:Quartus语言:Verilog/VHDL本资源含有verilog及VHDL两种语言设计的工程,每个工程均可实现以下FIR滤波器的功能。代码功能:设计一个8阶FIR滤波器(低通滤波器),要求截止频率为20KHz,使用线性相位结构。参数设计方法:使用matlab软件设计滤波器系数滤波器系数设计:打开Matlab软件在指令窗口中键入:m=fir名称:FIR滤波器低通滤波器(代码在文末付费下载)软件:Quartus语言:Verilog/VHDL本资源含有verilog及VHDL两种语言设计的工程,每个工程均可实现以下FIR滤波器的功能。代码功能:设计一个8阶FIR滤波器(低通滤波器),要求截止频率为20KHz,使用线性相位结构。参数设计方法:使用matlab软件设计滤波器系数滤波器系数设计:打开Matlab软件在指令窗口中键入:m=firicon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=212

部分代码展示

verilog代码:

//滤波器
module FIR_filter(
input clk_in,//50MHz
input reset_p,//高电平复位
output [9:0]fir_data//滤波后结果
);
wire [9:0] data_in;
wire clk_100K;
//分频模块,50M分频到100K
div_clk i_div_clk(
. clk_in(clk_in),
. clk_out(clk_100K)
);
//产生带噪声的正弦波
sin_noise i_sin_noise(
. clk_in(clk_in),//50MHz
. reset_p(reset_p),//高电平复位
. sin_and_noise(data_in)//产生带噪声的正弦波
);
//8阶线性相位结构FIR
FIR i_FIR(
. clk(clk_100K),//100K
. reset_p(reset_p),//高电平复位
. data_in(data_in),//周期1K,噪声频率30K左右
. fir_data(fir_data)//滤波后结果
);
endmodule

VHDL代码:

LIBRARY ieee;USE ieee.std_logic_1164.all;
--滤波器
ENTITY FIR_filter ISPORT (clk_in    : IN STD_LOGIC;--50MHzreset_p   : IN STD_LOGIC;--高电平复位fir_data  : OUT STD_LOGIC_VECTOR(9 DOWNTO 0)--滤波后结果);
END FIR_filter;
ARCHITECTURE behave OF FIR_filter IS
--产生带噪声的正弦波COMPONENT sin_noise ISPORT (clk_in    : IN STD_LOGIC;reset_p   : IN STD_LOGIC;sin_and_noise : OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END COMPONENT;--分频模块COMPONENT div_clk ISPORT (clk_in    : IN STD_LOGIC;clk_out   : OUT STD_LOGIC);END COMPONENT;--8阶线性相位结构FIRCOMPONENT FIR ISPORT (clk       : IN STD_LOGIC;reset_p   : IN STD_LOGIC;data_in   : IN STD_LOGIC_VECTOR(9 DOWNTO 0);fir_data  : OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END COMPONENT;--定义内部信号SIGNAL data_in        : STD_LOGIC_VECTOR(9 DOWNTO 0);SIGNAL clk_100K       : STD_LOGIC;
BEGIN--分频模块,50M分频到100K i_div_clk : div_clkPORT MAP (clk_in   => clk_in,clk_out  => clk_100K);--产生带噪声的正弦波 i_sin_noise : sin_noisePORT MAP (clk_in         => clk_in,--50MHzreset_p        => reset_p,--高电平复位sin_and_noise  => data_in--产生带噪声的正弦波);--8阶线性相位结构FIRi_FIR : FIRPORT MAP (clk       => clk_100K,--100Kreset_p   => reset_p,--高电平复位data_in   => data_in,--周期1K,噪声频率30K左右fir_data  => fir_data--滤波后结果);END behave;

设计文档(以VHDL工程文件为例,verilog同理):

设计文档.doc

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图

整体仿真

分频模块仿真

产生带噪声正弦波模块仿真

滤波器模块仿真

这篇关于FPGA设计FIR滤波器低通滤波器,代码及视频的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/264549

相关文章

vscode保存代码时自动eslint格式化图文教程

《vscode保存代码时自动eslint格式化图文教程》:本文主要介绍vscode保存代码时自动eslint格式化的相关资料,包括打开设置文件并复制特定内容,文中通过代码介绍的非常详细,需要的朋友... 目录1、点击设置2、选择远程--->点击右上角打开设置3、会弹出settings.json文件,将以下内

SQL Server使用SELECT INTO实现表备份的代码示例

《SQLServer使用SELECTINTO实现表备份的代码示例》在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误,在SQLServer中,可以使用SELECTINT... 在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。在 SQL Server 中,可以使用 SE

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

python多进程实现数据共享的示例代码

《python多进程实现数据共享的示例代码》本文介绍了Python中多进程实现数据共享的方法,包括使用multiprocessing模块和manager模块这两种方法,具有一定的参考价值,感兴趣的可以... 目录背景进程、进程创建进程间通信 进程间共享数据共享list实践背景 安卓ui自动化框架,使用的是

SpringBoot生成和操作PDF的代码详解

《SpringBoot生成和操作PDF的代码详解》本文主要介绍了在SpringBoot项目下,通过代码和操作步骤,详细的介绍了如何操作PDF,希望可以帮助到准备通过JAVA操作PDF的你,项目框架用的... 目录本文简介PDF文件简介代码实现PDF操作基于PDF模板生成,并下载完全基于代码生成,并保存合并P

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st