程序集合

≯℡__Kan透↙ 提交于 2019-11-29 22:28:10

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');


程序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');


程序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');


程序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');


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])


程序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')



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!