数据峰值检测:基于小波变换的MATLAB仿真

1.算法仿真效果

matlab2022a仿真结果如下:
基于小波变换的数据峰值检测matlab仿真_5e

基于小波变换的数据峰值检测matlab仿真_傅立叶变换_02


基于小波变换的数据峰值检测matlab仿真_5e_03




2.算法涉及理论知识概要

小波变换(wavelet transform,WT)是一种新的变换分析方法,它继承和发展了短时傅立叶变换局部化的思想,同时又克服了窗口大小不随频率变化等缺点,能够提供一个随频率改变的“时间-频率”窗口,是进行信号时频分析和处理的理想工具。它的主要特点是通过变换能够充分突出问题某些方面的特征,能对时间(空间)频率的局部化分析,通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节,解决了Fourier变换的困难问题,成为继Fourier变换以来在科学方法上的重大突破。

登录后复制


与Fourier变换相比,小波变换是空间(时间)和频率的局部变换,因而能有效地从信号中提取信息。通过伸缩和平移等运算功能可对函数或信号进

行多尺度的细化分析,解决了Fourier变换不能解决的许多困难问题。小波变换联系了应用数学、物理学、计算机科学、信号与信息处理、图像处理、

地震勘探等多个学科。

数学家认为,小波分析是一个新的数学分支,它是泛函分析、Fourier分析、样条分析、数值分析的完美结晶;信号和信息处理专家认为,小波分析是时间—尺度分析和多分辨分析的一种新技术,它在信号分析、语音合成、图像识别、计算机视觉、数据压缩、地震勘探、大气与海洋波分析等方面的研究都取得了有科学意义和应用价值的成果。信号分析的主要目的是寻找一种简单有效的信号变换方法,使信号所包含的重要信息能显现出来。


小波分析属于信号时频分析的一种,在小波分析出现之前,傅立叶变换是信号处理领域应用最广泛、效果最好的一种分析手段。傅立叶变换是时域到频域互相转化的工具,从物理意义上讲,傅立叶变换的实质是把这个波形分解成不同频率的正弦波的叠加和。

正是傅立叶变换的这种重要的物理意义,决定了傅立叶变换在信号分析和信号处理中的独特地位。傅立叶变换用在两个方向上都无限伸展的正弦曲线波作为正交基函数,把周期函数展成傅立叶级数,把非周期函数展成傅立叶积分,利用傅立叶变换对函数作频谱分析,反映了整个信号的时间频谱特性,较好地揭示了平稳信号的特征。

小波变换是一种新的变换分析方法,它继承和发展了短时傅立叶变换局部化的思想,同时又克服了窗口大小不随频率变化等缺点,能够提供一个随频率改变的“时间-频率”窗口,是进行信号时频分析和处理的理想工具。它的主要特点是通过变换能够充分突出问题某些方面的特征,因此,小波变换在许多领域都得到了成功的应用,特别是小波变换的离散数字算法已被广泛用于许多问题的变换研究中。从此,小波变换越来越引起人们的重视,其应用领域来越来越广泛。




3.MATLAB核心程序

登录后复制

 
figure;
subplot(211);
plot(Timesa,ay1,'b');
hold on
plot(Timesa(locsy1),ay1(locsy1),'ro'); 
hold on
plot(Timesa(indxy1),ay1(indxy1),'k*'); 
hold on
stem(Timesa(locsy1),ay1(locsy1),'ro')
xlabel('time');
ylabel('ay');
subplot(212);
plot(Timesa,az1,'b');;
hold on
plot(Timesa(locsz1),az1(locsz1),'ro');
hold on
plot(Timesa(indxz1),az1(indxz1),'k*');
hold on
stem(Timesa(locsz1),az1(locsz1),'ro')
xlabel('time');
ylabel('az');
 
Tay1  =[Timesa(locsy1)]';
Tby1  =[Timesa(indxy1)]';
Ay1  =[ay1(locsy1)]'; 
........................................................................
for i = 1:length(p1)-1
    diff1(1,i)=p1(i+1)-p1(i);
    diff2(1,i)=p2(i+1)-p2(i);
end
5*mean(diff1)
5*mean(diff2)
 
ay=mean(sqrt(ax1(locsz1).^2 + ay1(locsz1).^2 + az1(locsz1).^2))
end
if sel == 2
figure;
subplot(211);
plot(Times2,ay2,'b');
hold on
plot(Times2(locsy2),ay2(locsy2),'ro');
hold on
plot(Times2(indxy2),ay2(indxy2),'k*');
hold on
stem(Times2(locsy2),ay2(locsy2),'ro')
xlabel('time');
ylabel('ay');
subplot(212);
plot(Times2,az2,'b');;
hold on
plot(Times2(locsz2),az2(locsz2),'ro');
hold on
plot(Times2(indxz2),az2(indxz2),'k*');
hold on
stem(Times2(locsz2),az2(locsz2),'ro')
xlabel('time');
ylabel('az');
ptime1 = Times2(locsy2);
ptime2 = Times2(indxz2);
for i = 1:length(ptime1)-1
    diff1(1,i)=ptime1(i+1)-ptime1(i);
    diff2(1,i)=ptime2(i+1)-ptime2(i);
end
2*mean(diff1)
2*mean(diff2)
% figure;
% plot(ptime1-ptime2);
 
...................................................................
for i = 1:length(ptime1)-1
    diff1(1,i)=ptime1(i+1)-ptime1(i);
    diff2(1,i)=ptime2(i+1)-ptime2(i);
end
2*mean(diff1)
2*mean(diff2)
figure;
plot(ptime1-ptime2);
 
p1=Times2(indxy2(4:end));
p2=Times2(indxz2);
for i = 1:length(p1)-1
    diff1(1,i)=p1(i+1)-p1(i);
    diff2(1,i)=p2(i+1)-p2(i);
end
5*mean(diff1)
5*mean(diff2)
ay=mean(sqrt(ax3(locsz3).^2 + ay3(locsz3).^2 + az3(locsz3).^2))
end





免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空