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

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

1.算法运行效果图预览

337853ac4414cca6bfdeeabb24b518cc_82780907_202402291544080898813027_Expires=1709193248&Signature=Xnha1kQoW%2BXfRxbuwpL75ccSxMc%3D&domain=8.jpeg

将测试结果导入到matlab显示

88dcb4455966fc60f6eb49d9d5d679b1_82780907_202402291543590460805498_Expires=1709193239&Signature=0ROfSkEdX%2BYJPgHmKu1gZDILGrY%3D&domain=8.jpeg

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],其连续小波变换可以表示为卷积形式:

0e2f5afb259ab929ce5b784ef0cc3ebe_82780907_202402291543100788868518_Expires=1709193190&Signature=m0BRfQ9%2BXIkTrH0f82ejQ%2FkXahY%3D&domain=8.png

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

```

相关文章
|
9天前
|
机器学习/深度学习 算法 异构计算
m基于FPGA的多通道FIR滤波器verilog实现,包含testbench测试文件
本文介绍了使用VIVADO 2019.2仿真的多通道FIR滤波器设计。展示了系统RTL结构图,并简述了FIR滤波器的基本理论,包括单通道和多通道的概念、常见结构及设计方法,如窗函数法、频率采样法、优化算法和机器学习方法。此外,还提供了Verilog核心程序代码,用于实现4通道滤波器模块,包含时钟、复位信号及输入输出接口的定义。
28 7
|
1月前
|
算法 异构计算
m基于FPGA的电子钟verilog实现,可设置闹钟,包含testbench测试文件
该文介绍了基于FPGA的电子钟设计,利用Vivado2019.2平台进行开发并展示测试结果。电子钟设计采用Verilog硬件描述语言,核心包括振荡器、分频器和计数器。时间显示为2个十进制格式,闹钟功能通过存储器和比较器实现,当当前时间等于设定时间时触发。文中给出了Verilog核心程序示例,展示了时钟信号、设置信号及输出的交互。
29 2
|
5天前
|
算法 计算机视觉 异构计算
基于FPGA的图像累积直方图verilog实现,包含tb测试文件和MATLAB辅助验证
该内容展示了FPGA实现图像累积直方图的算法。使用Vivado2019.2和matlab2022a,通过FPGA的并行处理能力优化图像处理。算法基于像素值累加分布,计算图像中像素值小于等于特定值的像素个数。核心代码为`test_image`模块,读取二进制图像文件并传递给`im_hist`单元,生成直方图和累积直方图。
|
14天前
|
算法 异构计算 Python
m基于FPGA的217卷积编码维特比译码verilog实现,包含testbench不使用IP核
该内容展示了使用Vivado 2019.2进行卷积编码和维特比译码的模拟。提供了编码、译码输出和RTL图的图片,以及Verilog实现的核心代码。卷积编码是一种前向纠错技术,基于生成多项式产生冗余数据;维特比译码利用动态规划恢复原始信息,最小化错误。Verilog程序包含了编码和译码模块,以及输入输出信号的时序操作。
12 0
|
2月前
|
算法 异构计算
基于FPGA的ECG信号滤波与心率计算verilog实现,包含testbench
基于FPGA的ECG信号滤波与心率计算verilog实现,包含testbench
|
3月前
|
算法 5G 数据处理
m基于FPGA的PPM光学脉位调制解调系统verilog实现,包含testbench
m基于FPGA的PPM光学脉位调制解调系统verilog实现,包含testbench
48 0
|
3月前
|
算法 异构计算 索引
m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核
m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核
45 1
|
5月前
|
算法 测试技术 开发工具
m基于FPGA的2ASK调制解调系统verilog实现,包含testbench测试文件
m基于FPGA的2ASK调制解调系统verilog实现,包含testbench测试文件
53 0
|
5月前
|
测试技术 异构计算
【FPGA基础入门实践】Verilog 基本项目操作逐步演示
【FPGA基础入门实践】Verilog 基本项目操作逐步演示
78 0
|
1月前
|
算法 异构计算
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
16 0

热门文章

最新文章