基于FPGA的FFT图像滤波设计

这篇具有很好参考价值的文章主要介绍了基于FPGA的FFT图像滤波设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.FFT滤波算法介绍

        FFT滤波就是通过傅里叶运算将图像转换到频域空间,然后在频域中对图像进行处理,最后将处理后的图像通过傅里叶逆运算将图像转会到时域空间。

  在频域空间中,我们能够更好的对图像的噪声进行分析,然后找出相关规律将噪声信息去除。

  本文重点讲解如何在FPGA中实现FFT图像算法,对于算法原理不过多讲解

2.FFT滤波算法系统框架设计

 fpga fft 输出结果,fpga开发

 如上图所示,本系统程序由5个模块组成,下面对每个每模块进行详细介绍。

 2.1 image_sample_switch模块说明

         该模块的作用将输入的图像数据进行变化,从而满足蝶形FFT的运算形式。为什么要对图像数据进行变化呢?因为蝶形FFT数据的数据必须满足

fpga fft 输出结果,fpga开发 

 

  • 1. image_sample_switch程序接口

名称

方向

位宽

说明

pixel_clk

Input

1

图像工作时钟

clk

Input

1

算法运行时钟(2Xpixel_clk)

reset

Input

1

复位信号(active high)

image_vs_i

Input

1

图像场信号

image_hs_i

input

1

图像行信号

 image_data_i

input

size

图像数据

image_sample_wren_o

input

1

AXI总线形式的写信号

image_sample_last_o

input

size

AXI总线形式的last信号

image_sample_wrdb_o

Output

size

转化后的图像数据

 仿真结果如下图所示

fpga fft 输出结果,fpga开发 

 2.2 image_fft_control模块说明

 该模块的作用是实现FFT的蝶形运算,由于蝶形运算比较复杂,我们直接调用xilinx的FFT-IP进行运算。

 

fpga fft 输出结果,fpga开发 

 如下图所示,调用FFT-IP,将转换深度设置为1024(因为我们的图像是每行640个像素),资源选择pipelined streaming 模式。

 

fpga fft 输出结果,fpga开发 

 

将Data Format  设置为fixed point;

scaling options设置为unscaled;

rounding modes  设置为truncation

 

fpga fft 输出结果,fpga开发 

 

fpga fft 输出结果,fpga开发 

 

对IP的操作,首先将FFT-IP配置为FFT模式,然后按照AXI总线形式进行数据输入既可。

仿真结果如下图所示

 

fpga fft 输出结果,fpga开发 

 2.3 image_fliter_cal模块说明

该模块的作用就是对频域数据进行计算,通过前面的FFT转化后的数据变成频域数值,频域数值是有实部和虚部,主要是对实部和虚部。如何对实部和虚部进行运算呢,就是分别对实部和虚部进行平方操作,然后将它们进行加法计算,将结果进行开平方操作;最近将开平方运算后的数据与设置的阈值进行比较。

 

fpga fft 输出结果,fpga开发 

fpga fft 输出结果,fpga开发 

fpga fft 输出结果,fpga开发 

fpga fft 输出结果,fpga开发 

fpga fft 输出结果,fpga开发 

fpga fft 输出结果,fpga开发 

 2.4 image_ifft_control模块说明

 该模块的作用就是将频域空间的数据转换到时域空间,该功能的实现通过调用Xilinx的FFT-IP实现。

fpga fft 输出结果,fpga开发 

  • 1. image_ifft_contro程序接口

名称

方向

位宽

说明

clk

Input

1

工作时钟

fft_initi_i

Input

1

Ip初始化信号

image_fliter_wren_i

input

1

图像写信号

image_fliter_last_i

input

size

图像结束信号

image_fliter_db_im_i

input

size

图像虚部数据

Image_fliter_real_db_i

input

size

图像实部数据

image_ifft_wren_o

input

1

AXI总线形式的写信号

image_ifft_last_o

input

size

AXI总线形式的last信号

image_ifft_wrdb_o

Output

size

转化后的图像数据

fpga fft 输出结果,fpga开发 

,所以对图像每行数据进行扩充,从而满足需求,一般补充的数据都是0,这样不会影响计算结果。文章来源地址https://www.toymoban.com/news/detail-854186.html

到了这里,关于基于FPGA的FFT图像滤波设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VIVADO中FFT核的使用(FPGA计算FFT和IFFT)

             关于这方面的内容,有些文章已经写的很好很详细了。不过我在使用的过程中,还是踩了一些坑,我在这里详细的介绍了IP核每一个设置的作用,然后写了个fft计算和ifft计算的环路的测试程序。应该可以帮大家学会使用fft的同时,也对它有个较为全面的理解。

    2024年01月18日
    浏览(18)
  • FPGA实现8点FFT

    前面我们讲了FFT的原理以及其在C++上的实现,可以参考我的博客: 快速傅里叶变换学习(超详细,附代码实现)_Patarw_Li的博客-CSDN博客 C++实现FFT算法(迭代版本)_Patarw_Li的博客-CSDN博客 下面我们会在FPGA上用Verilog实现8点FFT,下面是需要注意的几点: 1. 旋转因子 在FPGA中直接

    2024年02月06日
    浏览(22)
  • FPGA实现对锯齿波的FFT分析

    由信号与系统知识: 任意一个周期函数的傅里叶级数构造出来的三角函数展开式形式为:  其中2pi/T是原始信号的角频率,因为n1,可见分量的角频率必然不小于原始信号的频率,是原始信号频率的整数倍。所以这里的n不是索引序号,而是分量的角频率与原始信号角频率的倍

    2024年02月05日
    浏览(21)
  • 基4FFT 1024 fpga(verilog)实现

    文章目录 概要 整体结果 模块设计 细节实现 小结 对于基4fft算法,计算原理无需多说,可以看看知网论文,或者数字信号处理的书籍,本次基4fft按照AXI4-stream总线协议方式,当握手时开始产生传送数据流 本次采用的方法是使用状态机实现:(1)S0状态:初始状态.(2)S1状态:开始

    2024年02月05日
    浏览(22)
  • FPGA中FFT IP核应用(二)

    前文主要着重介绍了ise当中的FFT IP核的使用方法,本文将介绍Vivado中的FFT IP核使用方法。并且设计一段仿真代码,进行波形仿真,查看输出结果。 提示:以下是本篇文章正文内容 版本号:Fast Fourier Transform v9.1 Xilinx LogiCORE IP快速傅里叶变换(FFT)核心实现了Cooley-Tukey FFT算法,这

    2024年02月15日
    浏览(21)
  • FPGA中FFT IP核应用(一)

    小编是做通信相关的FPGA工程师,在工作当中必然要用到快速傅里叶变换,那么就有必要讲解一下关于Xilinx器件的FFT IP核用法。首先Xilinx器件经过ise到vivado的软件升级,其对应FFT IP核也相应的升级了,由之前的版本升级为现在的aAXI4总线版本。本文着重介绍AXI4总线版本,也会将

    2024年02月06日
    浏览(15)
  • FPGA:实现快速傅里叶变换(FFT)算法

    第一次使用FPGA实现一个算法,搓手手,于是我拿出一股势在必得的心情打开了FFT的视频教程,看了好几个视频和好些篇博客,于是我迷失在数学公式推导中,在一位前辈的建议下,我开始转换我的思维, 从科研心态转变为先用起来 ,于是我关掉我的推导笔记,找了一篇叫我

    2024年02月03日
    浏览(22)
  • 【FPGA】FFT测量信号频率(Quartus IP核)

    ​​​​​​​ 一、前言 二、FFT是什么(原理)? 三、FFT IP核参数介绍 四、仿真 0、文件完整结构 1、设置IP核 2、例化FFT,并完善顶层文件 3、利用matlab生成正弦波信号 4、导出变量x生成的正弦波数据 5、编写testbench 6、RTL Simulation 五、上板 1、matlab生成正弦波信号并导出m

    2024年04月28日
    浏览(16)
  • 【FPGA-DSP】第五期:FFT调用流程

    目录 1. matlab输入信号编写 2. Simulink开发 2.1 模块搭建 2.2 Simulink运行 2.3 matlab信号处理  拓:输入信号位数改变 本章节主要说明如何在system generator中使用fft模块,话不多说,看操作: 参考教程第5期 - FFT调用流程 - 基于FPGA的数字信号处理系统开发笔记_哔哩哔哩_bilibili 参考我之

    2023年04月11日
    浏览(18)
  • 数字信号处理-11-FPGA FFT IP应用实例

    本文根据FFT相关原理进行设计构建工程,仿造前文的工程构建的混频功能的工程,设计工程显示该混频信号的功率谱,然后进行仿真分析。 本文不再针对FFT的原理进行过多赘述,提供一份简单的matlab仿真代码。根据仿真简述下FFT的相关使用注意事项。 代码设计,模拟生成了

    2024年02月02日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包