基于提升算法的二维53和97小波变换的MATLAB仿真与DSP实现

合集下载

基于matlab的dsp实现

基于matlab的dsp实现
引言
数字信号处理(Digital Signal Processing——DSP)是一 门涉及许多学科且广泛应用于许多领域的新兴学科。DSP 包 括两重含义数字信号处理技术(Digital Signal Processing)和 数字信号处理器(Digital Signal Processor) 。 随着微电子技术、 信息技术和计算机技术的迅猛发展,数字信号处理技术应运 而生,发展迅速,并且日趋完善和成熟。数字信号处理已成 为一门极其重要的学科和技术领域,数字信号处理在通信、 语音、图像、自动控制、雷达、军事、航空航天、医疗和家 用电器众多领域获得了广泛应用。数字信号处理器(DSP)是 利用计算机或专用处理设备,以数值计算的方法,对信号进 行采集、滤波、增强、压缩、估值和识别等加工处理,借以 达到提取信息和便于应用的目的,其应用范围涉及几乎所有 的工程技术领域。
8.实验总结
通过这次的实验使我懂得了理论与实际相结合的重要性, 只有理论知识是远远不够的,只有把所学的理论知识与实践 相结合起来,从理论中得出结论,才能真正为社会服务,从 而提高自己的实际动手能力和独立思考的能力。在实验过程 中遇到问题, 可以说是困难重重, 也发现了自己的不足之处, 对以前所学过的知识理解得不够深刻,掌握得不够牢靠,通 过此次实验,让自己学到了许多东西,在此感谢老师的教导 和其他同学的无私帮助。
一.实验目的
1)学习 DSP 系统的构成及软件设计方法,编写 DSP 程序, 掌握 CCS 软件的调试方法。 2)掌握直方图统计的原理和程序设计方法。
二.实验设备
1)PC 机一台,操作系统为 Windows7,为了兼容性考虑,我 们在计算机上安装 VMware Workstation 虚拟机软件,并虚拟 WindowsXP 系统环境,以达到实验要求。 2)在虚拟 WindowsXP 系统下安装 CCS5000 及 MATLAB 仿真 软件。

MATLAB小波变换指令及其功能介绍(超级有用)解读

MATLAB小波变换指令及其功能介绍(超级有用)解读

MATLAB小波变换指令及其功能介绍1 一维小波变换的 Matlab 实现(1) dwt函数功能:一维离散小波变换格式:[cA,cD]=dwt(X,'wname')[cA,cD]=dwt(X,Lo_D,Hi_D)别可以实现一维、二维和 N 维DFT说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数 'wname' 对信号X 进行分解,cA、cD 分别为近似分量和细节分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组 Lo_D、Hi_D 对信号进行分解。

(2) idwt 函数功能:一维离散小波反变换格式:X=idwt(cA,cD,'wname')X=idwt(cA,cD,Lo_R,Hi_R)X=idwt(cA,cD,'wname',L)函数 fft、fft2 和 fftn 分X=idwt(cA,cD,Lo_R,Hi_R,L)说明:X=idwt(cA,cD,'wname') 由近似分量 cA 和细节分量 cD 经小波反变换重构原始信号 X 。

'wname' 为所选的小波函数X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器 Lo_R 和Hi_R 经小波反变换重构原始信号 X 。

X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号 X 中心附近的 L 个点。

2 二维小波变换的 Matlab 实现二维小波变换的函数别可以实现一维、二维和 N 维 DFT函数名函数功能---------------------------------------------------dwt2 二维离散小波变换wavedec2 二维信号的多层小波分解idwt2 二维离散小波反变换waverec2 二维信号的多层小波重构wrcoef2 由多层小波分解重构某一层的分解信号upcoef2 由多层小波分解重构近似分量或细节分量detcoef2 提取二维信号小波分解的细节分量appcoef2 提取二维信号小波分解的近似分量upwlev2 二维小波分解的单层重构dwtpet2 二维周期小波变换idwtper2 二维周期小波反变换-----------------------------------------------------------(1) wcodemat 函数功能:对数据矩阵进行伪彩色编码函数 fft、fft2 和 fftn 分格式:Y=wcodemat(X,NB,OPT,ABSOL)Y=wcodemat(X,NB,OPT)Y=wcodemat(X,NB)Y=wcodemat(X)说明:Y=wcodemat(X,NB,OPT,ABSOL) 返回数据矩阵 X 的编码矩阵Y ;NB 伪编码的最大值,即编码范围为 0~NB,缺省值 NB=16;OPT 指定了编码的方式(缺省值为 'mat'),即:别可以实现一维、二维和 N 维 DFTOPT='row' ,按行编码OPT='col' ,按列编码OPT='mat' ,按整个矩阵编码函数 fft、fft2 和 fftn 分ABSOL 是函数的控制参数(缺省值为 '1'),即:ABSOL=0 时,返回编码矩阵ABSOL=1 时,返回数据矩阵的绝对值 ABS(X)1. 离散傅立叶变换的 Matlab实现(2) dwt2 函数功能:二维离散小波变换格式:[cA,cH,cV,cD]=dwt2(X,'wname')[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)说明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函数'wname' 对二维信号 X 进行二维离散小波变幻;cA,cH,cV,cD 分别为近似分量、水平细节分量、垂直细节分量和对角细节分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通滤波器 Lo_D 和 Hi_D 分解信号 X 。

小波变换的原理及matlab仿真程序讲解学习

小波变换的原理及matlab仿真程序讲解学习

小波变换的原理及m a t l a b仿真程序基于小波变换的信号降噪研究2 小波分析基本理论设Ψ(t)∈L 2( R) ( L 2( R) 表示平方可积的实数空间,即能量有限的信号空间) , 其傅立叶变换为Ψ(t)。

当Ψ(t)满足条件[4,7]:2()R t dw w C ψψ=<∞⎰ (1)时,我们称Ψ(t)为一个基本小波或母小波,将母小波函数Ψ(t)经伸缩和平移后,就可以得到一个小波序列:,()()a b t b t aψ-= ,,0a b R a ∈≠ (2) 其中a 为伸缩因子,b 为平移因子。

对于任意的函数f(t)∈L 2( R)的连续小波变换为:,(,),()()f a b R t b W a b f f t dt aψψ-=<>=⎰(3) 其逆变换为:211()(,)()f R R t b f t W a b dadb C a aψψ+-=⎰⎰ (4) 小波变换的时频窗是可以由伸缩因子a 和平移因子b 来调节的,平移因子b,可以改变窗口在相平面时间轴上的位置,而伸缩因子b 的大小不仅能影响窗口在频率轴上的位置,还能改变窗口的形状。

小波变换对不同的频率在时域上的取样步长是可调节的,在低频时,小波变换的时间分辨率较低,频率分辨率较高:在高频时,小波变换的时间分辨率较高,而频率分辨率较低。

使用小波变换处理信号时,首先选取适当的小波函数对信号进行分解,其次对分解出的参数进行阈值处理,选取合适的阈值进行分析,最后利用处理后的参数进行逆小波变换,对信号进行重构。

3 小波降噪的原理和方法3.1 小波降噪原理从信号学的角度看 ,小波去噪是一个信号滤波的问题。

尽管在很大程度上小波去噪可以看成是低通滤波 ,但由于在去噪后 ,还能成功地保留信号特征 ,所以在这一点上又优于传统的低通滤波器。

由此可见 ,小波去噪实际上是特征提取和低通滤波的综合 ,其流程框图如图所示[6]:小波分析的重要应用之一就是用于信号消噪 ,一个含噪的一维信号模型可表示为如下形式:(k)()()S f k e k ε=+* k=0.1…….n-1 其中 ,f( k)为有用信号,s(k)为含噪声信号,e(k)为噪声,ε为噪声系数的标准偏差。

Matlab实现小波变换-中国高校自动化网

Matlab实现小波变换-中国高校自动化网

Matlab实现小波变换-中国高校自动化网Matlab实现小波变换文章来源:不详作者:佚名--------------------------------------------------------------------------------该文章讲述了Matlab实现小波变换应用MATLAB 小波变换 2010-01-11 20:513. 图像小波变换的 Matlab 实现函数 fft、fft2 和 fftn 分析3.1 一维小波变换的 Matlab 实现(1) dwt 函数 Matlab功能:一维离散小波变换格式:[cA,cD]=dwt(X,'wname')[cA,cD]=dwt(X,Lo_D,Hi_D)别可以实现一维、二维和 N 维 DFT 说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数'wname' 对信号X 进行分解,cA、cD 分别为近似分量和细节分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组 Lo_D、Hi_D 对信号进行分解。

(2) idwt 函数功能:一维离散小波反变换格式:X=idwt(cA,cD,'wname')X=idwt(cA,cD,Lo_R,Hi_R)X=idwt(cA,cD,'wname',L)函数 fft、fft2 和 fftn 分X=idwt(cA,cD,Lo_R,Hi_R,L)说明:X=idwt(cA,cD,'wname') 由近似分量 cA 和细节分量 cD 经小波反变换重构原始信号 X 。

'wname' 为所选的小波函数X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器 Lo_R 和 Hi_R 经小波反变换重构原始信号 X 。

X=idwt(cA,cD,'wname',L) 和X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号 X 中心附近的 L 个点。

MATLAB小波变换指令及其功能介绍(超级有用)(可编辑修改word版)

MATLAB小波变换指令及其功能介绍(超级有用)(可编辑修改word版)

MATLAB 小波变换指令及其功能介绍1一维小波变换的 Matlab 实现(1)dwt 函数功能:一维离散小波变换格式:[cA,cD]=dwt(X,'wname')[cA,cD]=dwt(X,Lo_D,Hi_D)别可以实现一维、二维和 N 维DFT说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数 'wname'对信号 X 进行分解,cA、cD 分别为近似分量和细节分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组 Lo_D、Hi_D 对信号进行分解。

(2)idwt 函数功能:一维离散小波反变换格式:X=idwt(cA,cD,'wname')X=idwt(cA,cD,Lo_R,Hi_R)X=idwt(cA,cD,'wname',L)函数 fft、fft2 和 fftn 分X=idwt(cA,cD,Lo_R,Hi_R,L)说明:X=idwt(cA,cD,'wname') 由近似分量 cA 和细节分量 cD 经小波反变换重构原始信号 X 。

'wname' 为所选的小波函数X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器 Lo_R 和Hi_R 经小波反变换重构原始信号 X 。

X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号 X 中心附近的 L 个点。

2二维小波变换的 Matlab 实现二维小波变换的函数别可以实现一维、二维和 N 维 DFT函数名函数功能dwt2 二维离散小波变换wavedec2 二维信号的多层小波分解idwt2 二维离散小波反变换waverec2 二维信号的多层小波重构wrcoef2 由多层小波分解重构某一层的分解信号upcoef2 由多层小波分解重构近似分量或细节分量detcoef2 提取二维信号小波分解的细节分量appcoef2 提取二维信号小波分解的近似分量upwlev2 二维小波分解的单层重构dwtpet2 二维周期小波变换idwtper2 二维周期小波反变换(1)wcodemat 函数功能:对数据矩阵进行伪彩色编码函数 fft、fft2 和 fftn 分格式:Y=wcodemat(X,NB,OPT,ABSOL)Y=wcodemat(X,NB,OPT)Y=wcodemat(X,NB)Y=wcodemat(X)说明:Y=wcodemat(X,NB,OPT,ABSOL) 返回数据矩阵 X 的编码矩阵Y ;NB 伪编码的最大值,即编码范围为 0~NB,缺省值 NB=16;OPT 指定了编码的方式(缺省值为 'mat'),即:别可以实现一维、二维和 N 维 DFTOPT='row' ,按行编码OPT='col' ,按列编码OPT='mat' ,按整个矩阵编码函数 fft、fft2 和 fftn 分ABSOL 是函数的控制参数(缺省值为 '1'),即: ABSOL=0 时,返回编码矩阵ABSOL=1 时,返回数据矩阵的绝对值 ABS(X)1. 离散傅立叶变换的 Matlab 实现(2)dwt2 函数功能:二维离散小波变换格式:[cA,cH,cV,cD]=dwt2(X,'wname')[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)说明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函数'wname' 对二维信号 X 进行二维离散小波变幻;cA,cH,cV,cD 分别为近似分量、水平细节分量、垂直细节分量和对角细节分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通滤波器 Lo_D 和 Hi_D 分解信号 X 。

基于Matlab的图像小波变换仿真

基于Matlab的图像小波变换仿真

22 集成电路应用 第 37 卷 第 10 期(总第 325 期)2020 年 10 月Research and Design研究与设计0 引言 图像的采集、转换和传输过程中常受到成像设备与外部环境噪声干扰噪声。

小波变换的信号去噪变尺度的特征是有一个“焦点”的能力,当图像信号的能量主要集中在一小部分的小波系数,这些系数的值必须大于大量噪声的小波系数能量色散值。

只要选择合适的阈值,舍入的绝对值小于阈值的小波系数,可达到图像降噪[1]。

一个应用小波变换处理的最成功的图像是图像压缩。

小波变换密切相关的空间像素阵列潜入完全无关的,紧凑的小波系数矩阵的能量分布,大少数图像小波系数代表最重要的能源组成部分,小的小波系数大多数无关紧要的细节分量表示,去除小的系数量化比较有代表性的细节分量,用很少的代码字来形容代表主要的能量成分,大的系数,从而实现高压缩比。

小波图像压缩的研究表明,许多现代应用如多分辨率所需要的功能,多层次的质量控制,以及其他嵌入式码流和小波图像编码结构融合在一起,很自然的,更大的压缩比,小波图像压缩的重建质量的方法优于DCT [2]。

所以,在静态图像压缩标准Jpec2000新生成的小波图像编码算法为核心的使用。

小波信号分析中的应用也很广泛。

它可进行边界处理和波形的过滤、分析时频、信噪分离和检测弱信号,寻找分形指数、识别和诊断信号,多尺度边缘检测[3]。

在工程和其他方面的应用。

包括生物医学方面的研究和计算机图形学、曲线设计和遥远的宇宙[4]。

小波变换。

小波可以应用于机械故障诊断,采集故障信号,利用三维视图和组合分析振动谱谱。

1 小波变换小波变换的定义。

在数学上,小波定义为对给定函数局部化的函数。

小波可由一个定义有限区间函数ψ(x)来构造,ψ(x)称为母小波(mother wavelet )或者称为基本小波。

一组小波基函数,{ψa,b (x)}可通过缩放和平移基本小波ψ(x) 来生成,作者简介:刘文华,中共安徽省委党校,研究方向:信号和图像处理。

基于DSP的2维离散小波变换快速实现

基于DSP的2维离散小波变换快速实现

基于DSP的2维离散小波变换快速实现陈鹏;赵振纲【期刊名称】《科学技术与工程》【年(卷),期】2007(007)020【摘要】小波域的图像处理技术已经广泛应用于各种领域,但2维离散小波变换的实现通常需要耗费大量时间和存储空间,在许多实时环境中,极大地降低了系统的效率和性能.为了充分利用计算资源文中利用数字信号处理器TMS320C6416T双向循环寻址和流水线技术的硬件特性,给出一种高速实现的方案.实验结果表明,卷积模式下的离散小波变换的快速实现能够满足实时处理的要求,并为今后的研究指明了应用前景.%Image processing in wavelet domain has been adopted broad y in various fields. But the implementation of 2-D Discrete Wavelet Transform (2-D DWT) usually consumes lots of time and memory resources, which degrades its efficiency and performance fundamentally in many time critical environments. To make most of the computing resources, hardware support specified for signal processing is introduced. Bidirectional circular addressing and pipelined program structure based on TMS320C6416T DSP were studied. Experimental results demonstrate that the DWT algorithm under convolution mode is capable of satisfying real-time requirements and therefore paves the way for future application.【总页数】5页(P5241-5245)【作者】陈鹏;赵振纲【作者单位】北京邮电大学信息工程学院,北京,100876;北京邮电大学信息工程学院,北京,100876【正文语种】中文【中图分类】TN911.72【相关文献】1.基于圆周卷积的长序列小波变换快速实现 [J], 吕新华;武斌2.冗余离散小波变换立体视差估计及DSP实现 [J], 高韬;刘正光3.基于提升的二维离散小波变换优化算法与DSP实现 [J], 印勇;谭勇4.基于DSP离散小波变换的信号不连续性检测技术 [J], 张学武;刘文正;刘星5.两种离散小波变换算法在DSP上的实现与分析 [J], 王丽荣;王芳荣;申铉国;王延杰因版权原因,仅展示原文概要,查看原文内容请购买。

小波变换代码matlab

小波变换代码matlab

小波变换代码matlab小波变换(Wavelet Transform)是一种对信号进行时频局部分析的数学方法。

它在信号处理、图像处理等领域被广泛应用,能够提供更丰富的信息以描述信号的动态特性,同时具有精度高、计算速度快等优点。

在Matlab中,实现小波变换的方法有很多,例如使用内置函数“cwt”(continuous wavelet transform)或自定义函数等。

下面,我将详细介绍一种常用的小波变换方法的代码实现过程,帮助大家了解小波变换的原理和应用。

首先,我们需要准备一个用于进行小波变换的信号。

假设我们有一个长度为N的信号x,代码如下所示:matlabN = 1024; 信号长度t = linspace(0, 1, N); 时间序列x = sin(2*pi*50*t) + sin(2*pi*120*t); 信号频率为50Hz和120Hz的叠加以上代码生成了一个包含两个频率分量(50Hz和120Hz)的信号x。

接下来,我们使用小波变换函数进行信号的小波分析。

matlabwaveletName = 'db4'; 小波基函数选择Daubechies 4[C, L] = wavedec(x, 5, waveletName); 对信号进行小波分解在上述代码中,我们选择了小波基函数“db4”来进行小波变换,并使用了“wavedec”函数对信号x进行小波分解。

该函数的第一个参数为待分解的信号,第二个参数表示小波分解的层数,第三个参数为小波基函数的名称。

小波分解后的结果包括近似系数C和细节系数D,其中C是近似部分的系数,D是细节部分的系数。

L是一个向量,包含了每个分解层的系数长度。

在上述代码中,我们将信号进行了5层的小波分解,得到了5层的近似系数C和细节系数D。

接下来,我们可以根据需要对小波分解结果进行进一步分析。

例如,我们可以绘制信号的频谱图以观察频率分量的变化。

matlabf = 0:1/(N-1):1; 频率序列power = abs(C).^2; 信号频谱plot(f, power);title('Wavelet Power Spectrum');xlabel('Frequency');ylabel('Power');以上代码计算了信号的频谱,使用“plot”函数将频谱图绘制出来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于提升算法的二维5/3和9/7小波变换的MATLAB仿真与DSP 实现王靖琰,刘蒙中国科学院上海应用物理研究所,上海 (201800)E-mail :wjycas@摘 要:本文讨论了基于提升算法的二维5/3和9/7小波的原理,对算法进行了MATLAB 仿真,并在浮点型DSP TMS320C6713B 上实现了图像的二维5/3、9/7小波提升变换和逆变换。

实验结果证明了方法的有效性。

关键词:小波提升,二维9/7、5/3小波,MATLAB ,TMS320C6713B1.引言随着人们对多媒体信息需求的日益增长,数码相机、移动电话、MP4 等多媒体信息处理系统蓬勃发展。

基于通用DSP 处理器的此类系统设计以灵活性强、扩展性好、可升级和易维护的优点成为系统开发的首选方案 [1]。

由于良好的时频局部特性和多分辨分析特性,小波已广泛应用于图像处理领域,并且被吸收进新的一些国际标准中成为了标准算法。

文中在MATLAB 平台上对基于小波提升的二维离散5/3和9/7小波变换算法进行了仿真,并在浮点型DSP TMS320C6713B 上实现了算法,该程序运算速度快,可充分利用硬件资源,特别适用于嵌入式系统的需求。

2.小波变换提升算法基本原理1994年Sweldens 提出了小波的提升算法,有效地解决传统的基于Mallat 的塔式分解小波变换算法计算量大、对存储空间的要求高的问题,从算法方面提高了小波变换的实现效率[2]。

2.1 5/3小波提升格式小波提升算法的基本思想是通过由基本小波(lazy wavelet)逐步构建出一个具有更加良好性质的新小波,其实现步骤有3个:分解(split)、预测(predict)和更新(update)。

分解是将数据分为偶数序列和奇数序列2个部分,预测是用分解的偶数序列预测奇数序列,得到的预测误差为变换的高频分量,更新是由预测误差来更新偶数序列,得到变换的低频分量。

在J PEG2000中,5/3提升小波变换的算法为[3]:(2)(22)(21)(21)(1)2(21)(21)2(2)(2)(2)4x n x n c n x n c n c n d n x n ++⎡⎤+=+−⎢⎥⎣⎦−+++⎡⎤=+⎢⎥⎣⎦由其正变换的反置即可得到逆变换的算法为 c(2n-1) + c(2n+1)+2x (2n) = d (2n) - (3)4x(2n)+x(2n+2)x(2n+1)=c(2n)+(4)2⎡⎤⎢⎥⎣⎦⎡⎤⎢⎥⎣⎦ 从算式可以得出,提升算法是原位计算,即进行小波变换时在原位计算各个系数,计算的系数可以直接替代原始数据而不需要附加数据存储空间。

2.2 9/7小波提升格式Daubechies 9 /7双正交小波基,具有线性相位,消失矩较大,能量集中性好等特性,在图像处理领域有广泛的应用。

图像经过9 /7小波分解后的低频部分分辨率高,高频部分细节突出,便于后续的图像处理。

图1为在J PEG2000中9 /7小波的提升方案[4]。

图1 9/7小波变提升方案其中α= - 1.586134342,β= -0.0529801186,γ=01882911075,δ= 0.443506852, K = 1.230 174105为各部分提升域的变换算子。

9 /7小波提升格式由四个提升步骤和两个缩放步骤来实现,具体如下:1) 预测1:1c (2n + 1) = x (2n + 1) +[ x (2n) + x (2n + 2) ](5)α2) 更新1: 111d (2n) = x (2n) +[ c (2n - 1) + c (2n + 1) ](6)β3) 预测2: 2111c (2n + 1) = c (2n + 1) +[ d (2n) + d (2n + 2) ](7)γ4) 更新2: 2111d (2n) = d (2n) +[ c (2n - 1) + c (2n + 1) ](8)δ5) 系数缩放1: 32c (2n + 1) = (1 /K) c (2n + 1)(9)•6) 系数缩放2: 32d (2n) = K d (2n)(10)• 与通常的提升方法不同,9 /7小波增加了一个预测和更新环节,可以防止图像重建误差的扩大,提高系统稳定性,同时也保留了原位计算的特性,运算所需内存少,变换速度快。

2.3 二维离散小波变换小波处理图像时需要进行二维离散小波变换。

当采用提升算法时,可以采用两级一维提升算法级联进行,即把图像数据的N×N 矩阵先看作一N 行数组,采用提升算法, 进行行变换,输出的结果仍为N×N 矩阵,再将其看作N 列数组,进行列变换,从而完成二维变换,得到最终变换结果。

Xo(n)c(n)d(n)3.二维9/7、5/3小波提升算法的仿真与实现本文首先用MATLAB语言实现了算法,并针对图像进行了算法的仿真;然后在浮点型DSP芯片TMS320C6713B上用C++实现了算法,并在此平台上进行了图像的二维9/7、5/3小波提升算法的分解与重构实验。

3.1 算法开发平台的选择对于软件仿真,本文选取MATLAB 6.5开发环境。

MATLAB是一种由美国MathWorks 公司出品的商业数学软件,是一种优秀的数值计算环境和编程语言。

对于硬件平台的实现,选择TI公司的TMS320C6000 系列的TMS320C6713B (以下简称C6713B) 芯片。

TMS320C6000 系列DSP 是美国TI 公司于1997年推出的新一代高性能的数字信号处理芯片,具有很高的工作频率和极强的并行处理能力。

片内有A、B两组共8个并行处理单元,每组内分为L 、M 、D 、S 四个单元,每组处理单元结合同侧的寄存器组和数据通道,构成了一个完整的数据处理单元。

C6000 处理器的A、B两个完整的数据处理单元之间可以通过两条数据交叉通路进行数据交叉访问,所以这样的硬件结构非常适合实现数据的并行处理,利于实现数据实时处理。

本文采用以C6000系列的TMS320C6713B芯片为中心的TDS6713EVM开发板,此开发板是闻亭公司最新研制的高速语音信号(采集)处理平台,可作为专用语音信号编解码处理测试平台,也可用于各种对数据精度有特殊要求的浮点数字信号处理场合[5]。

选择CCS 2 ('C6000)作为DSP软件开发环境。

3.2 算法的MATLAB软件仿真本文使用MATLAB实现了二维9/7、5/3小波提升算法,开发了一个二维9/7、5/3小波提升算法仿真系统,其仿真界面如图2所示。

(a)图像小波正变 (b)图像小波逆变图2 9/7二维9/7、5/3小波提升算法的MATLAB仿真界面MATLAB的仿真实现的重点是编写wav_Dwt2d函数:function s=wav_Dwt2d(SourceImage,row,column,J2,w97,scale)此函数实现对SourceImage进行scale级小波分解,s为输出。

参数w97=1时,使用9/7滤波器;w97=0时,使用5/3滤波器。

当使用9/7滤波器时,参数J2=1时,滤波器为JPEG2000中的CDF97小波;J2=0时,滤波器为LS97小波[6]。

在算法中,为了减小误差的积累,将对每次乘积的结果进行取整。

同时,被取整的数将被转换为与它距离最近的整数。

对于边界的处理采用了对称延拓算法[7]。

类似地,编写实现逆变换的wav_iDwt2d函数,这样就实现了仿真系统的功能。

为了评价算法,本文使用MSE和PSNR作为指标[8]。

每次变换再反变换后,计算其MSE和PSNR。

3.3 算法的DSP硬件平台实现实现采用C++语言进行编程,因为C++编译器能有效地对集合代码进行优化。

算法的重点是5/3小波和9/7小波提升方案算法的实现。

对于5/3小波,首先定义了一层分析和重构的函数wavelet_analysis和wavelet_synthesis,然后调用这两个函数来实现一维和二维的多层5/3小波提升方案的函数。

二维多层5/3小波分解提升方案程序流程图如图3所示。

图3 二维多层5/3小波分解提升方案程序流程图定义二维5/3小波提升方案的分解函数如下:int multilevel_decomposition_2D( int * image, int width, int height, int * wavelet_data, intlevels );定义二维5/3小波提升方案的重构函数如下:int multilevel_reconstruction_2D ( int * image, int width, int height, int * wavelet_data, int levels );类似地,对于9/7小波,我们用C++语言分别实现了二维的多层9/7小波提升方案的分解和重构函数如下:void WaveletForward2D(int *data, int height, int width, int level);void WaveletInvert2D(int *data, int height, int width, int level);值得注意的是,DSP平台上实现的5/3、9/7小波提升算法的输入和输出都是整型,这十分有利于直接对图像进行变换。

另外,9/7小波提升算法中将对每次乘积的结果通过floor 函数进行取整,从而实现了整型到整型的无失真变换。

DSP上只实现了CDF97小波。

在CCS 2 ('C6000)编译环境下编程,程序编译优化后,加载到DSP工作平台上。

由于本算法使用的存储空间较多,程序中大量使用了堆空间,默认的存储分配方式无法满足要求,所以重新编写cmd文件分配堆栈空间大小如下:-stack0xf00-heap 0x200004.实验及结果分析图4是CDF9/7小波提升方案对128×128lena图像进行2层分解和重构的MATLAB仿真结果图。

(a)原始图像 (b)分解图像 (c)重构图像图4 128×128lena图像CDF9/7小波提升方案2层分解和重构MATLAB仿真结果图计算变换与逆变换的MSE为0,PSNR为INF,即无穷大,表示MATLAB的算法能实现精确重构。

图5为CCS 2 ('C6000)环境下分别用5/3、9/7小波提升方案算法对80×80图像进行分解和重构的结果图。

(a)原图像(b) 5/3提升小波分解图像 (c) 5/3提升小波重构图像(d) 9/7提升小波分解图像(e)9/7提升小波重构图像图5 DSP上80×80图像5/3、9/7小波提升方案1层分解和重构结果图从实验结果图像我们可以看出,本文的程序正确地实现了二维5/3小波和9/7小波的提升方案。

相关文档
最新文档