1. 怎么用matlab实现小波变换???急!!!
Allnodes 计算树结点
appcoef 提取一维小波变换低频系数
appcoef2 提取二维小波分解低频系数
bestlevt 计算完整最佳小波包树
besttree 计算最佳(优)树
biorfill 双正交样条小波滤波器组
biorwavf 双正交样条小波滤波器
centfrq 求小波中心频率
cgauwavf Complex Gaussian小波
cmorwavf coiflets小波滤波器
cwt 一维连续小波变换
dbaux Daubechies小波滤波器计算
dbwavf Daubechies小波滤波器 dbwavf(W) W='dbN' N=1,2,3,...,50
ddencmp 获取默认值阈值(软或硬)熵标准
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
mexihat 墨西哥帽小波
meyer Meyer小波
meyeraux Meyer小波辅助函数
morlet Morlet小波
nodease 计算上溯结点
nodedesc 计算下溯结点(子结点)
nodejoin 重组结点
nodepar 寻找父结点
nodesplt 分割(分解)结点
noleaves
ntnode
ntree
orthfill 正交小波滤波器组
plot 绘制向量或矩阵的图形
qmf 镜像二次滤波器
rbiowavf
read 读取二进制数据
readtree 读取小波包分解树
scal2frq
set
shanwavf
swt 一维SWT(Stationary Wavelet Transform)变换
swt2 二维SWT变换
symaux
symwavf Symlets小波滤波器
thselect 信号消噪的阈值选择
thodes
treedpth 求树的深度
treeord 求树结构的叉数
函数指令 含义
upcoef 一维小波分解系数的直接重构
upcoef2 二维小波分解系数的直接重构
upwlev 单尺度一维小波分解的重构
upwlev2 单尺度二维小波分解的重构
wavedec 单尺度一维小波分解
wavedec2 多尺度二维小波分解
wavedemo 小波工具箱函数demo
wavefun 小波函数和尺度函数
wavefun2 二维小波函数和尺度函数
wavemenu 小波工具箱函数menu图形界面调用函数
wavemngr 小波管理函数
waverec 多尺度一维小波重构
waverec2 多尺度二维小波重构
wbmpen
wcodemat 对矩阵进行量化编码
wdcbm
wdcbm2
wden 用小波进行一维信号的消噪或压缩
wdencmp
wentropy 计算小波包的熵
wextend
wfilters 小波滤波器
wkeep 提取向量或矩阵中的一部分
wmaxlev 计算小波分解的最大尺度
wnoise 产生含噪声的测试函数数据
wnoisest 估计一维小波的系数的标准偏差
wp2wtree 从小波包树中提取小波树
spbmpen
wpcoef 计算小波包系数
wpcutree 剪切小波包分解树
wpdec 一维小波包的分解
wpdec2 二维小波包的分解
wpdencmp 用小波包进行信号的消噪或压缩
wpfun 小波包函数
wpjoin
wprcoef 小波包分解系数的重构
wprec 一维小波包分解的重构
wprec2 二维小波包分解的重构
wpsplt 分割(分解)小波包
wpthcoef 进行小波包分解系数的阈值处理
wptree
wpviewcf
wrcoef 对一维小波系数进行单支重构
wrcoef2 对二维小波系数进行单支重构
wrev 向量逆序
write 向缓冲区内存写进数据
wtbo
wthcoef 一维信号的小波系数阈值处理
wthcoef2 二维信号的小波系数阈值处理
wthresh 进行软阈值或硬阈值处理
wthrmngr 阈值设置管理
wtreemgr 管理树结构
wvarchg
2. 怎样用matlab进行小波变换
那就要看你的数据保存格式是什么样式的,如果是txt的,用load函数进行导入;如果是xls的,可以用xlsread函数进行导入
3. matlab怎样抓取Yahoo/Sina的股票数据
给你一个例程,用于抓取新浪股票2017年1月份的股票数据。程序如下:
clc;
clear;
year=2017;
season = 1 ;
fprintf('抓取%d年%d季度的数据中...\n', year, season)
[sourcefile, status] = urlread(sprintf('http://vip.stock.finance.sina.com.cn/corp/go.php/vMS_MarketHistory/stockid/000001/type/S.phtml?year=%d&season=%d', year));
expr2 = '(\d*\.?\d*)';
[datafile, data_tokens] = regexp(sourcefile, expr2, 'match', 'tokens'); %从源文件中获取目标数据
data = zeros(size(data_tokens));%产生和数据相同长度的0
for idx = 1:length(data_tokens)
data(idx) = str2double(data_tokens{idx}{1}); %转变数据类型后存入data中
end
%%占坑打个广告,代写matlab程序(毕业设计,课程任务等)
%%信号处理,小波变换,PCA降维,ICA分析,分类器,滤波器等。QQ:1577232787
4. 麻烦小波变换高手分别解释一下MATLAB小波基中db1,db2,...,db10和sym1,...sym4的区别以及怎么选择。
你可以打开小波基来看看它们的数值,画出图来看的话更加直观,附图是我画的,是cdf7/9小波基,和matlab里面的bior4.4类似。db、sym都是小波的名称,或者说是“族”,后面的数字可以看作是这个族里面的长幼次序了。你用图把它们画出来再比较,就一目了然了。
不妨从简单的haar小波基入手,看看它的结构。简单而言,小波基就是一个滤波器,可以结合数字信号处理来理解一下。
不同小波基的选择是个内涵丰富的话题,根据应用不同,选择小波基的方法也不尽相同。对于图像压缩,常用的是cdf小波基,我不知道你的领域是什么,可以考虑用大量实验或者统计分析的方法来确定哪个小波基适合你。比如我在做图像压缩的时候,就试验了各种小波基,最后用PSNR来确定哪个小波基效果更好。
以上。
小波暴走的老狼
5. 如图,使用matlab编程实现小波变换对一幅图像进行处理,从而得出4个座标图。
A = imread('image.bmp');
B = A(:,:,1);
[lowf,highfH,highfV,highfD,C,S] = wavelet2D(double(B),'morlet',2);
function[lowf,highH,highV,highD,C,S] = wavelet2D(signal,wavelet,level)
[C,S]=wavedec2(signal,level,wavelet);
lowf = appcoef2(C,S,wavelet,level);
highH=detcoef2('h',C,S,level);
highV=detcoef2('v',C,S,level);
highD=detcoef2('d',C,S,level);
A = wrcoef2('a',C,S,wavelet,level);
Dh =wrcoef2('h',C,S,wavelet,level);
Dv =wrcoef2('v',C,S,wavelet,level);
Dd =wrcoef2('d',C,S,wavelet,level);
subplot(2,2,1),image(A);
subplot(2,2,2),imshow(Dh);
subplot(2,2,3),imshow(Dv);
subplot(2,2,4),imshow(Dd);
6. 小波分析在matlab中实现的具体步骤
%含噪声的三角波与正弦波的组合
%利用db5小波对信号进行7层分解
%生产正弦信号
clc;close all;clear all;
N=1000;
t=1:N;
sig1=sin(0.3*t);
%生成三角形波形
sig2(1:500)=((1:500)-1)/500;
sig2(501:N)=(1000-(501:1000))/500;
figure(1);
subplot(211);
plot(t,sig1,'linewidth',2);
xlabel('样本序号 N');
ylabel('幅值A');
subplot(212);
plot(t,sig2,'linewidth',2);
xlabel('样本序号 N');
ylabel('幅值A');
%叠加信号
x=sig1+sig2+randn(1,N);
figure(2);
plot(t,x,'linewidth',2);
xlabel('样本序号 N');
ylabel('幅值A');%一维小波分解
[c,l]=wavedec(x,7,'db5');%重构第1-7层逼近系数
a7=wrcoef('a',c,l,'db5',7);
a6=wrcoef('a',c,l,'db5',6);
a5=wrcoef('a',c,l,'db5',5);
a4=wrcoef('a',c,l,'db5',4);
a3=wrcoef('a',c,l,'db5',3);
a2=wrcoef('a',c,l,'db5',2);
a1=wrcoef('a',c,l,'db5',1);%显示逼近系数
figure(3)
subplot(711)
plot(a7,'linewidth',2);
ylabel('a7');
subplot(712)
plot(a6,'linewidth',2);
ylabel('a6');
subplot(713)
plot(a5,'linewidth',2);
ylabel('a5');
subplot(714)
plot(a4,'linewidth',2);
ylabel('a4');
subplot(715)
plot(a3,'linewidth',2);
ylabel('a3');
subplot(716)
plot(a2,'linewidth',2);
ylabel('a2');
subplot(717)
plot(a1,'linewidth',2);
ylabel('a1');
xlabel('样本序号 N');%重构第1-7层细节系数
d7=wrcoef('d',c,l,'db5',7);
d6=wrcoef('d',c,l,'db5',6);
d5=wrcoef('d',c,l,'db5',5);
d4=wrcoef('d',c,l,'db5',4);
d3=wrcoef('d',c,l,'db5',3);
d2=wrcoef('d',c,l,'db5',2);
d1=wrcoef('d',c,l,'db5',1);
%显示细节系数
figure(4)
subplot(711)
plot(d7,'linewidth',2);
ylabel('d7');
subplot(712)
plot(d6,'linewidth',2);
ylabel('d6');
subplot(713)
plot(d5,'linewidth',2);
ylabel('d5');
subplot(714)
plot(d4,'linewidth',2);
ylabel('d4');
subplot(715)
plot(d3,'linewidth',2);
ylabel('d3');
subplot(716)
plot(d2,'linewidth',2);
ylabel('d2');
subplot(717)
plot(d1,'linewidth',2);
ylabel('d1');
xlabel('样本序号 N');
7. 关于小波变换的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);
8. 求matlab的Morlet小波变换代码……谢谢。需要得到如下结果图。
小波分析后,你也没处理,组合起来依然是原信号啊。方差不会变的。你用连续小波变换,得到了1:43尺度下的小波基系数组z(i)。如果你指的是在一定分辨率下,该信号在某个尺度上投射的分量的方差。就用z(i)乘以这个小波φ(τ,σ)基。在用STD求方差呗。