校园超市网站开发,如何刷网站流量,制作相册影集app,网站建设玖金手指谷哥十1.FFT滤波算法介绍 FFT滤波就是通过傅里叶运算将图像转换到频域空间#xff0c;然后在频域中对图像进行处理#xff0c;最后将处理后的图像通过傅里叶逆运算将图像转会到时域空间。 在频域空间中#xff0c;我们能够更好的对图像的噪声进行分析#xff0c;然后找出相关规律…1.FFT滤波算法介绍 FFT滤波就是通过傅里叶运算将图像转换到频域空间然后在频域中对图像进行处理最后将处理后的图像通过傅里叶逆运算将图像转会到时域空间。 在频域空间中我们能够更好的对图像的噪声进行分析然后找出相关规律将噪声信息去除。 本文重点讲解如何在FPGA中实现FFT图像算法对于算法原理不过多讲解。
2.FFT滤波算法系统框架设计 如上图所示本系统程序由5个模块组成下面对每个每模块进行详细介绍。 2.1 image_sample_switch模块说明 该模块的作用将输入的图像数据进行变化从而满足蝶形FFT的运算形式。为什么要对图像数据进行变化呢因为蝶形FFT数据的数据必须满足 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 转化后的图像数据 仿真结果如下图所示 2.2 image_fft_control模块说明 该模块的作用是实现FFT的蝶形运算由于蝶形运算比较复杂我们直接调用xilinx的FFT-IP进行运算。 如下图所示调用FFT-IP将转换深度设置为1024因为我们的图像是每行640个像素资源选择pipelined streaming 模式。 将Data Format 设置为fixed point;
scaling options设置为unscaled;
rounding modes 设置为truncation 对IP的操作首先将FFT-IP配置为FFT模式然后按照AXI总线形式进行数据输入既可。
仿真结果如下图所示 2.3 image_fliter_cal模块说明
该模块的作用就是对频域数据进行计算通过前面的FFT转化后的数据变成频域数值频域数值是有实部和虚部主要是对实部和虚部。如何对实部和虚部进行运算呢就是分别对实部和虚部进行平方操作然后将它们进行加法计算将结果进行开平方操作最近将开平方运算后的数据与设置的阈值进行比较。 2.4 image_ifft_control模块说明 该模块的作用就是将频域空间的数据转换到时域空间该功能的实现通过调用Xilinx的FFT-IP实现。 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 转化后的图像数据 所以对图像每行数据进行扩充从而满足需求一般补充的数据都是0这样不会影响计算结果。