matlab小波变换程序PC版

matlab小波变换程序PC版

  • 游戏类型:编程控件
  • 游戏语言:简体中文
  • 发售日期:1732324320
  • 更新时间:2024-11-23
  • 发行公司:
  • 游戏平台:windows
游戏介绍

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','l');%db10(消失矩为10)低通分解滤波器冲击响应(长度为20)L=T-length(l);l_zeros=[l,zeros(1,L)];%矩阵行数与输入图像一致,为2的整数幂h=wfilters('db10','h');%db10(消失矩为10)高通分解滤波器冲击响应(长度为20)h_zeros=[h,zeros(1,L)];%矩阵行数与输入图像一致,为2的整数幂for i=1:T; %列变换row(1:SUB_T,i)=dyaddown( ifft( fft(l_zeros).*fft(f(:,i)') ) ).';%圆周卷积<->FFTrow(SUB_T+1:T,i)=dyaddown( ifft( fft(h_zeros).*fft(f(:,i)') ) ).';%圆周卷积<->FFTend;for j=1:T; %行变换line(j,1:SUB_T)=dyaddown( ifft( fft(l_zeros).*fft(row(j,:)) ) );%圆周卷积<->FFTline(j,SUB_T+1:T)=dyaddown( ifft( fft(h_zeros).*fft(row(j,:)) ) );%圆周卷积<->FFTend;decompose_pic=line;%分解矩阵%图像分为四块lt_pic=decompose_pic(1:SUB_T,1:SUB_T);%在矩阵左上方为低频分量--fi(x)*fi(y)rt_pic=decompose_pic(1:SUB_T,SUB_T+1:T);%矩阵右上为--fi(x)*psi(y)lb_pic=decompose_pic(SUB_T+1:T,1:SUB_T);%矩阵左下为--psi(x)*fi(y)rb_pic=decompose_pic(SUB_T+1:T,SUB_T+1:T);%右下方为高频分量--psi(x)*psi(y)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3.分解结果显示figure(1);colormap(map);subplot(2,1,1);image(f);%原始图像title('original pic');subplot(2,1,2);image(abs(decompose_pic));%分解后图像title('decomposed pic');figure(2);colormap(map);subplot(2,2,1);image(abs(lt_pic));%左上方为低频分量--fi(x)*fi(y)title('Phi(x)*Phi(y)');subplot(2,2,2);image(abs(rt_pic));%矩阵右上为--fi(x)*psi(y)title('Phi(x)*Psi(y)');subplot(2,2,3);image(abs(lb_pic));%矩阵左下为--psi(x)*fi(y)title('Psi(x)*Phi(y)');subplot(2,2,4);image(abs(rb_pic));%右下方为高频分量--psi(x)*psi(y)title('Psi(x)*Psi(y)');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5.重构源图像及结果显示% construct_pic=decompose_matrix'*decompose_pic*decompose_matrix;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%l_re=l_zeros(end:-1:1); %重构低通滤波l_r=circshift(l_re',1)';%位置调整h_re=h_zeros(end:-1:1); %重构高通滤波h_r=circshift(h_re',1)';%位置调整%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%top_pic=[lt_pic,rt_pic];%图像上半部分t=0;for i=1:T;%行插值低频if (mod(i,2)==0)topll(i,:)=top_pic(t,:); %偶数行保持elset=t+1;topll(i,:)=zeros(1,T); %奇数行为零endend;for i=1:T;%列变换topcl_re(:,i)=ifft( fft(l_r).*fft(topll(:,i)') )';%圆周卷积<->FFTend;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bottom_pic=[lb_pic,rb_pic];%图像下半部分t=0;for i=1:T;%行插值高频if (mod(i,2)==0)bottomlh(i,:)=bottom_pic(t,:);%偶数行保持elsebottomlh(i,:)=zeros(1,T); %奇数行为零t=t+1;endend;for i=1:T; %列变换bottomch_re(:,i)=ifft( fft(h_r).*fft(bottomlh(:,i)') )';%圆周卷积<->FFTend;construct1=bottomch_re+topcl_re;%列变换重构完毕%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%left_pic=construct1(:,1:SUB_T); %图像左半部分t=0;for i=1:T;%列插值低频if (mod(i,2)==0)leftll(:,i)=left_pic(:,t); %偶数列保持elset=t+1;leftll(:,i)=zeros(T,1);%奇数列为零endend;for i=1:T;%行变换leftcl_re(i,:)=ifft( fft(l_r).*fft(leftll(i,:)) );%圆周卷积<->FFTend;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%right_pic=construct1(:,SUB_T+1:T);%图像右半部分t=0;for i=1:T;%列插值高频if (mod(i,2)==0)rightlh(:,i)=right_pic(:,t);%偶数列保持elserightlh(:,i)=zeros(T,1);%奇数列为零t=t+1;endend;for i=1:T; %行变换rightch_re(i,:)=ifft( fft(h_r).*fft(rightlh(i,:)) );%圆周卷积<->FFTend;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%construct_pic=rightch_re+leftcl_re;%重建全部图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%结果显示figure(3);colormap(map);subplot(2,1,1);image(f);%源图像显示title('original pic');subplot(2,1,2);image(abs(construct_pic)); %重构源图像显示title('reconstructed pic');error=abs(construct_pic-f);%重构图形与原始图像误值figure(4);mesh(error);%误差三维图像title('absolute error display');clearclc%在噪声环境下语音信号的增强%语音信号为读入的声音文件%噪声为正态随机噪声sound=wavread('c12345.wav');count1=length(sound);noise=0.05*randn(1,count1);for i=1:count1signal(i)=sound(i);endfor i=1:count1y(i)=signal(i)+noise(i);end%在小波基'db3'下进行一维离散小波变换[coefs1,coefs2]=dwt(y,'db3'); %[低频 高频]count2=length(coefs1);count3=length(coefs2);energy1=sum((abs(coefs1)).^2);energy2=sum((abs(coefs2)).^2);energy3=energy1+energy2;for i=1:count2recoefs1(i)=coefs1(i)/energy3;endfor i=1:count3recoefs2(i)=coefs2(i)/energy3;end%低频系数进行语音信号清浊音的判别zhen=160;count4=fix(count2/zhen);for i=1:count4n=160*(i-1)+1:160+160*(i-1);s=sound(n);w=hamming(160);sw=s.*w;a=aryule(sw,10);sw=filter(a,1,sw);sw=sw/sum(sw);r=xcorr(sw,'biased');corr=max(r);%为清音(unvoice)时,输出为1;为浊音(voice)时,输出为0if corr>=0.8output1(i)=0;elseif corr<=0.1output1(i)=1;endendfor i=1:count4n=160*(i-1)+1:160+160*(i-1);if output1(i)==1switch abs(recoefs1(i))case abs(recoefs1(i))<=0.002recoefs1(i)=0;case abs(recoefs1(i))>0.002 & abs(recoefs1(i))<=0.003recoefs1(i)=sgn(recoefs1(i))*(0.003*abs(recoefs1(i))-0.000003)/0.002;otherwise recoefs1(i)=recoefs1(i);endelseif output1(i)==0recoefs1(i)=recoefs1(i);endend%对高频系数进行语音信号清浊音的判别count5=fix(count3/zhen);for i=1:count5n=160*(i-1)+1:160+160*(i-1);s=sound(n);w=hamming(160);sw=s.*w;a=aryule(sw,10);sw=filter(a,1,sw);sw=sw/sum(sw);r=xcorr(sw,'biased');corr=max(r);%为清音(unvoice)时,输出为1;为浊音(voice)时,输出为0if corr>=0.8output2(i)=0;elseif corr<=0.1output2(i)=1;endendfor i=1:count5n=160*(i-1)+1:160+160*(i-1);if output2(i)==1switch abs(recoefs2(i))case abs(recoefs2(i))<=0.002recoefs2(i)=0;case abs(recoefs2(i))>0.002 & abs(recoefs2(i))<=0.003recoefs2(i)=sgn(recoefs2(i))*(0.003*abs(recoefs2(i))-0.000003)/0.002;otherwise recoefs2(i)=recoefs2(i);endelseif output2(i)==0recoefs2(i)=recoefs2(i);endend%在小波基'db3'下进行一维离散小波反变换 output3=idwt(recoefs1, recoefs2,'db3');%对输出信号抽样点值进行归一化处理maxdata=max(output3);output4=output3/maxdata;%读出带噪语音信号,存为'101.wav'wavwrite(y,5500,16,'c101'); %读出处理后语音信号,存为'102.wav'wavwrite(output4,5500,16,'c102');function [I_W , S] = func_DWT(I, level, Lo_D, Hi_D);%通过这个函数将I进行小波分解,并将分解后的一维向量转换为矩阵形式% Matlab implementation of SPIHT (without Arithmatic coding stage)% 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(I,level,Lo_D,Hi_D); S(:,3) = S(:,1).*S(:,2);% dim of detail coef nmatrices 求低频和每个尺度中高频的元素个数%st=S(1,3)+S(2,3)*3+S(3,3)*3;%%%%对前两层加密%C(1:st)=0;L = length(S); %a求S的列数I_W = zeros(S(L,1),S(L,2));%设一个与原图像大小相同的全零矩阵% approx partI_W( 1:S(1,1) , 1:S(1,2) ) = reshape(C(1:S(1,3)),S(1,1:2)); %将LL层从C中还原为S(1,1)*S(1,2)的矩阵for k = 2 : L-1 %将C向量中还原出HL,HH,LH 矩阵rows = [sum(S(1:k-1,1))+1:sum(S(1:k,1))];columns = [sum(S(1:k-1,2))+1:sum(S(1:k,2))];% horizontal partc_start = S(1,3) + 3*sum(S(2:k-1,3)) + 1;c_stop = S(1,3) + 3*sum(S(2:k-1,3)) + S(k,3);I_W( 1:S(k,1) , columns ) = reshape( C(c_start:c_stop) , S(k,1:2) );% vertical partc_start = S(1,3) + 3*sum(S(2:k-1,3)) + S(k,3) + 1;c_stop = S(1,3) + 3*sum(S(2:k-1,3)) + 2*S(k,3);I_W( rows , 1:S(k,2) ) = reshape( C(c_start:c_stop) , S(k,1:2) );% diagonal partc_start = S(1,3) + 3*sum(S(2:k-1,3)) + 2*S(k,3) + 1;c_stop = S(1,3) + 3*sum(S(2:k,3));I_W( rows , columns ) = reshape( C(c_start:c_stop) , S(k,1:2) );end %%%%%%%mallat algorithm%%%%% clc; clear;tic; %%%%original signal%%%% f=100;%%frequence ts=1/800;%%抽样间隔 N=1:100;%%点数 s=sin(2*ts*pi*f.*N);%%源信号 figure(1) plot(s);%%%源信号s title('原信号'); grid on; %%%%小波滤波器%%%% ld=wfilters('db1','l');%%低通 hd=wfilters('db1','h');%%高通 figure(2) stem(ld,'r');%%%低通 grid on; figure(3) stem(hd,'b')%%%高通 grid on; %%%%% tem=conv(s,ld);%%低通和原信号卷积 ca1=dyaddown(tem);%%抽样 figure(4) plot(ca1); grid on; tem=conv(s,hd);%%高通和原信号卷积 cb1=dyaddown(tem);%%抽样 figure(5) plot(cb1); grid on; %%%%%%%% %[ca3,cb3]=dwt(s,'db1');%%小波变换 %%%%%%%% [lr,hr]=wfilters('db1','r');%%重构滤波器 figure(6) stem(lr); figure(7) stem(hr); tem=dyadup(cb1);%%插值 tem=conv(tem,hr);%%卷积 d1=wkeep(tem,100);%%去掉两头的分量 %%%%%%%%% tem=dyadup(ca1);%%插值 tem=conv(tem,lr);%%卷积 a1=wkeep(tem,100);%%去掉两头的分量 a=a1+d1;%%%重构原信号 %%%%%%%%% %a3=idwt(ca3,cb3,'db1',100);%%%小波逆变换 %%%%%%%%% figure(8) plot(a,'.b'); hold on; plot(s,'r'); grid on; title('重构信号和原信号的比较');toc; %figure(9) %plot(a3,'.b'); %hold on; %plot(s,'r'); %grid on; %title('重构信号和原信号的比较');通用函数

Allnodes 计算树结点appcoef 提取一维小波变换低频系数appcoef2 提取二维小波分解低频系数bestlevt 计算完整最佳小波包树besttree 计算最佳(优)树*  biorfilt 双正交样条小波滤波器组biorwavf 双正交样条小波滤波器*  centfrq 求小波中心频率cgauwavf Complex Gaussian小波cmorwavf coiflets小波滤波器cwt 一维连续小波变换dbaux Daubechies小波滤波器计算dbwavf Daubechies小波滤波器 dbwavf(W)W='dbN' N=1,2,3,...,50ddencmp 获取默认值阈值(软或硬)熵标准depo2ind 将深度-位置结点形式转化成索引结点形式detcoef 提取一维小波变换高频系数detcoef2 提取二维小波分解高频系数disp 显示文本或矩阵drawtree 画小波包分解树(GUI)dtree 构造DTREE类dwt 单尺度一维离散小波变换dwt2 单尺度二维离散小波变换dwtmode 离散小波变换拓展模式*  dyaddown 二元取样*  dyadup 二元插值entrupd 更新小波包的熵值fbspwavf B样条小波gauswavf Gaussian小波get 获取对象属性值idwt 单尺度一维离散小波逆变换idwt2 单尺度二维离散小波逆变换ind2depo 将索引结点形式转化成深度—位置结点形式*  intwave 积分小波数isnode 判断结点是否存在 istnode 判断结点是否是终结点并返回排列值iswt 一维逆SWT(Stationary Wavelet Transform)变换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(Stationary Wavelet Transform)变换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 管理树结构

相关专题

Matlab软件专区

Matlab软件专区7款

matlab画图专题,为您提供matlab画图颜色、matlab画图标注、matlab画图命令等内容。更多matlab画图内容,请到matlab画图专题!...

Matlab2020b

更新日期:

Matlab

更新日期:

Matlab2016b

更新日期:

MATLAB

更新日期:

MATLAB 2009a

更新日期:

MATLAB R14(7.0)

更新日期:

matlab小波变换程序

更新日期:

下载地址分享软件/应用 若有违法违规、资源包错误等问题向我们反馈

使用WindSoul软件管家下载地址:安全,快速

电信安全下载网通安全下载移动安全下载联通安全下载

其他下载地址:

通用网络下载通用网络下载

部分文件为zip、rar等压缩格式,请下载360压缩进行压缩!

常见问题

鲁大师怎样备份驱动?-鲁大师备份驱动的方法鲁大师怎么进行AI评测?-鲁大师进行AI评测的方法百度输入法怎么锁定-百度输入法锁定的方法百度输入法怎么关联到百度账号-百度输入法关联到百度账号的方法腾讯视频怎么让视频连续播放?-腾讯视频让视频连续播放的方法360安全卫士怎么退出登录?-360安全卫士退出登录的方法360安全卫士怎么测试电脑评分?-360安全卫士测试电脑评分的方法360安全卫士怎么添加信任文件?-360安全卫士添加信任文件的方法360安全卫士怎么关闭防火墙?-360安全卫士关闭防火墙的方法腾讯视频怎么设置视频色彩?-腾讯视频设置视频色彩教程

网友评论

您的评论需要经过审核才能显示

全部评论华军网友matlab小波变换程序很好用,谢谢啦!!

有用

华军网友matlab小波变换程序界面设计很容易上手,功能很丰富,本人极力推荐!

有用

华军网友matlab小波变换程序软件非常好用,下载速度很快,很方便!

有用

matlab小波变换程序

收录说明

以上资源由网友自行上传分享,游戏资源均为绿色、安全、无毒,建议用户在下载前先查看配置要求等信息,游戏运行安装中如若出现缺少dll等问题请下载相应的游戏插件,感谢各位网友对本站的支持!

郑重声明

本网站本身戏资源下载,不存储资源下载,仅作为用户间分享讨论之用,游戏版权问题均与多特游戏无关,若有侵权之处请及时联系我们以便尽快处理。

相关攻略更多+
游戏其它版本库更多+
下载排行榜
1易达销售单打印软件
2WPS Office
3向日葵远程控制for windows
4B站哔哩哔哩动画
5Moon月球
6三国群英传-霸王之业
7DeepSeek Math
8Logo生成器
9GameBuff修改器
10