zoukankan      html  css  js  c++  java
  • 小波分析 检测 跳变点

    %wavlet break detection
    %清除以前的数据
    clear;
    close all;
    %载入原始信号的波形数据
    load freqbrk;%幅度明显跳变,第一类跳变点
    %显示数据的基本信号
    whos;
    figure;
    plot(freqbrk);
    %自定义坐标轴
    xlabel('时间'); ylabel('幅值');
    %自定义标题
    title('频率突变信号');

    %对信号进行傅里叶变换
    f=fft(freqbrk);
    figure;
    %显示处理后的信号图像
    plot(abs(f));
    %自定义标题
    title('傅里叶变换后的信号示意图');
    %对原始信号进行三层小波分解
    [d,a]=wavedec(freqbrk,3,'db5');
    %重构第三层近似系数
    a3=wrcoef('a',d,a,'db5',3);
    %重构第1层到第3层细节系数
    d3=wrcoef('d',d,a,'db5',3);
    d2=wrcoef('d',d,a,'db5',2);
    d1=wrcoef('d',d,a,'db5',1);

    figure;
    subplot(411); plot(a3); ylabel('近似信号 a3'); %显示各层小波系数
    subplot(412); plot(d3); ylabel('近似信号 d3'); %显示各层小波系数
    subplot(413); plot(d2); ylabel('近似信号 d2'); %显示各层小波系数
    subplot(414); plot(d1); ylabel('近似信号d1'); %显示各层小波系数
    xlabel('时间');


    %%%%%%%%%%%%%%%%%%%%%%%%第二类跳变点,一阶微分跳变
    clear;
    load nearbrk;
    x=nearbrk;
    %使用db4对信号进行2层分解。
    [c,l]=wavedec(x,2,'db4');
    figure
    subplot(411);
    plot(x);
    ylabel('x');
    %对分解的第六层低频系数进行重构
    a=wrcoef('a',c,l,'db4',2);
    subplot(412);
    plot(a);
    ylabel('a2');
    for i=1:2
    %对分解的第2层到第1层的高频系数进行重构
    d=wrcoef('d',c,l,'db4',3-i);
    subplot(4,1,i+2);
    plot(d);
    ylabel(['d',num2str(3-i)]);
    end

    不同层重构后的信号,可以用于定位和检测。

    另外,结合希尔伯特变换获取包络,分析走势

  • 相关阅读:
    javascript中获取dom元素高度和宽度
    $.ajax()方法详解
    JQ中$(window).load和$(document).ready区别与执行顺序
    第几个幸运数
    乘积尾零
    星期一
    分数
    卡片换位
    冰雹数
    打印方格
  • 原文地址:https://www.cnblogs.com/welen/p/6142341.html
Copyright © 2011-2022 走看看