基于FPGA的图像一维FFT变换IFFT逆变换verilog实现,包含tb测试文件和MATLAB辅助验证

news2024/10/5 2:28:42

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

5.算法完整程序工程


1.算法运行效果图预览

fpga仿真结果

matlab调用FPGA的仿真结果进行图像显示

2.算法运行软件版本

vivado2019.2

matlab2022a

3.部分核心程序

........................................................
module test_image;
//图片大小
parameter RR=256;
parameter CC=256;

reg i_clk;		 
reg i_rst; 

reg i_image_en;
reg[7:0] i_image;
			
wire o_en_1dfft;
wire o_last_1dfft;
wire[19:0] o_image_R1dfft;
wire[19:0] o_image_I1dfft;		
			
			
			
Image_1Dfft Image_1Dfft_u(		
		 .i_clk					(i_clk),
		 .i_rst					(i_rst),
		 .i_image_en		    (i_image_en),
		 .i_image		        (i_image),
		 
		 .o_en_1dfft      		(o_en_1dfft),
		 .o_last_1dfft    		(o_last_1dfft),
		 .o_image_R1dfft        (o_image_R1dfft), 
		 .o_image_I1dfft        (o_image_I1dfft) 
		 );		
		 
		 
wire o_en_1difft;
wire[7:0] o_image_ifft;	

Image_1Difft Image_1Difft_u(		
		 .i_clk					(i_clk),
		 .i_rst					(i_rst),
		 .i_image_en		    (o_en_1dfft),
		 .i_Rimage		        (o_image_R1dfft),
		 .i_Iimage		        (o_image_I1dfft),
		 .o_en_1difft      		(o_en_1difft),
		 .o_image_ifft          (o_image_ifft)
		 );
 
		
		
		
initial begin
i_clk  = 1;
i_rst  = 1;
#1000;
i_rst = 0;
end
always #10 i_clk = ~i_clk;	


//读取图片数据
integer i,j;
reg[15:0]Men_images [(RR*CC-1):0];
initial #500 $readmemh("D:/FPGA_Proj/FPGAtest/codepz/FPGA_image_input.txt",  Men_images);	

//将数据保存到txt,用来matlab调用
integer Ifout1;
integer fout2;
initial begin
 Ifout1 = $fopen("EN2.txt","w");
 fout2 = $fopen("IiFFT.txt","w");
end

always @ (posedge i_clk)
 begin

	
	
   if(o_en_1difft)
	$fwrite(Ifout1,"%d\n",o_en_1difft);
	else
	$fwrite(Ifout1,"%d\n",0);
	
   if(o_en_1difft)
	$fwrite(fout2,"%d\n",o_image_ifft);
	else
	$fwrite(fout2,"%d\n",0);
	
end
endmodule
0X_037m

4.算法理论概述

        基于现场可编程门阵列(Field-Programmable Gate Array, FPGA)实现的图像一维快速傅里叶变换(Fast Fourier Transform, FFT)和逆快速傅里叶变换(Inverse Fast Fourier Transform, IFFT)是数字信号处理领域的重要技术,特别是在图像处理、通信和信号分析等方面有着广泛的应用。

       基于 FPGA 的一维 FFT 和 IFFT 实现,通过高效算法的硬件化,不仅大幅提高了计算速度,而且在功耗和实时性方面展现出优势,特别适合于对计算密集型和实时性要求高的图像处理应用,如图像压缩、图像滤波、图像识别等。

5.算法完整程序工程

OOOOO

OOO

O

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1792985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ElementUI的Table组件在无数据情况下让“暂无数据”文本居中显示

::v-deep .el-table__empty-block {width: 100%;min-width: 100%;max-width: 100%; }

什么是事务性电子邮件

事务性电子邮件(Transactional Emails)是企业或组织针对客户或会员的特定活动或操作而发送的电邮。这类邮件的目的是通知用户关于账户状态、订单处理、密码重置、服务更新等重要个人信息。事务性邮件旨在辅助完成特定的业务流程或任务,确保用…

47、Flink 的 Data Source 原理

1.Data Source 原理 a)核心组件 一个数据 source 包括三个核心组件:分片(Splits)、分片枚举器(SplitEnumerator) 以及 源阅读器(SourceReader)。 分片(Split&#xff…

Xcode设置cocoapods库的最低兼容版本

目录 前言 1.使用cocoapods遇到的问题 2.解决办法 1.用法解释 1. config.build_settings: 2.IPHONEOS_DEPLOYMENT_TARGET 2.使用实例 3.注意事项 1.一致性 2.pod版本 前言 这篇文章主要是介绍如何设置cocoapods三方库如何设置最低兼容的版本。 1.使用cocoapods遇到的…

LitCTF2024部分wp

litctf wp 第一次ak了web和misc,非常激动,感谢lictf给我这个机会 最终成果 全靠队里的密码逆向✌带飞。一个人就砍了近一半的分数 这里是我们队的wp web exx 题目名反过来就是xxe,考察xxe,查看登录的数据包 发现传的就是xml…

ast.js是什么?

在devtools分析网站时,出现了ast.js的页面。那么,什么是ast.js?它有什么用? 经查询,AST是抽象语法树(Abstract Syntax Tree)也称为AST语法树,指的是源代码语法所对应的树状结构。也就是说&…

wandb安装与使用 —— 用于跟踪、可视化和协作机器学习实验的工具

文章目录 一、wandb简介二、wandb注册与登陆(网页) —— 若登录,则支持在线功能三、wandb安装与登陆(命令行) —— 若不登录,则只保留离线功能四、函数详解4.1、wandb.init() —— 初始化一个新的 wandb 实…

AI图书推荐:《如何利用ChatGPT在线赚钱》

这本书《如何利用ChatGPT在线赚钱》($100m ChatGPT_ How To Make Money Online With ChatGPT -- Sharp, Biily -- 2023 )主要阐述如何利用ChatGPT这一强大的语言模型工具在互联网上创造收入。 以下是各章节内容的概要: **引言** - 介绍了Chat…

批量处理文件名:高效替换与插入文字,优化文件管理新策略,轻松提升工作效率

文件管理成为我们工作中不可或缺的一环。面对大量的文件,如何高效、精准地处理文件名,成为了提升工作效率的关键。今天,我们向您推荐一款能够轻松实现文件名批量处理的神器——文件批量改名高手,助您优化文件管理,提升…

GPT-4 Turbo 和 GPT-4 的区别

引言 人工智能(AI)领域的发展日新月异,OpenAI 的 GPT 系列模型一直是这一领域的佼佼者。GPT-4 和 GPT-4 Turbo 是目前市场上最先进的语言模型之一。本文将详细探讨 GPT-4 和 GPT-4 Turbo 之间的区别,以帮助用户更好地理解和选择适…

白酒:全球化背景下产地白酒的国际竞争与合作

在全球化背景下,云仓酒庄豪迈白酒作为中国白酒的品牌之一,面临着国际竞争与合作的机遇与挑战。国际市场竞争的激烈以及消费者需求的多样化,要求云仓酒庄豪迈白酒不断提升品质、拓展市场以及加强国际合作,以提升品牌竞争力和市场份…

QQ号码采集器

寅甲QQ号码采集软件, 一款采集QQ号、QQ邮件地址,采集QQ群成员、QQ好友的软件。可以按关键词采集,如可以按地区、年龄、血型、生日、职业等采集。采集速度非常快且操作很简单。

图神经网络实战(12)——图同构网络(Graph Isomorphism Network, GIN)

图神经网络实战(12)——图同构网络 0. 前言1. 图同构网络原理2. 构建 GIN 模型执行图分类2.1 图分类任务2.2 PROTEINS 数据集分析2.3 构建 GIN 实现图分类2.4 GCN 与 GIN 性能差异分析 3. 提升模型性能小结系列链接 0. 前言 Weisfeiler-Leman (WL) 测试…

simplicity studio 5 修改设备电压

工装板的soc额定输入电压为1.5v,而常态下ttl高电平为5v/3.3v,所以需要设定烧录程序时的设备电压。 确保连接设备,并且被识别。 进入管理员模式。 烧录.hex文件快捷方法。

基于springboot实现毕业论文管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现毕业论文管理系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本毕业论文管理系统就是在这样的大环境下诞生,其可以帮助…

Linux 35.5 + JetPack v5.1.3@ ego-planner编译安装

Linux 35.5 JetPack v5.1.3 ego-planner编译安装 1. 源由2. 编译&安装Step 1:依赖库安装Step 2:建立工程Step 3:编译工程Step 4:安装工程 3. 问题汇总3.1 planner/plan_env - OpenCV3.2 uav_simulator/local_sensing - CUDA优…

python元组容器

""" 元组 ---不可变的容器 """ # 不写逗号就是字符串 fruits (watermelon) print(type(fruits)) # 一元组需要加逗号 fruits (watermelon,) print(type(fruits))# 元组运算--重复运算 fruits (watermelon, apple, banana, peach, apple) pri…

UE5-人物角色动画蓝图

这里主要从零给角色创建移动的蓝图,包含多种状态 创建 首先在角色骨骼网格体上右键创建动画蓝图 进入,在AnimGraph界面创建一个状态机(stateMachine) Idle 进入状态机,拉出来创建一个newState,这里命名…

QML应用添加网络代理

在QML应用中我们可以通过QNetworkProxy和QNetworkAccessManager类给应用添加网络代理。QNetworkProxy是Qt网络模块中的一个类,用于配置网络请求的代理服务器。通过使用代理服务器,我们可以控制应用程序的网络流量,实现网络请求的转发、监视、和过滤等功能。代理服务器在很多…

【Linux】(一)——Linux基础和Linux命令基础语法

目录 Linux基础Linux发行版本Linux终端Linux命令 Linux基础 Linux,通常指的是GNU/Linux操作系统,这是一个开源且免费使用的类UNIX操作系统。它的核心组件——Linux内核,由林纳斯托瓦兹(Linus Torvalds)在1991年10月5日…