⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matlab_wavelet.txt

📁 关于小波变换的一些matlab试验模拟程序。希望对初学者有所帮助
💻 TXT
📖 第 1 页 / 共 4 页
字号:
 
 


  第 9 楼发表于 2006-4-2 09:40 资料 文集 短消息  
请问能不能指教一下二次样条小波呢?matlab里面如何实现呢? 
    
 
   
 
 
 
  
 
snowwa  


  应门书童 
 
   
  精华: 0
 积分: 2
 帖子: 13
 威望: 1 点
 振动币: 682 个
 管理积分: 0 点
 人气指数: 0
 阅读权限: 10
 注册: 2006-3-7
 
 
 
 


  第 10 楼发表于 2006-4-4 00:56 资料 文集 短消息  
thanks, !!!!!!!!!!!!!!!!!!!!!!!1
 
    
 
   
 
 
 
  
 
simon21  


  新科状元 
 
   
  精华: 6 
 积分: 400
 帖子: 670
 威望: 321 点
 振动币: 23552 个
 管理积分: 0 点
 人气指数: 0
 阅读权限: 80
 注册: 2005-7-24
 
 
 
 


  第 11 楼发表于 2006-4-6 14:26 资料 个人空间 短消息  
回复:(simon21)[分享]个人收集的一些关于小波分析的...


基于LeventCodes平台的小波去噪程序

包括以下方法:

BivaShrink方法、模型1、模型2、模型3(TrivaShrink方法)、
BayesShrink方法、 LAWMLShrink方法的DWT实现和DT_CWT实现。 
    
 
   
 
 
 
  
 
simon21  


  新科状元 
 
   
  精华: 6 
 积分: 400
 帖子: 670
 威望: 321 点
 振动币: 23552 个
 管理积分: 0 点
 人气指数: 0
 阅读权限: 80
 注册: 2005-7-24
 
 
 
 


  第 12 楼发表于 2006-4-6 14:30 资料 个人空间 短消息  
回复:(simon21)[分享]个人收集的一些关于小波分析的...


连续小波和离散小波分析的应用实例 
    
 
   
 
 
 
  
 
simon21  


  新科状元 
 
   
  精华: 6 
 积分: 400
 帖子: 670
 威望: 321 点
 振动币: 23552 个
 管理积分: 0 点
 人气指数: 0
 阅读权限: 80
 注册: 2005-7-24
 
 
 
 


  第 13 楼发表于 2006-4-6 14:31 资料 个人空间 短消息  
回复:(simon21)[分享]个人收集的一些关于小波分析的...


小波插值与小波构造(3个程序) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% 小波构造 function casade
clear;clc;
t=3;
phi=[0,1,0]; h=wfilters('db7','r'); 
h=h*sqrt(2); h_e=h(1,[2:2:14]);
h_o=h(1,[1:2:13]); for m=1:15;
stem(phi);
drawnow;
pause(1);
ee=conv(h_e,phi);
oo=conv(h_o,phi);
phi(1,[2:2:2*length(ee)])=ee;
phi(1,[1:2:2*length(oo)-1])=oo;


end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% cubic_average(立方b样条)
% 均值插值 % 初始化
s=[0 0 1 0 0] % 正弦波
% f=50;
% ts=1/200;
% n=0:16;
% s=sin(2*pi*f*n*ts); % 系数
se=[1/8,6/8,1/8];
so=[4/8,4/8] % 循环
for p=1:10;
t=length(s)-1;
o(1:t)=s(1:t)*so(1)+s(2:t+1)*so(2);
e(1)=s(t+1)*se(1)+s(1)*se(2)+s(2)*se(3);
e(2:t)=s(1:t-1)*se(1)+s(2:t)*se(2)+s(3:t+1)*se(3);
e(t+1)=s(t)*se(1)+s(t+1)*se(2)+s(1)*se(3);
s([1:2:2*t+1])=e([1:t+1]);
s([2:2:2*t])=o([1:t]);
plot(s);
drawnow;
end; % 抽取
t=length(s); % 总长度
p=128; % 需要点数 % 间隔
d=(t-1)/p; % 最终尺度函数
r=s(2:d:t-1); % 画图
figure(2);
plot(r); 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% cubic_subdivision(立方插值)
% 细分插值 % %% 初始化(尺度函数)
% s=[0,0,1,0,0]; % 正弦函数
n=1:20;
f=50;
ts=1/200;
s=sin(2*pi*f*n*ts); % 指数函数
% n=0:16;
% s=exp(n); % % 系数
a=[-1/16,9/16,9/16,-1/16]; % 循环
for p=1:4;
t=length(s)-1;
o(1)=s(4)*a(1)+s(1)*a(2)+s(2)*a(3)+s(3)*a(4);
o(2:t-1)=s(1:t-2)*a(1)+s(2:t-1)*a(2)+s(3:t)*a(3)+s(4:t+1)*a(4);
o(t)=s(t-2)*a(4)+s(t+1)*a(3)+s(t)*a(2)+s(t-1)*a(1);
s([1:2:2*t+1])=s([1:t+1]);
s([2:2:2*t])=o([1:t]);
plot(s);
drawnow;
end; % % 抽取
% t=length(s); % 总长度
% p=128; % 需要点数
% 
% % 间隔
% d=(t-1)/p;
% 
% % 最终尺度函数
% r=s(2:d:t-1); 
% 
% % 画图
% figure(2);
% plot(r); 
    
 
   
 
 
 
  
 
simon21  


  新科状元 
 
   
  精华: 6 
 积分: 400
 帖子: 670
 威望: 321 点
 振动币: 23552 个
 管理积分: 0 点
 人气指数: 0
 阅读权限: 80
 注册: 2005-7-24
 
 
 
 


  第 14 楼发表于 2006-4-6 14:33 资料 个人空间 短消息  
回复:(simon21)[分享]个人收集的一些关于小波分析的...


采用多孔trous算法(undecimated wavelet transform)实现小波变换 clear;clc; 
% 1.生成信号 
f=50; % 频率
fs=800; % 采样率
T=128; % 信号长度
n=1:T;
y=sin(2*pi*f*n/fs)+2*exp(-f*n/(4*fs)); % 信号
% y=circshift(y.',3).'; %% 
2.正变换 l1=wfilters('db4','l')*sqrt(2)/2; 
% 参考低通滤波器
l1_zeros=[l1,zeros(1,T-length(l1))]; % 低通滤波器1
h1=wfilters('db4','h')*sqrt(2)/2; % 参考高通滤波器
h1_zeros=[h1,zeros(1,T-length(h1))]; % 高通滤波器1 low1=ifft(fft(y).*fft(l1_zeros)); % 低频分量1
high1=ifft(fft(y).*fft(h1_zeros)); % 高频分量1 l2=dyadup(l1); % 原滤波器插值
l2_zeros=[l2,zeros(1,T-length(l2))]; % 低通滤波器2
h2=dyadup(h1); % 原滤波器插值
h2_zeros=[h2,zeros(1,T-length(h2))]; % 高通滤波器2 low2=ifft(fft(low1).*fft(l2_zeros)); % 低频分量2
high2=ifft(fft(low1).*fft(h2_zeros)); % 高频分量2 
%% 3.反变换 lr2=circshift(l2_zeros(end:-1:1).',1).'; % 重构低通滤波器2
hr2=circshift(h2_zeros(end:-1:1).',1).'; % 重构高通滤波器2
lr1=circshift(l1_zeros(end:-1:1).',1).'; % 重构低通滤波器1
hr1=circshift(h1_zeros(end:-1:1).',1).'; % 重构高通滤波器1 lowr=(ifft(fft(low2).*fft(lr2))+ifft(fft(high2).*fft(hr2))); % 重构低频分量1(lowr=low1)
r_s=(ifft(fft(lowr).*fft(lr1))+ifft(fft(high1).*fft(hr1))); % 重构源信号(r_s=y) 
%% 4.绘图 figure(1);
plot(y);
title('源信号'); figure(2);
plot(low1,'r');
hold on;
plot(low2,'b');
legend('第一层低频','第二层低频'); figure(3);
plot(high1,'r');
hold on;
plot(high2,'b');
legend('第一层高频','第二层高频'); figure(4);
plot(low1,'r');
hold on;
plot(lowr,'b.');
legend('第一层低频','重构第一层低频'); figure(5);
plot(y,'r');
hold on;
plot(r_s,'b.');
legend('源信号','重构信号'); disp(norm(low1-lowr))
disp(norm(y-r_s)) 
    
 
   
 
 
 
  
 
simon21  


  新科状元 
 
   
  精华: 6 
 积分: 400
 帖子: 670
 威望: 321 点
 振动币: 23552 个
 管理积分: 0 点
 人气指数: 0
 阅读权限: 80
 注册: 2005-7-24
 
 
 
 


  第 15 楼发表于 2006-4-6 14:35 资料 个人空间 短消息  
回复:(simon21)[分享]个人收集的一些关于小波分析的...


% 此程序实现构造小波基
% periodic_wavelet.m function ss=periodic_wavelet; clear;clc; 
% global MOMENT; % 消失矩阶数
% global LEFT_SCALET; % 尺度函数左支撑区间
% global RIGHT_SCALET; % 尺度函数右支撑区间
% global LEFT_BASIS; % 小波基函数左支撑区间
% global RIGHT_BASIS; % 小波基函数右支撑区间
% global MIN_STEP; % 最小离散步长
% global LEVEL; % 计算需要的层数(离散精度)
% global MAX_LEVEL; % 周期小波最大计算层数 
[s2,h]=scale_integer;
[test,h]=scalet_stretch(s2,h);
wave_base=wavelet(test,h);
ss=periodic_waveletbasis(wave_base); 
function [s2,h]=scale_integer; % 本函数实现求解小波尺度函数离散整数点的值
% sacle_integer.m MOMENT=10; % 消失矩阶数
LEFT_SCALET=0; % 尺度函数左支撑区间
RIGHT_SCALET=2*MOMENT-1; % 尺度函数右支撑区间
LEFT_BASIS=1-MOMENT; % 小波基函数左支撑区间
RIGHT_BASIS=MOMENT; % 小波基函数右支撑区间
MIN_STEP=1/512; % 最小离散步长
LEVEL=-log2(MIN_STEP); % 计算需要的层数(离散精度)
MAX_LEVEL=8; % 周期小波最大计算层数 
h=wfilters('db10','r'); % 滤波器系数 h=h*sqrt(2); % FI(T)=SQRT(2)*SUM(H(N)*FI(2T-N)) N=0:2*MOMENT-1; for i=LEFT_SCALET+1:RIGHT_SCALET-1
for j=LEFT_SCALET+1:RIGHT_SCALET-1
k=2*i-j+1;
if (k>=1&k<=RIGHT_SCALET+1)
a(i,j)=h(k); % 矩阵系数矩阵
else
a(i,j)=0;
end
end
end [s,w]=eig(a); % 求特征向量,解的基
s1=s(:,1);
s2=[0;s1/sum(s1);0]; % 根据条件SUM(FI(T))=1,求解; % 本函数实现尺度函数经伸缩后的离散值
% scalet_stretch.m function [s2,h]=scalet_stretch(s2,h); MOMENT=10; % 消失矩阶数
LEFT_SCALET=0; % 尺度函数左支撑区间
RIGHT_SCALET=2*MOMENT-1; % 尺度函数右支撑区间
LEFT_BASIS=1-MOMENT; % 小波基函数左支撑区间
RIGHT_BASIS=MOMENT; % 小波基函数右支撑区间
MIN_STEP=1/512; % 最小离散步长
LEVEL=-log2(MIN_STEP); % 计算需要的层数(离散精度)
MAX_LEVEL=8; % 周期小波最大计算层数 
for j=1:LEVEL % 需要计算到尺度函数的层数
t=0;
for i=1:2:2*length(s2)-3 % 需要计算的离散点取值(0,1,2,3 -> 1/2, 3/2, 5/2)
t=t+1;
fi(t)=0;
for n=LEFT_SCALET:RIGHT_SCALET; % 低通滤波器冲击响应紧支撑判断
if ((i/2^(j-1)-n)>=LEFT_SCALET&(i/2^(j-1)-n)<=RIGHT_SCALET) % 小波尺度函数紧支撑判断
fi(t)=fi(t)+h(n+1)*s2(i-n*2^(j-1)+1); % 反复应用双尺度方程求解
end
end
end
clear s
n1=length(s2);
n2=length(fi);
for i=1:length(s2)+length(fi) % 变换后的矩阵长度
if (mod(i,2)==1)
s(i)=s2((i+1)/2); % 矩阵奇数下标为小波上一层(0,1,2,3)离散值
else
s(i)=fi(i/2); % 矩阵偶数下标为小波下一层(1/2,3/2,5/2)(经过伸缩变换后)的离散值
end
end
s2=s;
end 
% 采用双尺度方程求解小波基函数 PSI(T)
% wavelet.m function wave_base=wavelet(test,h); MOMENT=10; % 消失矩阶数
LEFT_SCALET=0; % 尺度函数左支撑区间
RIGHT_SCALET=2*MOMENT-1; % 尺度函数右支撑区间
LEFT_BASIS=1-MOMENT; % 小波基函数左支撑区间
RIGHT_BASIS=MOMENT; % 小波基函数右支撑区间
MIN_STEP=1/512; % 最小离散步长
LEVEL=-log2(MIN_STEP); % 计算需要的层数(离散精度)
MAX_LEVEL=8; % 周期小波最大计算层数 
i=0;
for t=LEFT_BASIS:MIN_STEP:RIGHT_BASIS; % 小波基支撑长度 
s=0;
for n=1-RIGHT_SCALET:1-LEFT_SCALET % g(n)取值范围
if((2*t-n)>=LEFT_SCALET&(2*t-n)<=RIGHT_SCALET) % 尺度函数判断
s=s+h(1-n+1)*(-1)^(n)*test((2*t-n)/MIN_STEP+1); % 计算任意精度的小波基函数值 
end 
end
i=i+1;
wave_base(i)=s;
end 
    
 
 53  1/4 1234?? 投票 
交易 
悬赏 
活动 
 


振动论坛 
家园建设 
  > 论坛公告 
  > 论坛建设 
      > 版面建设、版主申请 
  > 专家讲坛 
      > 专家讲坛资料 
  > 新手上路 
      > 新人送积分活动 
振动基础 
  > 基础力学理论 
  > 一般力学和振动理论 
  > 数学与非线性科学 
  > 算法原理及编程 
  > 结构可靠性及优化设计 
  > 控制理论及应用 
  > NVH及振动利用工程 
CFD专区 
  > CFD基础理论与实践 
  > Fluent讨论区 
  > 其他CFD软件讨论区 
信号处理 
  > 振动实验与测试技术 
  > 信号处理方法 
  > 故障诊断及健康监测 
噪声分析 
  > 声学基础及噪声治理 
  > 声学分析软件 
  > 声学测量 
数学软件 
  > Matlab讨论区 
  > Simulink仿真专区 
  > 虚拟仪器技术 
  > 其他数学软件 
工程软件 
  > Ansys讨论区 
  > MSC系列软件专区 
  > ABAQUS讨论区 
  > CAD软件讨论区 
  > 其他软件及相关讨论 
综合讨论 
  > 电脑安全维护 
  > 科学研究方法 
  > 信息广场 
休闲娱乐 
  > 心情故事 
  > 图行天下 
管理专区 



当前时区 GMT+8, 现在时间是 2007-3-31 16:02
黑ICP备06005726号 

      Powered by Discuz! 5.0.0  ? 2001-2006 Comsenz Inc. 
Processed in 0.168516 second(s), 9 queries , Gzip enabled  TOP
清除 Cookies - 联系我们 - 中国振动联盟 - Archiver - WAP  

社区银行 
论坛勋章 
虚拟股市 
宠物中心 
宣传中心 
人气排行 
     游客:  注册 | 登录 | 会员 | 搜索 | 论坛设施 | 帮助  
 

   振动论坛 ? 信号处理方法 ? [分享]个人收集的一些关于小波分析的matlab程序
?? 上一主题 | 下一主题 ??

 53  2/4 ??1234?? 投票 
交易 
悬赏 
活动 
 
打印 | 推荐 | 订阅 | 收藏 | 开通个人空间 | 加入资讯 标题: [分享]个人收集的一些关于小波分析的matlab程序 
本主题由 yangzj 于 2007-1-20 20:40 设置高亮  

    
 
 
 
  
 
WaveletFan  


  应门书童 
 
   
  精华: 0
 积分: 1
 帖子: 3
 威望: 1 点
 振动币: 214 个
 管理积分: 0 点
 人气指数: 0
 阅读权限: 10
 注册: 2006-4-12
 
 
 
 


  第 16 楼发表于 2006-4-12 14:24 资料 文集 短消息  
谢谢分享 
    
 
   
 
 
 
  
 
ijkl56  


  应门书童 
 
   
  精华: 0
 积分: 4
 帖子: 18
 威望: 2 点
 振动币: 1848 个
 管理积分: 0 点
 人气指数: 0
 阅读权限: 10
 注册: 2006-3-17
 
 
 
 


  第 17 楼发表于 2006-4-23 18:52 资料 文集 短消息  
辛苦了!
 
    
 
   
 
 
 
  
 
infant  


  应门书童 
 
   
  精华: 0
 积分: 1
 帖子: 3
 威望: 1 点
 振动币: 151 个
 管理积分: 0 点
 人气指数: 0
 阅读权限: 10
 注册: 2006-4-26
 
 
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -