首页 > 其他分享 >基于FPGA的9/7整数小波变换和逆变换verilog实现,包含testbench

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

时间:2024-02-29 15:58:39浏览次数:19  
标签:滤波器 FPGA clk 变换 整数 rst verilog images 逆变换

1.算法运行效果图预览

 

将测试结果导入到matlab显示

 

 

 

2.算法运行软件版本

vivado2019.2,matlab2022a

 

3.算法理论概述

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

 

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

 

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

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

 

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

 

 

3.2 逆变换过程

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

 

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

 

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

 

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

 

 

 

 

4.部分核心程序

`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

  

标签:滤波器,FPGA,clk,变换,整数,rst,verilog,images,逆变换
From: https://www.cnblogs.com/matlabworld/p/18044447

相关文章

  • NVME FPGA IP测试记录
    这里涉及商业IP的部分文字资料,如有侵权,请联系删除。当前只说明基础测试,更多测试待后续更新。NVMEHOSTIPIP特性范例截图ZCU106测试使用ZCU106HPC0接口+FMCDriveNVME接口子卡,NVME使用三星980测试日志EnteringMainStartinginitialization...Expecting1dr......
  • (笔记)FPGA设计性能优化策略漫谈(一)--时序优化
    1   速度优化 1.1 关键路径重组FPGA逻辑设计中时序路径上的组合逻辑都会给路径增加延时,从而影响设计性能的往往只有几条关键的路径而已,所以可以通过减少关键路径上的组合逻辑单元数来减小该路径上的延时,从而达到优化的目的。关键路径重组技术多用于关键路径由多个路......
  • 基于FPGA的ECG信号滤波与心率计算verilog实现,包含testbench
    1.算法运行效果图预览 其RTL结构如下:  2.算法运行软件版本vivado2019.2  3.算法理论概述        心电图(ECG)是医学领域中常用的一种无创检测技术,用于记录和分析心脏的电活动。由于ECG信号微弱且易受到噪声干扰,因此在采集和处理过程中需要进行滤波以提取......
  • 基于FPGA的图像双边滤波实现,包括tb测试文件和MATLAB辅助验证
    1.算法运行效果图预览  将FPGA数据导入到matlab对比测试: 2.算法运行软件版本vivado2019.2 matlab2022a 3.算法理论概述         双边滤波是一种非线性滤波方法,它能够在平滑图像的同时保持边缘的锐度。这一特性使得双边滤波在图像处理领域具有广泛的应......
  • FPGA之计数器简单运用(看注释
    先写源文件counter.v////////////////////////////////////////////////////////////////////////////////////ModuleName:counter//板子晶振为50mhz,就是50106hz,周期为20*10(-9)s,s/ms/us/ns/ps,相邻两单位前者是后者的1000倍//所以为20ns,///////////////////////////////......
  • FPGA之38译码器(看注释)
    先是编写源文件,我习惯把他的名字与项目名称统一decoder_3_8.v/*模块思路是输入abc,输出8选1,先定义各个端口,考虑到输出有多个选择所以用[7:0]*/moduledecoder_3_8(a,b,c,out);inputa;inputb;inputc;outputout;//注意在always中必须使用reg变量,所以还要把out转为......
  • Verilog基本语法知识
    define就是一个宏定义define原变量新的值或者名称或表达式再使用的时候可以原变量代替undef是取消定义宏`undef原变量即可完成取消`include"文件名.V"这样可以将文件名.V的全部内容赋值并插入到这条语句所出现的地方,并且在编译中将包含了文件名.V的文件作为源文件进......
  • 业界唯一单芯片自适应射频平台:XCZU42DR-L2FSVE1156I、XCZU42DR-1FFVE1156I、XCZU65DR-
    ZynqUltraScale+RFSoC是业界唯一单芯片自适应射频平台。ZynqUltraScale+RFSoC是一种异构计算架构,包括完整的Arm处理子系统、FPGA架构,以及RF信号链中的完整模数可编程性,其不仅可为不同的应用提供一个完整的单片软件定义无线电平台,而且还有助于随着市场动态的发展,生产无线......
  • PC上位机通过TCP传输视频至FPGA小结
    笔记:TCP/IPLWIPFPGA笔记-CSDN博客上位机建立TCP/IP连接:Matlab实现-CSDN博客小结:1.通过Matlab建立的上位机非常稳定,可以轻松实现图片的发送;clc;clearall;closeall;warningoff;%ConfigPacketFramePacketConfigPacket_Length=14;%配置包单帧长ConfigPack......
  • 基于FPGA的图像Robert变换实现,包括tb测试文件和MATLAB辅助验证
    1.算法运行效果图预览 fpga的结果导入到matlab显示: 2.算法运行软件版本vivado2019.2 matlab2022a 3.算法理论概述       随着数字图像处理技术的不断发展,边缘检测作为图像处理的基本操作,其在机器视觉、自动驾驶、医学影像分析等领域的应用日益广泛。Rober......