小波分析实验: 实验1 连续小波变换
实验目的:
在理解连续小波变换原理的基础上,通过编程实现对一维信号进行连续小波变换,(实验中采用的是墨西哥帽小波),从而对连续小波变换增加了理性和感性的认识,并能提高编程能力,为今后的学习和工作奠定基础。
实验工具:
计算机,matlab6.5
程序附录:
(1) 墨西哥帽小波函数,按照(***)式编程
% mexh.m
function Y=mexh(x)
if abs(x)<=8
Y=exp(-x*x/2)*(1-x^2);
else
Y=0;
End
(2) 实验程序,按照(**)式编程,详细过程请参考“本实验采取的一些小技巧”
%
clc;clear;
load('data.mat');
len=length(dat);
lna=70; % (尺度a)的长度
a=zeros(1,lna);
wfab=zeros(lna,len); %小波系数矩阵
mexhab=zeros(1,len); % 离散化小波系数矩阵
for s=1:lna %s 表示尺度
for k=1:len
mexhab(k)=mexh(k/s);
end
for t=1:len % t 表示位移
wfab(s,t)=(sum(mexhab.*dat))/sqrt(s); %将积分用求和代替
mexhab=[mexh(-1*t/s),mexhab(1:len-1)]; %mexhab修改第一项并右移
end
end
figure(1);
plot(dat);
title('原始数据图');
figure(2); %小波系数谱
image(wfab);
colormap(pink(128));
title('小波系数图');
%surf(wfab);
%title('小波系数谱网格图');
%pwfab=wfab.*wfab; %%瞬态功率谱
%figure(3);
%subplot(1,2,1);
%surf(pwfab);
%title('瞬态功率谱网格图');
%subplot(1,2,2);
%contour(pwfab);
%title('瞬态功率谱等值线');
(3)test函数。
%test 函数
clc;clear;
for i=1:200
dat(i)=sin(2*pi*i*0.05); %正弦波函数
end
len=length(dat);
lna=40;
wfab=zeros(lna,len);
mexhab=zeros(1,len);
for s=1:lna %s 表示尺度
for k=1:len
mexhab(k)=mexh(k/s);
end
for t=1:len % t 表示位移
wfab(s,t)=(sum(mexhab.*dat))/sqrt(s); %将积分用求和代替
mexhab=[mexh(-1*t/s),mexhab(1:len-1)]; %mexhab修改第一项并右移
end
end
figure(1);
plot(dat);
title('orignal dat');
figure(2); %小波系数谱
image(wfab);
colormap(pink(128));
title('正弦波的小波系数图');
(4)用fft实现cwt
%按照圆周卷积定理,原周卷积和线性卷积的关系L>=M+N-1
%按照圆周卷积的定义,相关和线性卷积的关系(原始算法和线性卷积的关系)
%注意画图理解
clc;clear;
t1=cputime;
load('data.mat');
len=length(dat);
lna=70; % a(尺度)的长度
a=zeros(1,lna); % a 表示尺度
b=zeros(1,len); % b 表示位移
wfab=zeros(lna,len); %小波系数矩阵
mexhab=zeros(1,2*len-1);
data=[zeros(1,len-1),dat];
Ydata=fft( data ,4*len);
for s=1:lna
for k=1:2*len-1
mexhab(k)=mexh((k-len)/s);
end
temp=ifft( Ydata.*fft( mexhab,4*len ) ,4*len);
wfab(s,:)=real(temp(2*len-1:3*len-2))/sqrt(s); %为什么要取实部而不是取模,我也不是很清楚,可是有种感觉
end
figure(1);
plot(dat);
title('原始数据图');
figure(2); %小波系数谱
image(wfab);
colormap(pink(128));
title('小波系数谱 ');
cputime-t1
4)fft快速计算cwt
%按照圆周卷积的定义,
%注意画图理解
clc;clear;
t1=cputime;
load('data.mat');
len=length(dat);
lna=70; % a(尺度)的长度
a=5;
data=[dat,zeros(1,len)];
Ydata=fft(dat,2*len);
for s=1:lna
mexhab=zeros(1,2*len);
k=[-a*s:1:a*s];
mexhab(k+len)=mexh2(k./s);
temp=ifft( Ydata.*fft( mexhab,2*len ) ,2*len);
wfab(s,:)=real(temp(len+1:2*len))/sqrt(s); %要取实部而不是取模,呵呵
end
figure(1);
plot(dat);
title('原始数据图');
figure(2); %小波系数谱
image(wfab);
colormap(pink(128));
title('小波系数谱 ');
cputime-t1
5)保存为mexh2.m
function Y=mexh2(x)
Y=exp(-x.*x/2).*(1-x.^2);
Torstan
2005.09.16
转载于:https://www.cnblogs.com/Torstan/archive/2011/08/31/2161427.html
小波分析实验: 实验1 连续小波变换相关推荐
- 【小波分析】连续小波变换的概念swt,cwt,dwt
连续小波变换的概念.操作.及时间尺度图的显示 最近很多网友问到关于连续小波变换的诸多问题,我用了点时间,写了个底层程序,提供给大家参考. 1.连续小波的概念.就是把一个可以称作小波的函数(从负无穷到正 ...
- 连续小波变换应用于密集模态参数识别
我的第一篇文章: 摘要: 用 连续小波变换方法进行模态参数识别时,减小小波函数的带宽可以提高小波变换的频率分辨能力,但同时也会增大边沿效应,影响密集模态参数识别的精度.本文提 出了极值 ...
- 5.基于深度学习的轴承故障诊断--连续小波变换cwt
该专栏将较为详细的介绍如何利用深度学习进行故障诊断方面的学术研究,主要以轴承为例,包括深度学习常用框架Tensorflow的搭建以及使用,并会记录完整搭建过程,并以卷积神经网络与循环神经网络为例进行代 ...
- matlab 小波变换_连续小波变换实现方法的总结及其程序详解
在帖子"给大家分享我自己编的程序-连续小波变换" 中,pengzk版友给出了morlet小波变换的源代码,但其中的许多参数和语句意义不够明确,这就给一些希望了解连续小波变换实现方法 ...
- 计算机组成原理实验存储器部件实验,实验4存储器部件实验.doc
北 京 林 业 大 学 11学年-12学年第 2 学期计算机组成原理实验任务书 专业名称: 计算机科学与技术 实验学时: 2 课程名称:计算机组成原理 任课教师: 张海燕 实验题目:实验四 内存储器部 ...
- 中断实验计算机组成原理,计算机组成原理 中断实验 实验五
<计算机组成原理 中断实验 实验五>由会员分享,可在线阅读,更多相关<计算机组成原理 中断实验 实验五(6页珍藏版)>请在技术文库上搜索. 1.深深 圳圳 大大 学学 实实 验 ...
- 计算机接口并行实验,8255可编程并行接口实验实验报告
<8255可编程并行接口实验实验报告>由会员分享,可在线阅读,更多相关<8255可编程并行接口实验实验报告(6页珍藏版)>请在人人文库网上搜索. 1.微机原理实验报告实验名称8 ...
- 计算机控制系统的采样与保持实验,实验一采样与保持
<实验一采样与保持>由会员分享,可在线阅读,更多相关<实验一采样与保持(10页珍藏版)>请在人人文库网上搜索. 1.常州大学 信息数理学院计算机控制系统实验报告第一次实验实验名 ...
- plc实验报告流程图_(新编)电气控制与PLC实验实验报告(0401)
(新编)电气控制与PLC实验实验报告(0401) 实 验 报 告实验项目名称 低压电器的认识 同组人 试验时间 实验室 指导教师 一.实验目的1.了解常用低压元件的结构.原理.符号.作用,熟悉低压元件 ...
最新文章
- 《C语言接口与实现:创建可重用软件的技术》一2.6 扩展阅读
- java day01第一课java简介
- pytorch 学习笔记目录
- 有效可靠地管理大规模 Kubernetes 集群
- 0xbc指令 st75256_DDOS终极加速列车算法
- Authorization object where used list in tcode SUIM
- linux间服务器间文件传输,Linux命令scp服务器间文件传输教程
- 今晚直播丨一次特殊的 Oralce 硬解析性能问题的技术分享
- ObjectMapper忽略未知字段
- Web 服务器错误代码
- java收到邮件后短信提醒_java邮件发送和短信发送(二)
- 一位全加器Verilog的三种不同的描述
- 计算机更新bios,GIGABYTE How to Reflash VGA BIOS
- kylin 维度优化,Aggregation Group,Joint,Hierachy,Mandatory等解析
- php计算macd,php交易者macd返回false
- android 自定义viewgroup 布局,Android 自定义ViewGroup(一)
- 如何查找CpG Islands, CpG shores等 --转载
- FPGA HLS Matrix_MUL 矩阵乘法的计算与优化
- 适用于Windows 10的所有Microsoft PowerToys的全部解释
- 三星T5硬盘测试软件AS SSD及问题
热门文章
- 数论--康托展开与逆康托展开模板
- 使用TorchElastic训练DeepSpeech
- linux kernel 三次握手建立TCP链接的实现
- “去除更多的鲜艳色彩和动态效果的搭配,精简用户使用步长,让软件更像是一件工具。(不排除以后更先进的吸引眼球的方式)“。
- 在村镇银行存款,银行先把利息全给了,这种存款安全吗?
- UART协议驱动设计
- oracle rac em cluster name,ORACLE 11G RAC重建EM问题
- gson json转map_Java几种常用JSON库性能比较
- python如何使用多态_在python 3中,如何将多态应用于类
- js封装函数_JavaScript基础-如何封装函数来改变元素的位置