基于FPGA的9/7整数小波变换和逆变换verilog实现,包含testbench

news2025/1/23 12:56:12

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

4.1 9/7整数小波变换原理

4.2 逆变换过程

5.算法完整程序工程


1.算法运行效果图预览

将测试结果导入到matlab显示

2.算法运行软件版本

vivado2019.2,matlab2022a

3.部分核心程序

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/02/19 20:11:37
// Design Name: 
// Module Name: TEST_tops
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module TEST_tops();



reg       i_clk;
reg       i_rst;
wire[7:0]o_images;	
//9/7 wavelet
wire signed[15:0]o_images_Di;
wire signed[15:0]o_images_Si;
//9/7 dewavelet
wire       [7:0] o_images2;


tops tops_uut(
            .i_clk        (i_clk),
			   .i_rst        (i_rst),
 
				.o_images       (o_images),
				.o_images_Di       (o_images_Di),
                .o_images_Si       (o_images_Si),  
				.o_images2      (o_images2)
           );

initial
begin
     i_clk = 1'b0;
	  i_rst = 1'b1;
	  #1000
	  i_rst = 1'b0;

end	

integer fout1;
integer fout2;
integer fout3;
integer fout4;
initial begin
 fout1 = $fopen("A.txt","w");
 fout2 = $fopen("B.txt","w");
 fout3 = $fopen("C.txt","w"); 
 fout4 = $fopen("D.txt","w"); 
end

always @ (posedge i_clk)
 begin
	$fwrite(fout1,"%d\n",o_images);
	 $fwrite(fout2,"%d\n",o_images_Di);
	 $fwrite(fout3,"%d\n",o_images_Si);	 
	 $fwrite(fout4,"%d\n",o_images2);	
end
	
	
	
always #5 i_clk = ~i_clk;




endmodule
17_008m

4.算法理论概述

       小波变换是一种在信号处理中广泛应用的数学工具,它能够提供信号在不同尺度和位置上的信息。在图像处理、数据压缩、噪声消除等领域,小波变换都发挥着重要作用。9/7整数小波变换是一种特别适用于无损或有损图像压缩的小波变换,它具有良好的能量集中性和对称性。现场可编程门阵列(FPGA)作为一种可重构的硬件平台,非常适合实现这种计算密集型的小波变换算法。

        9/7整数小波变换基于两个主要的滤波器:一个低通滤波器(也称为尺度滤波器)和一个高通滤波器(也称为小波滤波器)。这两个滤波器分别用于提取信号的近似(低频)和细节(高频)信息。

4.1 9/7整数小波变换原理

        9/7整数小波变换是一种离散小波变换(Discrete Wavelet Transform, DWT)算法,其中最常用的是Daubechies小波家族中的db2小波。该变换主要用于信号的多分辨率分析,通过低通滤波器(LPF)和高通滤波器(HPF)对输入数据进行滤波操作,分别得到近似系数(approximation coefficients)和细节系数(detail coefficients)。在9/7整数小波变换中,滤波器系数是整数,这使得计算过程可以实现无损精度。

       对于一维信号x[n],其连续小波变换可以表示为卷积形式:

4.2 逆变换过程

       9/7整数小波逆变换则是上述过程的逆运算,即将各级近似和细节系数通过上采样、重构滤波器后逐级相加以恢复原信号:

对于每一级近似和细节系数,首先进行上采样操作。

然后通过相应的重构滤波器(它们通常是原始滤波器的镜像对称版本)来重构信号部分。

最终,将重构后的近似信号与从下一层次提升上来的细节信号相加以完成信号恢复。

5.算法完整程序工程

OOOOO

OOO

O

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

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

相关文章

深度学习 精选笔记(4)线性神经网络-交叉熵回归与Softmax 回归

学习参考: 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增),以达到集多方教程的精华于一文的目的。 ③非常推荐上面(学习参考&#x…

postman访问k8s api

第一种方式: kubectl -n kubesphere-system get sa kubesphere -oyaml apiVersion: v1 kind: ServiceAccount metadata:annotations:meta.helm.sh/release-name: ks-coremeta.helm.sh/release-namespace: kubesphere-systemcreationTimestamp: "2023-07-24T07…

影像仪激光扫描功能,无缝连接2D/3D混合测量

在现代工业生产领域,影像仪用于质量控制和产品检测,是一个不可或缺的工具。它通过高精度的成像和图像处理技术,可以及时发现产品的缺陷和异常,以保证产品质量的稳定性和一致性。 影像仪的重要性及其面临的挑战 在工业生产方面&a…

免杀实战-EDR对抗

文章目录 杀软分析BOF.NET 杀软分析 x64dgb简单调试发现该edr在r3环对ntdll.dll和kernel32.dll关键函数均存在hook,这里硬盘读取原来的dll进行重新加载,原理如图 loader // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" #in…

矩阵的范数 matrix norm Frobenius norm 弗罗贝尼乌斯 范数

1,矩阵范数的定义 矩阵的范数,matrix norm即矩阵的模;它把一个矩阵空间变成为赋范线性空间; 从一个矩阵空间映射到非负实数的函数 满足以下条件: 1,严格的正定性。对于 , 则 ; and if , must ; 2&…

Element UI中 el-tree 组件 css 实现横向溢出滚动实现

限制 el-tree 的父容器宽度为 100px 之后 el-tree 组件内数据溢出后隐藏,不出现滚动条 、overflow 为 auto 也无效 overflow 无效是因为 el-tree 宽度 也是 100px 本来也就没有溢出 给 el-tree 添加样式 width: fit-content; min-width: -webkit-fill-available; …

【Nginx笔记02】通过Nginx服务器转发客户端的WebSocket接口到后端服务

这篇文章,主要介绍如何通过Nginx服务器转发客户端的WebSocket接口到后端服务【知识星球】。 目录 一、Nginx配置WebSocket 1.1、Nginx配置内容 1.2、客户端请求地址 1.3、创建WebSocket测试工程 1.4、启动测试 1.5、WebSocket超时问题 1.5.1、设置超时时间 …

一键生成任意前端项目

开始 方式一:根据数据库结构一键生成 方式二:根据(.sql, .java, .txt)描述文件单页面生成 总结 话不多说,作为后端开发人员,不爱写前端代码,但又不得不需要一个系统的管理端来配置些数据等等…

架构设计:生产消费模型

1. 引言 在现代软件系统中,处理大量数据和消息是一项重要的任务。生产消费模型作为一种经典的并发模式,在解决数据生产和消费之间的关系上发挥着关键作用。该模型通过有效地管理生产者和消费者之间的通信和数据流动,实现了系统组件之间的解耦…

【论文阅读】基于人工智能目标检测与跟踪技术的过冷流沸腾气泡特征提取

Bubble feature extraction in subcooled flow boiling using AI-based object detection and tracking techniques 基于人工智能目标检测与跟踪技术的过冷流沸腾气泡特征提取 期刊信息:International Journal of Heat and Mass Transfer 2024 级别:EI检…

【寸铁的刷题笔记】图论、bfs、dfs

【寸铁的刷题笔记】图论、bfs、dfs 大家好 我是寸铁👊 金三银四,图论基础结合bfs、dfs是必考的知识点✨ 快跟着寸铁刷起来!面试顺利上岸👋 喜欢的小伙伴可以点点关注 💝 🌞详见如下专栏🌞 &…

2024年新提出的算法|鹦鹉优化器(Parrot optimizer):算法及其在医疗问题中的应用

本期介绍一种基于训练后鹦鹉关键行为的高效优化方法——鹦鹉优化器(Parrot Optimizer, PO)。该成果于2024年2月发表在中科院2区top SCI期刊Computers in Biology and Medicine(IF7.7) 1、简介 鹦鹉优化器(PO)是一种受训练有素的…

RocketMQ学习笔记(2)—— 集成SpringBoot

前置知识&#xff1a; RocketMQ学习笔记&#xff08;1&#xff09;—— 基础使用-CSDN博客 7.集成SpringBoot 以上所述功能均是通过RocketMQ的原生API实现的&#xff0c;除此之外SpringBoot对于一些功能进行了封装&#xff0c;使用更加方便 7.1 producer 依赖 <!-- rock…

新火种AI|微软扶持下一个OpenAI?Mistral AI新模型对标GPT-4,上线即挤爆

作者&#xff1a;一号 编辑&#xff1a;美美 OpenAI的大金主微软&#xff0c;还想缔造“下一个OpenAI”。 周一晚间&#xff0c;成立仅9个月的Mistral AI正式发布了最强力的旗舰模型Mistral Large。和此前他们所推出的一系列模型不同&#xff0c;Mistral AI本次发布的版本性…

TikTok矩阵系统的功能展示:深入解析与源代码分享!

今天我来和大家说说TikTok矩阵系统&#xff0c;在当今数字化时代&#xff0c;社交媒体平台已成为人们获取信息、交流思想和娱乐放松的重要渠道&#xff0c;其中&#xff0c;TikTok作为一款全球知名的短视频社交平台&#xff0c;凭借其独特的创意内容和强大的算法推荐系统&#…

有效防止CDN网站被溯源ip的教程

如何反溯源隐藏自己的源IP防止溯源&#xff1f; 还有些大牛会进行渗透攻击、CC攻击&#xff0c;溯源打服务器&#xff0c;各式各样的&#xff0c;防不胜防。所以很多站长套起了cdn&#xff0c;比起cdn提供的加速效果&#xff0c;更多的站长可能还是为了保护那可怜弱小的源站ip…

Docker(运维工具)—— 学习笔记

快速构建、运行、管理应用的工具 一、安装docker 参考Install Docker Engine on Ubuntu | Docker Docs 二、快速入门 1、镜像和容器 docker镜像可以做到忽略操作系统的差异&#xff0c;跨平台运行&#xff0c;忽略安装的差异 当我们利用Docker安装应用时&#xff0c;Dock…

关于机器学习梯度下降法以及牛顿法公式符号的解释

如下图&#xff0c;是公式 如上图红线画出的部分&#xff0c;就是梯度下降法的符号&#xff0c;或者说&#xff0c;是 J(theta) 损失函数的一阶导数 整个公式看起来&#xff0c;就是 theta_new theta_old - (一阶导数/二阶导数)

算法day01_ 27. 移除元素、977.有序数组的平方

推荐阅读 从零开始学数组&#xff1a;深入浅出&#xff0c;带你掌握核心要点 初探二分法 再探二分法 系统的纪录一下刷算法的过程&#xff0c;之前一直断断续续的刷题&#xff0c;半途而废&#xff0c;现在重新开始。话不多说&#xff0c;开冲&#xff01; 27.移除元素 题目 给…

Maven编译报processing instruction can not have PITarget with reserveld xml name

在java项目中&#xff0c;平时我们会执行mvn clean package命令来编译我们的java项目&#xff0c;可是博主今天执行编译时突然报了 processing instruction can not have PITarget with reserveld xml name 这个错&#xff0c;网上也说法不一&#xff0c;但是绝大绝大部分是因…