zoukankan      html  css  js  c++  java
  • 程序集合

    1. 小波变换

    程序1

    %%% 小波变换  %%%%%%
    
    %% 导入数据
    clc,clear
    close all;
    
    fs=1000;
    t=0:1/fs:2;
    f1=100;
    f2=50;
    s=sin(2*pi*f1*t)+sin(2*pi*f2*t);
    
    %% 画出图像
    figure (1);    %  时程信号绘图
    plot(t,s); 
    xlabel('t');
    ylabel('幅值');
    legend('正弦波');
    grid on;
    set(gcf,'color','white');       % 刷白
    saveas(gcf,'1.jpg');
    
    %% 小波变换
    wavename='cmor3-3';
    totalscal = 2048;
    wcf = centfrq(wavename);        % 小波的中心频率
    cparam = 2*wcf*totalscal;       % 为得到合适的尺度所求出的参数
    a = totalscal:-1:0.2; 
    scal = cparam./a;  % 得到各个尺度,以使转换得到频率序列为等差序列
    coefs=cwt(s,scal,wavename);      % 得到小波系数
    f=scal2frq(scal,wavename,1/fs);    % 将尺度转换为频率
    
    
    %% 绘制小波图像
    figure(2);                       % 占用子图位置
    % contour(t,f,abs(coefs));       % 设置等值线
    imagesc(t,f,abs(coefs));         % 绘制色谱图
    colorbar;                        % 设置色条
    xlabel('时间 t/mus');           % 时间轴
    ylabel('频率 f/Hz');             % 频域显示
    title('小波变换');               % 标题
    set(gca, 'YDir', 'normal')       % 频域轴翻转
    set(gcf,'color','white');        % 刷白
    saveas(gcf,'2.jpg');
    

    1.jpg-105.6kB
    2.jpg-32.8kB

    程序2

    %%% 小波变换  %%%%%%
    
    %% 导入数据
    clc,clear
    close all;
    fs=1000;
    t=0:1/fs:2;
    f1=100;
    f2=50;
    s=sin(2*pi*f1*t.*(t>0&t<=1))+sin(2*pi*f2*t.*(t>1&t<2));
    
    %% 绘制初始图像
    figure (1);    %  时程信号绘图
    plot(t,s); 
    xlabel('t');
    ylabel('幅值');
    legend('正弦波');
    grid on;
    set(gcf,'color','white');       % 刷白
    saveas(gcf,'1.jpg');
    
    %% 小波变换
    wavename='cmor3-3';
    totalscal = 2048;
    wcf = centfrq(wavename);        % 小波的中心频率
    cparam = 2*wcf*totalscal;       % 为得到合适的尺度所求出的参数
    a = totalscal:-1:0.2; 
    scal = cparam./a;  % 得到各个尺度,以使转换得到频率序列为等差序列
    coefs=cwt(s,scal,wavename);      % 得到小波系数
    f=scal2frq(scal,wavename,1/fs);    % 将尺度转换为频率
    
    %% 绘制小波图像
    figure(2);                       % 占用子图位置
    % contour(t,f,abs(coefs));       % 设置等值线
    imagesc(t,f,abs(coefs));         % 绘制色谱图
    colorbar;                        % 设置色条
    xlabel('时间 t');           % 时间轴
    ylabel('幅值');             % 频域显示
    title('小波变换');               % 标题
    set(gca, 'YDir', 'normal')       % 频域轴翻转
    set(gcf,'color','white');        % 刷白
    saveas(gcf,'2.jpg');
    

    1.jpg-113.6kB
    2.jpg-29.5kB

    程序3

    %%%%%%%%%%%%%% 小波变换  %%%%%%%%%%%%%%%%%%%%%%% 
    
    %% 导入数据
    clc,clear
    close all;
    
    fullname = '10.csv';  
    M = csvread(fullname,8);     % 读入csv信号
                                                                        
    t= M(:,1);                     % 第一列,时间
    dt=1E-7;                       % 采样时间
    fs = 1/dt;                     % 采样频率
    w = M(:,2);                    % 第二列,位移
    
    %% 画出初始图像
    figure (1);                    % 时程信号绘图
    plot(t,w); 
    xlabel('t /mus');
    ylabel('位移 / mm');
    legend('位移');
    grid on;
    set(gcf,'color','white');       % 刷白
    saveas(gcf,'1.jpg');
    
    %% 小波变换
    wavename='morl';
    totalscal = 2048;
    wcf = centfrq(wavename);        % 小波的中心频率
    cparam = 2*wcf*totalscal;       % 为得到合适的尺度所求出的参数
    a = totalscal:-1:0.2; 
    scal = cparam./a;                % 得到各个尺度,以使转换得到频率序列为等差序列
    coefs=cwt(w,scal,wavename);      % 得到小波系数
    f=scal2frq(scal,wavename,1/fs);    % 将尺度转换为频率
    
    %% 绘制小波图像
    figure(2);                       % 占用子图位置
    % contour(t,f,abs(coefs));         % 设置等值线
    imagesc(t,f,abs(coefs));         % 绘制色谱图
    colorbar;                        % 设置色条
    xlabel('时间 t/mus');           % 时间轴
    ylabel('频率 f/Hz');             % 频域显示
    title('小波变换');               % 标题
    axis([0,30,5e3,1e6]);            %设置x,y轴范围
    set(gca, 'YDir', 'normal')       % 频域轴翻转
    set(gcf,'color','white');        % 刷白
    saveas(gcf,'2.jpg');
    

    1.jpg-33.8kB
    2.jpg-35.4kB

    程序4

    t = 0:1/2000:1-1/2000;
    dt = 1/2000;
    x1 = sin(50*pi*t).*exp(-50*pi*(t-0.2).^2);
    x2 = sin(50*pi*t).*exp(-100*pi*(t-0.5).^2);
    x3 = 2*cos(140*pi*t).*exp(-50*pi*(t-0.2).^2);
    x4 = 2*sin(140*pi*t).*exp(-80*pi*(t-0.8).^2);
    x = x1+x2+x3+x4;
    figure;
    plot(t,x)
    title('Superimposed Signal');
    figure;
    cwt(x,2000);
    title('Analytic CWT using Default Morse Wavelet');
    

    abc.png-14.4kB
    a1c.png-38.3kB

    2. 短时傅立叶变换

    程序1

    %% 导入数据
    clc,clear
    close all;
    
    fullname = '10.csv';  
    M = csvread(fullname,8,0);     % 读入csv信号
                                                                        
    t= M(:,1);                     % 第一列,时间
    dt=1E-7;                       % 采样时间
    fs = 1/dt;                     % 采样频率
    w = M(:,2);                    % 第二列,位移
    
    %% 画出初始图像
    figure (1);                    % 时程信号绘图
    plot(t,w); 
    xlabel('t /mus');
    ylabel('位移 / mm');
    legend('位移');
    grid on;
    set(gcf,'color','white');       % 刷白
    saveas(gcf,'1.jpg');
    
    %% STFT
    win=128;
    nooverlap=win-2;
    nfft=128;
    [S,F,T] = spectrogram(w,win,nooverlap,nfft,fs);
    imagesc(t,w,abs(S));
    saveas(gcf,'2.jpg')
    axis([0,30,-0.5e-5,0])
    

    1.jpg-33.8kB
    2.jpg-20.2kB

    程序2

    %% 导入数据
    clc,clear
    close all;
    
    fullname = '10.csv';  
    M = csvread(fullname,8,0);     % 读入csv信号
                                                                        
    t= M(:,1);                     % 第一列,时间
    dt=1E-7;                       % 采样时间
    fs = 1/dt;                     % 采样频率
    w = M(:,2);                    % 第二列,位移
    
    %% 画出初始图像
    figure (1);                    % 时程信号绘图
    plot(t,w); 
    xlabel('t /mus');
    ylabel('位移 / mm');
    legend('位移');
    grid on;
    set(gcf,'color','white');       % 刷白
    saveas(gcf,'1.jpg')
    

    1.jpg-33.8kB
    2.jpg-93.4kB
    3.jpg-37.3kB

  • 相关阅读:
    变量的创建和初始化
    HDU 1114 Piggy-Bank (dp)
    HDU 1421 搬寝室 (dp)
    HDU 2059 龟兔赛跑 (dp)
    HDU 2571 命运 (dp)
    HDU 1574 RP问题 (dp)
    HDU 2577 How to Type (字符串处理)
    HDU 1422 重温世界杯 (dp)
    HDU 2191 珍惜现在,感恩生活 (dp)
    HH实习 acm算法部 1689
  • 原文地址:https://www.cnblogs.com/kolane/p/11537938.html
Copyright © 2011-2022 走看看