时频分析方法的matlab实现

news/2025/1/15 22:59:09/

傅里叶变换 

function [ output_args ] = example3_7( input_args )
%EXAMPLE3_7 Summary of this function goes here
%   Detailed explanation goes here
clc;
clear;
fs=12800;%采样频率
s1=load('Sig1.txt');
s2=load('Sig2.txt');
ls=length(s1);   
figure(1)
subplot(211)
plot(s1);
title('正常振动信号');xlim([1 ls]);
xlabel('采样点数');ylabel('幅值');
subplot(212)
plot(s2);
xlabel('采样点数');ylabel('幅值');
title('漏油振动信号');xlim([1 ls]);
%%%%进行短时傅里叶变换
nfft=1024;        %fft点数 
[tfr,t,f]=tfrstft(s1,1:ls,nfft); %对正常信号进行短时傅里叶变换
[a,b]=size(tfr);
y=(1:a)./nfft*fs;%实际频率
x=(1:b);
figure(2)
subplot(211)
contour(x,y(1:nfft/2),abs(tfr(1:nfft/2,:))); 
xlabel('采样点数');ylabel('频率/Hz');colorbar
title('正常振动信号时频分布');
[tfr,t,f]=tfrstft(s2,1:ls,nfft); %对漏油信号进行短时傅里叶变换
[a,b]=size(tfr);
subplot(212)
contour(x,y(1:nfft/2),abs(tfr(1:nfft/2,:))); 
xlabel('采样点数');ylabel('频率/Hz');colorbar;
title('漏油振动信号时频分布');
end

小波变换

function [ output_args ] = example4_1( input_args )
%EXAMPLE4_1 Summary of this function goes here
%   Detailed explanation goes here
clc;
clear;
fs=1000;
t=0:1/fs:1;
s = chirp(t,30,1,500,'q');% 线性调频仿真信号
figure(1)
plot(t, s)
xlabel('时间t/s');ylabel('幅值');
% 连续小波变换时频图
wavename='cmor3-3';%复morlet小波
totalscal=256;
Fc=centfrq(wavename); % 小波的中心频率
c=2*Fc*totalscal;
scals=c./(1:totalscal);
f=scal2frq(scals,wavename,1/fs); % 将尺度转换为频率
coefs=cwt(s,scals,wavename); % 得到连续小波系数
figure(2)
imagesc(t,f,abs(coefs));
set(gca,'YDir','normal')
colorbar;
xlabel('时间 t/s');
ylabel('频率 f/Hz');
title('小波时频图');
% 短时傅里叶变换时频图
f = 0:fs/2;
tfr = tfrstft(s');
tfr = tfr(1:floor(length(s)/2), :);
figure(3)
imagesc(t, f, abs(tfr));
set(gca,'YDir','normal')
colorbar;
xlabel('时间 t/s');
ylabel('频率 f/Hz');
title('短时Fourier变换时频图');end

原信号 

 

 

 

 


http://www.ppmy.cn/news/987161.html

相关文章

OSI 7层模型 TCPIP四层模型

》Ref: 1. 这个写的嘎嘎好,解释了为啥4层7层5层,还有数据包封装的问题:数据包在网络中的传输过程详解_数据包传输_张孟浩_jay的博客-CSDN博客 2. HTTP协议 与 TCP协议 的区别,作为web程序员必须要懂 - 知乎 (zhihu.com) 3. 数据…

数据结构--循环队列、链队

基础知识 //循环队列数据结构 typedef struct { QElemType data[MaxQSize];//数据域 int front,rear; //队头队尾指针 }SqQueue; //链队结点数据结构 typedef struct QNode { int data;//数据域 struct QNode* next;//指针域 }QNode, * QueuePtr; typedef struct { struct Q…

力扣 738. 单调递增的数字

题目来源:https://leetcode.cn/problems/monotone-increasing-digits/description/ C题解:像1234就可以直接返回1234,像120需要从个位往高位遍历,2比0大,那么2减一成为1,0变成9,变成119。 clas…

行为型-状态模式(State Pattern)

概述 状态模式是一种行为设计模式,它可以让对象在内部状态改变时改变它的行为。简而言之,状态模式允许对象在不同状态下更改其行为,而不需要通过使用大量的条件语句进行手动更改。 优点: 状态模式将与特定状态相关的行为分散到…

Flutter:flutter_local_notifications——消息推送的学习

前言 注: 刚开始学习,如果某些案例使用时遇到问题,可以自行百度、查看官方案例、官方github。 简介 Flutter Local Notifications是一个用于在Flutter应用程序中显示本地通知的插件。它提供了一个简单而强大的方法来在设备上发送通知&#…

MySQL 8.0详细安装配置教程

一. 前言 MySQL是目前最为流行的开源数据库产品,是完全网络化跨平台的关系型数据库系统。它起初是由瑞典MySQLAB公司开发,后来被Oracle公司收购,目前属于Oracle公司。因为开源,所以任何人都能从官网免费下载MySQL软件&#xff0c…

机器学习分布式框架ray tune笔记

Ray Tune作为Ray项目的一部分,它的设计目标是简化和自动化机器学习模型的超参数调优和分布式训练过程。Ray Tune简化了实验过程,使研究人员和数据科学家能够高效地搜索最佳超参数,以优化模型性能。 Ray Tune的主要特点包括: 超参…

P3059 [USACO12NOV] Concurrently Balanced Strings G 题解

前言 现在是 2023 2023 2023 年 7 7 7 月 29 29 29 日凌晨 1 1 1 点 47 47 47 分,我听着我歌单的歌,进入了精神极其不正常的状态(正经人谁在凌晨边听摇滚边写题啊)。 所以我会胡言几句,大家请选择性忽视。 这道…