导航:首页 > 编程语言 > matlab小波能量程序

matlab小波能量程序

发布时间:2023-05-17 03:01:09

① Matlab中小波包分解程序代码不会,小波包能量分析,好的回答疯狂加分!!跪求呀!!

T=wpdec(y,5,'db40');
%对信号y进行小波包分解,层数为5,得到的T为小波树,plot一下就可看到
a10=wprcoef(T,[1,0]);
%a10是对节点[1,0]进行重构后得到的信号。貌似没有对那一层重构这一说法吧,只能是对某层的某个节点进行重构。节点的编号你可以从小波树中看出来

这是我的做法,不过用的是小波包分解。不知对你有没有用

② matlab小波包程序

t = wpdec(x,3,'db1','shannon');改为T = wpdec(x,3,'db1','shannon');

plot(t)改为plot(T);

rcfs = wprcoef(t,[2 1]);改为rcfs = wprcoef(T,[2 1]);

变量名除非用于递归,不要前后重复使用。后面的t只是部分覆盖了开头的内t所以会出现问题。容
希望对你能有所帮助。

③ 小波变换的matlab程序: wavename='cmor5-2';

使用MATLAB设计小波变换程序中的若干问题3[转贴]使用MATLAB设计小波变换程序中的若干问题仍需探讨的问题:为什么使用PNG存储经小波变换后的重构图像变大?我曾在清华大学的多媒体课程的教师答疑中写了“老师:尊重事实:DB9阈值10的PNG文件就是比原文件大”和“续一:尊重事实:DB9阈值10的PNG文件就是比原文件大”,在林老师的鼓励和指导下,我进行了继续试验、分析,与刘赵璧(Anna)同学进行了探讨,并得到了Lily(姓名还不知道)同学的帮助,同时同学们也做了各自不同的实验,现在的实验结果可以说基本上比较明确,那就是有些图像就是会变大,这与图像的种类、纹理等密切相关。林老师曾经鼓励我去研究一下PNG的压缩方法,无奈我资质不够,至今在这方面的进展不大。由于临近期末考试,作业也要抓紧,所以我暂且将没有搞明白的内容搁置,待寒假期间再进行,希望对这些问题有各种看法也有兴趣研究的同学对此发表意见。以下是我最近试验、分析和阅读到的一些相关信息。试验结果我首先根据老师第三章的Haar矩阵算法推演出DB9的系数矩阵,并实现了分解重构及阈值处理程序,对几种照片进行了比较,然后使用3.1节的simplecmp进行了相同照片的实验,结果相当一致。细小差别是因为我的程序对边界的扩展与MATLAB不一样,在设置阈值后引起了边界上小部分不一致造成的。表一:真彩色图像百合花的处理结果阈值PngHaar(Mat/Mine)0数Haat(Mat/Mine)PNGDb9(MAT/Mine)0数Db9(MAT/Mine)95973/95973095973/9597327524/2426895973/9597327/9574552/74292135838/136063101882/101992167412/1656621051976/51504163423/16374198411/98861199200/1957302032474/32346180167/18026792295/93660220629/217214从对比表中我们能够看到2个程序的结果相当一致,因此,我不再给出两种程序的对比,而是使用simplecmp直接处理的结果说明。将百合花图像使用[I,map]=rgb2ind(x,255);转换成为彩色图像处理,在将伪彩色图像转换为连续变换的灰度图像(如2.4常见问题中讨论的方法)进行处理:表二:百合花的伪彩色图像和处理后的灰度(gray)图像的处理结果阈值PngHaar(Index/Gray)0数Haar(Index/Gray)PNDb9(Index/Gray)0数Db9(Index/Gray)48535/43235048535/432356096/743048535/4323518/22553207/364509473/4362660362/499277009/528521058025/2360213362/5434464916/4781313202/658812060193/1434721948/6003966020/4601424468/73494其他伪彩色与进行加工的灰度图的结果与此完全一致,这也就说明了如果伪彩色文件的色板不是单调性递增就不适合小波分解。“essfromdarktolight..”。我对Facets进行同样的实验,结果与此一致。这种处理的结果可以从图像象素值的连续性来理解。这是处理与不处理的图像的中间一行的数据图。另外,不连续的图像质量在压缩后会被极大地破坏图2伪彩色文件变化前后的第128行数据的连续性情况对比分析多种试验图片基本能够反映类似的结果,虽然IndexedColorimage有时令Haar小波的分解重构图像出现增大现象,单经过处理之后,这种现象就会消失。然而对于DB9可以看到无论真彩色还是处理后的灰度图像都在阈值510处超过原始图像的大小,能不能因此得出DB9不适合进行图像压缩的结论呢?有一些同学确实这样认为,但我认为这种观点因为忽略了如何利用小波进行压缩和还原的过程,这也正是第四章老师为我们讲述的那些编码算法而造成的。在推荐材料[1]中也有类似的说明。图3、JPEG2000的基本结构看一下上图就可以明白为什么PNG不能衡量小波压缩的效率问题。上图的图像原始数据首先经过正变换(ForwardTransform)就是小波变换的得到小波系数,变换的小波系数经过阈值处理后进行量化,编码后得到压缩的图像文件JPEG2000,如果你没有JPEG2000的显示程序,那么你就不能看到它。它的显示程序就是由解码器从压缩数据中解出编码,进行反量化,得到小波系数,再实施逆变换(InverseTransform)就是小波系数重构。最终得到图像的原始数据。因此衡量小波变换的效率是应该看你选择的小波能不能分解出适合“编码器”压缩的小波系数,这种编码器不是PNG的LZ77,因为LZ77压缩小波分解系数的效率不是最好的。这种高效编码器在第四章可以找到。那么我们存储PNG文件的目的是什么呢?我认为压缩与去噪(de-noising)是同一种方法的两种提法。他们都使用了设置阈值的方法。我们可以仔细分析经过重构的PNG图片的质量来体会这种消除噪音的效果,也可以评定小波压缩后的图片的视觉质量,同时PNG的文件大小也可以让我们从LZ77算法的本质来理解小波变换压缩后的重构图像的内容变化情况。比如,我们可以从表2中的灰度图像在haar变换取阈值20时出现块状象素,文件大小变为14347,而db9却为46014,超过原始的PNG大小,但并不出现块状而是具有波状的特征。这本身说明了采用Harr小波压缩或去噪后重构的图像中相同的‘串’增多,便于PNG方式压缩,而db9则在相同阈值的情况下不会象Haar那样制造‘马赛克’,说明了它的平滑性,这也能帮助我们理解小波的特性。当然,当阈值继续增加后,超过某一界限,即使DB9也仍然会使PNG文件大小减小。这本身也就是由双尺度(Dyadic)小波变换的两种滤波器决定的。低通滤波结果相当于平均值,高通滤波结果相当于差值,差值能够保证重构图像的细节部分丢失最小,如果差值部分被阈值略去的过多,细节就会越来越少,平均意义的值约来越多,直到多到某一个临界值时(该图像的阈值取到40),重构的图像也可能出现较多的相同数字串,这就会提高PNG的压缩结果。下图是我对Haar(蓝色)小波取阈值为20,db9(红色)小波阈值取40时第128行1:32列的数据曲线与原始数据(黑色)曲线的对比。可以看出也db9在阈值=40时出现了较多的平均值,但比haar在阈值=20时的曲线要少的多。图4、haar(蓝色)和db9(红色)压缩后重构图像的第128行,1:32列的数据曲线不过,MATLAB给我们提供了量化的方法来决定如何选取阈值。在HELPWaveletToolbox:AdvanceConcepts:中提到了几种利用“熵”的概念来衡量如何选取合适的分解级。感兴趣的同学还可以参看wentropy,wdcbm2,wpdec的帮助。文献[1]中也提到了衡量压缩质量的客观化方法MSE,PNSR并指出小波的重构滤波器的长度越长,形状越规则越能够提供良好的压缩性能。上面对PNG的讨论因为没有足够的算法分析和程序解读,同时也没有准确的试验数据,因此只能作为猜测。但衡量小波压缩效率的方法我坚持认为不能以PNG文件大小来解说,如果采用图像文件大小来衡量,应该以JPEG2000来衡量。

④ 诚求关于matlab小波分析的源程序代码

你好,我也在同matlab做小波分析,可以交流一下吧,1024961077

⑤ 急求!!! 利用MATLAB计算小波系数的程序,要求如下:

给你灶燃两个程序语句,橡辩雀你试试吧
D=detcoef2O,C,S,N)实现提取小波分解高频系数
[C,S]是信号的二维小波分解结构,尺度N必须为正整数且1<=N<=size(S,1)-2, O取值为'v'(h或d),当O为'h‘表示提取水平方向细数,为v时梁早表垂直方向 为d时提取斜线方向。

A=appcoef2(C,S,'wname',N)用于提取二维小波分解的低频系数。N为尺度同上,希望对你有所帮助

⑥ 你好,你那有小波包分解重构求能量谱的matlab程序么,这方面我还是没怎么弄通,能帮下么

应该有,在我电脑上呢,给你推荐一本书《小波分析与MATLAB实现》,MATLAB7.0版的,上森培庆面就有这小波分解的MATLAB程序,很全的,你去找找看吧,我这程序不知道放中纯在什么地方此握了

⑦ 小波神经网络的matlab程序

你这个程序错处较多,如fai,fnn,oxhp,没有定义,不能运行。

⑧ 关于小波变换的Matlab编程

这是一个带参数的函数 根据下面的参数校验可以看出你应该是直接点运行了吧 所以报错了
你至少应该产生一个输入信号,比如一个正弦信号来做输入进行变换
。。。谁给你的程序啊 这bug也太多了 很多低级bug 我只是改的能运行了
function [WT,FreqBins,Scales]=CWT_Morlet(Sig,WinLen,nLevel)
%continuous Wavelet Transform using Morlet function
%Sig:信号
%WinLen:小波函数在尺度参数a=1时的长度(默认为10)
%nLevel:频率轴划分区间段(默认为1024)
%
%WT:返回的小波变换计算结果
%FreqBins:返回频率轴划分结果(归一化频率,最高频率为0.5)
%Scales:返回与频率轴划分值相对应的尺度划分(频率0.5对应的尺度为1)
if (nargin==0),
error('At least 1 parameter required!');
end;

if (nargin<3),
nLevel=1024;
end
if (nargin<2),
WinLen=10;
end
Sig=hilbert(real(Sig));%计算信号的解析信号
SigLen=length(Sig);%获取信号的长度
fmax=0.5;%设置最高分析频率
fmin=0.005;%设置最低分析频率
FreqBins=logspace(log10(fmin),log10(0.5),nLevel);%将频率轴在分析范围内等
%对数坐标划分
Scales=fmax*ones(size(FreqBins))./FreqBins;%计算响应的尺度参数
omg0=WinLen/6;
WT=zeros(nLevel,SigLen);%分配计算结果的存储单元
wait=waitbar(0,'Under calculation,please wait');
for m=1:nLevel,
waitbar(m/nLevel,wait);
a=Scales(m);%提取尺度参数
t=-round(a*WinLen):1:round(a*WinLen);
Mor1=pi^(-1/4)*exp(1i*2*pi*0.5*t/a).*exp(-t.^2/2/(2*omg0*a)^2);
%计算当前尺度下的小波函数
temp=conv(Sig,Mor1)/sqrt(a); %计算信号与小波函数的卷积
WT(m,:)=temp(round(a*WinLen)+1:length(temp)-round(a*WinLen));
end;
close(wait);
WT=WT/WinLen;

%%%%%%运行示例%%%%%%%%%
Fs=100;
t=0:1/Fs:2*pi;
sig=sin(t);
[WT,FreqBins,Scales]=CWT_Morlet(sig);

⑨ 怎样在matlab中自己编写一个小波的程序

怎样在matlab中自己编写一个小波的程序
a1.a2,d2,d1是ca1,ca2,cd1,cd2这些小波系数的重构。ca1,ca2,cd1,cd2是小波系数,它们的数据点数随分解层次的增大而减少,这就难以与原陆神扮始信号对比分析,通早灶常会经过重构变为与原始信号个数相同的a1.a2,d2,d1,从物理意义上讲,只有a1.a2,d2,d1才是有实际量纲的信号,瞎槐ca1,ca2,cd1,cd2是没有量纲和物理意义的。

⑩ 求提取小波系数的matlab程序

% 装载leleccum信号
load leleccum;
s = leleccum(1:3920);
% 用db1小波函数对信号进行三尺度小波分解
[C,L]=wavedec(s,2,'db1');
figure(1);
plot(s);
title('leleccum原始信号');
% 提取尺度1的低频系数
cA1 = appcoef(C,L,'db1',1); %用小波分解框架野斗[C.L]计算1层低频系数的近似值,小波基为db1
% 提取尺度2的低频系数
cA2 = appcoef(C,L,'db1',2);
figure(2);
subplot(2,1,1);
plot(cA1);
title('尺度1的低频系数');
subplot(2,1,2);
plot(cA2);
title('尺度颂让磨2的低频系数');
% 提取尺度1的高滑橡频系数
cD1 = detcoef(C,L,1); %用小波分解框架[C.L]计算1层高频系数的近似值,小波基为db1
% 提取尺度2的高频系数
cD2 = detcoef(C,L,2);
figure(3);
subplot(2,1,1);
plot(cD1);
title('尺度1的高频系数');
subplot(2,1,2);
plot(cD2);
title('尺度2的高频系数');

阅读全文

与matlab小波能量程序相关的资料

热点内容
ubuntuqt创建工程没有配置文件 浏览:126
网站登录变成其他网站怎么处理 浏览:202
ug数控编程学校有哪些 浏览:203
java图片上传显示 浏览:402
ppt的文件名后缀 浏览:902
ug编程软件下载到哪个盘 浏览:359
炫酷字体APP下载的文件在哪里 浏览:668
廊坊哪里有少儿编程机构 浏览:312
cad新文件能找回来吗 浏览:951
导出手机qq文件到u盘 浏览:456
电脑如何打开ppt文件怎么打开方式 浏览:782
魅族锁定区文件夹 浏览:357
刻字cnc怎么编程 浏览:182
学校的网络拓扑结构图 浏览:784
收集100个pdf文件里关键词 浏览:594
苹果关闭4g网络设置 浏览:289
如何监测数据库 浏览:967
拷贝过来的pdf文件 浏览:751
抖音小店的访客数据怎么看 浏览:670
怎么把c语言编程的字符向下移动 浏览:786

友情链接