谷普下载站-绿色软件_谷普绿色软件_最好的免费绿色软件下载网站
TAG标签| 网站地图| 设为首页| 加入收藏
当前位置:谷普下载站 > 软件下载 > 编程开发 > 编程软件 >

matlab小波变换程序

类型:编程软件

语言:中文

更新:2024-09-14 19:56

大小:471KB

版本:

平台:WinAll, WinXP

标签:matlab

  • 软件介绍
  • 软件截图
  • 相关下载

matlab小波变换程序是关于信号处置中的小波变换剖析,用matlab命令达成的

MATLAB2维小波变换经典程序

%FWT_DB.M;

%此示意程序用DWT达成二维小波变换

%编程时间2004-4-10,编程人沙威

%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear;clc;

T=256; %图像维数

SUB_T=T/2; %子图维数

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%1.调原始图像矩阵

load wbarb;%下载图像

f=X; %原始图像

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%2.进行二维小波分解

l=wfilters;%db10(消失矩为10)低通分解滤波器冲击响应(长度为20)

L=T-length;

l_zeros=[l,zeros];%矩阵行数与输入图像一致,为2的整数幂

h=wfilters;%db10(消失矩为10)高通分解滤波器冲击响应(长度为20)

h_zeros=[h,zeros];%矩阵行数与输入图像一致,为2的整数幂

for i=1:T; %列变换

row=dyaddown.*fft') ) ).';%圆周卷积-FFT

row=dyaddown.*fft') ) ).';%圆周卷积-FFT

end;

for j=1:T; %行变换

line=dyaddown.*fft) ) );%圆周卷积-FFT

line=dyaddown.*fft) ) );%圆周卷积-FFT

end;

decompose_pic=line;%分解矩阵

%图像分为四块

lt_pic=decompose_pic;%在矩阵左上方为低频分量--fi*fi

rt_pic=decompose_pic;%矩阵右上为--fi*psi

lb_pic=decompose_pic;%矩阵左下为--psi*fi

rb_pic=decompose_pic;%右下方为高频分量--psi*psi

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%3.分解结果显示

figure;

colormap;

subplot;

image;%原始图像

title;

subplot;

image);%分解后图像

title;

figure;

colormap;

subplot;

image);%左上方为低频分量--fi*fi

title*Phi');

subplot;

image);%矩阵右上为--fi*psi

title*Psi');

subplot;

image);%矩阵左下为--psi*fi

title*Phi');

subplot;

image);%右下方为高频分量--psi*psi

title*Psi');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%5.重构源图像及结果显示

% construct_pic=decompose_matrix'*decompose_pic*decompose_matrix;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

l_re=l_zeros; %重构低通滤波

l_r=circshift';%地方调整

h_re=h_zeros; %重构高通滤波

h_r=circshift';%地方调整

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

TOP_pic=[lt_pic,rt_pic];%图像上半部分

t=0;

for i=1:T;%行插值低频

if ==0)

TOPll=TOP_pic; %偶数行维持

else

t=t+1;

TOPll=zeros; %奇数行为零

end

end;

for i=1:T;%列变换

TOPcl_re=ifft.*fft') )';%圆周卷积-FFT

end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

bottom_pic=[lb_pic,rb_pic];%图像下半部分

t=0;

for i=1:T;%行插值高频

if ==0)

bottomlh=bottom_pic;%偶数行维持

else

bottomlh=zeros; %奇数行为零

t=t+1;

end

end;

for i=1:T; %列变换

bottomch_re=ifft.*fft') )';%圆周卷积-FFT

end;

construct1=bottomch_re+TOPcl_re;%列变换重构完毕

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

left_pic=construct1; %图像左半部分

t=0;

for i=1:T;%列插值低频

if ==0)

leftll=left_pic; %偶数列维持

else

t=t+1;

leftll=zeros;%奇数列为零

end

end;

for i=1:T;%行变换

leftcl_re=ifft.*fft) );%圆周卷积-FFT

end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

right_pic=construct1;%图像右半部分t=0;

for i=1:T;%列插值高频

if ==0)

rightlh=right_pic;%偶数列维持

else

rightlh=zeros;%奇数列为零

t=t+1;

end

end;

for i=1:T; %行变换

rightch_re=ifft.*fft) );%圆周卷积-FFT

end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

construct_pic=rightch_re+leftcl_re;%重建全部图像

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%结果显示

figure;

colormap;

subplot;

image;%源图像显示

title;

subplot;

image); %重构源图像显示

title;

error=abs;%重构图形与原始图像误值

figure;

mesh;%误差三维图像

title;

clear

clc

%在噪声环境下语音信号的增强

%语音信号为读入的声音文件

%噪声为正态随机噪声

sound=wavread;

count1=length;

noise=0.05*randn;

for i=1:count1

signal=sound;

end

for i=1:count1

y=signal+noise;

end

%在小波基'db3'下进行一维离散小波变换

[coefs1,coefs2]=dwt; %[低频 高频]count2=length;

count3=length;

energy1=sum).^2);

energy2=sum).^2);

energy3=energy1+energy2;

for i=1:count2

recoefs1=coefs1/energy3;

end

for i=1:count3

recoefs2=coefs2/energy3;

end%低频系数进行语音信号清浊音的辨别

zhen=160;

count4=fix;

for i=1:count4

n=160*+1:160+160*;

s=sound;

w=hamming;

sw=s.*w;

a=aryule;

sw=filter;

sw=sw/sum;

r=xcorr;

corr=max;

%为清音(unvoice)时,输出为1;为浊音(voice)时,输出为0

if corr=0.8

output1=0;

elseif corr=0.1

output1=1;

end

end

for i=1:count4

n=160*+1:160+160*;

if output1==1

switch abs)

case abs)=0.002

recoefs1=0;

case abs)0.002 abs)=0.003

recoefs1=sgn)*)-0.000003)/0.002;

otherwise recoefs1=recoefs1;

end

elseif output1==0

recoefs1=recoefs1;

end

end

%对高频系数进行语音信号清浊音的辨别

count5=fix;

for i=1:count5

n=160*+1:160+160*;

s=sound;

w=hamming;

sw=s.*w;

a=aryule;

sw=filter;

sw=sw/sum;

r=xcorr;

corr=max;

%为清音(unvoice)时,输出为1;为浊音(voice)时,输出为0

if corr=0.8

output2=0;

elseif corr=0.1

output2=1;

end

end

for i=1:count5

n=160*+1:160+160*;

if output2==1

switch abs)

case abs)=0.002

recoefs2=0;

case abs)0.002 abs)=0.003

recoefs2=sgn)*)-0.000003)/0.002;

otherwise recoefs2=recoefs2;

end

elseif output2==0

recoefs2=recoefs2;

end

end

%在小波基'db3'下进行一维离散小波反变换

output3=idwt;

%对输出信号抽样点值进行归一化处置

maxdata=max;

output4=output3/maxdata;

%读出带噪语音信号,存为'101.wav'

wavwrite;

%读出处置后语音信号,存为'102.wav'

wavwrite; function [I_W , S] = func_DWT;

%通过这个函数将I进行小波分解,并将分解后的一维向量转换为矩阵形式

% Matlab implementation of SPIHT

% Wavelet decomposition

% input:I : input image

% level : wavelet decomposition level

% Lo_D : low-pass decomposition filter

% Hi_D : high-pass decomposition filter

% output: I_W : decomposed image vector

% S : corresponding bookkeeping matrix

% please refer wavedec2 function to see more

[C,S] = func_Mywavedec2;

S = S.*S;% dim of detail coef nmatrices 求低频和每一个尺度中高频的元素个数

%st=S+S*3+S*3;%%%%对前两层加密

%C=0;

L = length; %a求S的列数

I_W = zeros,S);%设一个与原图像大小相同的全零矩阵

% approx part

I_W , 1:S ) = reshape),S); %将LL层从C中还原为S*S的矩阵for k = 2 : L-1 %将C向量中还原出HL,HH,LH 矩阵

rows = [sum)+1:sum)];

columns = [sum)+1:sum)];

% horizontal part

c_start = S + 3*sum) + 1;

c_sTOP = S + 3*sum) + S;

I_W , columns ) = reshape , S );% vertical part

c_start = S + 3*sum) + S + 1;

c_sTOP = S + 3*sum) + 2*S;

I_W ) = reshape , S );

% diagonal part

c_start = S + 3*sum) + 2*S + 1;

c_sTOP = S + 3*sum);

I_W = reshape , S );end %%%%%%%mallat algorithm%%%%% clc; clear;tic; %%%%original signal%%%% f=100;%%frequence ts=1/800;%%抽样间隔 N=1:100;%%点数 s=sin;%%源信号 figure plot;%%%源信号s title; grid on; %%%%小波滤波器%%%% ld=wfilters;%%低通 hd=wfilters;%%高通 figure stem;%%%低通 grid on; figure stem%%%高通 grid on; %%%%% tem=conv;%%低通和原信号卷积 ca1=dyaddown;%%抽样 figure plot; grid on; tem=conv;%%高通和原信号卷积 cb1=dyaddown;%%抽样 figure plot; grid on; %%%%%%%% %[ca3,cb3]=dwt;%%小波变换 %%%%%%%% [lr,hr]=wfilters;%%重构滤波器 figure stem; figure stem; tem=dyadup;%%插值 tem=conv;%%卷积 d1=wkeep;%%去掉两头的分量 %%%%%%%%% tem=dyadup;%%插值 tem=conv;%%卷积 a1=wkeep;%%去掉两头的分量 a=a1+d1;%%%重构原信号 %%%%%%%%% %a3=idwt;%%%小波逆变换 %%%%%%%%% figure plot; hold on; plot; grid on; title;toc; %figure %plot; %hold on; %plot; %grid on; %title;

通用函数

 Allnodes 计算树结点appcoef 提取一维小波变换低频系数appcoef2 提取二维小波分解低频系数bestlevt 计算完整最好小波包树besttree 计算最好树* biorfilt 双正交样条小波滤波器组biorwavf 双正交样条小波滤波器* centfrq 求小波中心频率cgauwavf Complex Gaussian小波cmorwavf coiflets小波滤波器cwt 一维连续小波变换dbaux Daubechies小波滤波器计算dbwavf Daubechies小波滤波器 dbwavfW='dbN' N=1,2,3,...,50ddencmp 获得默认值阈值熵标准depo2ind 将深度-地方结点形式转化成索引结点形式detcoef 提取一维小波变换高频系数detcoef2 提取二维小波分解高频系数disp 显示文本或矩阵drawtree 画小波包分解树dtree 架构DTREE类dwt 单尺度一维离散小波变换dwt2 单尺度二维离散小波变换dwtmode 离散小波变换拓展模式* dyaddown 二元取样* dyadup 二元插值entrupd 更新小波包的熵值fbspwavf B样条小波gauswavf Gaussian小波get 获得对象属性值idwt 单尺度一维离散小波逆变换idwt2 单尺度二维离散小波逆变换ind2depo 将索引结点形式转化成深度—地方结点形式* intwave 积分小波数isnode 判断结点是不是存在 istnode 判断结点是不是是终结点并返回排列值iswt 一维逆SWT变换iswt2 二维逆SWT变换leaves  Determine terminal nodesmexihat 墨西哥帽小波meyer Meyer小波meyeraux Meyer小波辅助函数morlet Morlet小波nodease 计算上溯结点nodedesc 计算下溯结点nodejoin 重组结点nodepar 探寻父结点nodesplt 分割结点noleaves  Determine nonterminal nodesntnode  Number of terminal nodesntree  Constructor for the class NTREE * orthfilt 正交小波滤波器组plot 绘制向量或矩阵的图形* qmf 镜像二次滤波器rbiowavf  Reverse biorthogonal spline wavelet filtersread 读取二进制数据readtree 读取小波包分解树* scal2frq  Scale to frequencyset  shanwavf  Shannon waveletsswt 一维SWT变换swt2 二维SWT变换symaux  Symlet wavelet filter computation.symwavf Symlets小波滤波器thselect 信号消噪的阈值选择thodes  Referencestreedpth 求树的深度treeord 求树结构的叉数 upcoef 一维小波分解系数的直接重构upcoef2 二维小波分解系数的直接重构upwlev 单尺度一维小波分解的重构upwlev2 单尺度二维小波分解的重构wavedec 单尺度一维小波分解wavedec2 多尺度二维小波分解wavedemo 小波工具箱函数demo*wavefun 小波函数和尺度函数* wavefun2 二维小波函数和尺度函数wavemenu 小波工具箱函数menu图形界面调用函数* wavemngr 小波管理函数waverec 多尺度一维小波重构waverec2 多尺度二维小波重构wbmpen  Penalized threshold for wavelet 1-D or 2-D de-noisingwcodemat 对矩阵进行量化编码wdcbm  Thresholds for wavelet 1-D using Birge-Massart strategywdcbm2 Thresholds for wavelet 2-D using Birge-Massart strategy wden 用小波进行一维信号的消噪或压缩wdencmp De-noising or compression using wavelets wentropy 计算小波包的熵wextend Extend a vector or a matrix * wfilters 小波滤波器wkeep 提取向量或矩阵中的一部分* wmaxlev 计算小波分解的最大尺度wnoise 产生含噪声的测试函数数据wnoisest 估计一维小波的系数的规范偏差wp2wtree 从小波包树中提取小波树 wpcoef 计算小波包系数wpcutree 剪切小波包分解树wpdec 一维小波包的分解wpdec2 二维小波包的分解wpdencmp 用小波包进行信号的消噪或压缩wpfun 小波包函数wpjoin 重组小波包 wprcoef 小波包分解系数的重构wprec 一维小波包分解的重构wprec2 二维小波包分解的重构wpsplt 分割(分解)小波包wpthcoef 进行小波包分解系数的阈值处置wptree  显示小波包树结构wpviewcf  Plot the colored wavelet packet coefficients. wrcoef 对一维小波系数进行单支重构wrcoef2 对二维小波系数进行单支重构wrev 向量逆序write 向缓冲区内存写进数据wtbo  Constructor for the class WTBO wthcoef 一维信号的小波系数阈值处置wthcoef2 二维信号的小波系数阈值处置wthresh 进行软阈值或硬阈值处置wthrmngr 阈值设置管理wtreemgr 管理树结构

TAG标签:matlab(1)

转载请说明来源于谷普下载站(https://www.muerya.com)

本文地址:https://www.muerya.com/soft/953.html

郑重声明:文章来源于网络作为参考,本站仅用于分享不存储任何下载资源,如果网站中图片和文字侵犯了您的版权,请联系我们处理!邮箱3450399331@qq.com