%%%%%%傅里叶变换/逆变换/短时傅里叶变换%%%%%%

[y,Fs]=wavread('Noise.wav'); %读出信号,采样率和采样位数。
%sound(y,Fs);
y=y(:,1); %我这里假设你的声音是双声道,我只取单声道作分析,如果你想分析另外一个声道,请改成y=y(:,2)
figure(1)
sigLength=length(y); 
%
Nshow=sigLength/20; %显示的点数(频率段,因频谱对称只需一半内)
%
t=(0:length(y)-1)/Fs; %计算时间轴
subplot(3,1,1);plot(t,y);xlabel('Time(s)');%在第一个窗口画波形
grid on;

n=0:sigLength-1;
Y= fft(y,length(y)); %在sigLength这个有限区间内做快速傅立叶变换 
%mag=abs(Y);
f=Fs*n/sigLength;
subplot(3,1,2);plot(f(1:Nshow),abs(Y(1:Nshow)));
xlabel('Frequency(Hz)'); 
%在第一个窗口画率谱, 
grid on;

subplot(3,1,3);
xifft=ifft(Y);
%sound(real(xifft),Fs);
plot(t,xifft);xlabel('Time(s)')
grid on;

figure(2)
Nw=200          %窗函数长 window length
L=Nw/2;         %窗函数每次移动的样点数
Ts=round((sigLength-Nw)/L)+1;     %计算把数据y共分成多少段
nfft=512*5;        % FFT的长度
TF=zeros(Ts,nfft/20);  %将存放三维图谱,先清零 /20-add 只显示有用的频率
for i=1:Ts
    xw=y((i-1)*L+1:i*L+L);   %取一段数据
    temp=fft(xw,nfft);       % FFT变换
    %temp=fftshift(temp);     %频谱以0频为中心
    TF(i,:)=temp(1:nfft/20)';            %把谱图存放在TF中代表TF矩阵中的第i行 /20--add
end
fn=(1:nfft/20)*Fs/nfft; %/20--add 只显示一半的点
tn=(1:Ts)*Nw/2/Fs;
[T,F]=meshgrid(tn,fn);
mesh(T,F,abs(TF.'));  %三维绘图
axis tight;
title('三维时频图'); 
ylabel('Frequency(Hz)'); 
xlabel('Time(s)');

grid on;

用GoldWave截取出现异常噪声(变速箱啸叫)的部分音频,先用FFT及IFFT试试效果见下图:

再用STFT求音频的时频图,见下图。

下图为振动测试对应的时频图(上述截取的音频对应的时段约为27.7S-30S,对应的异常振动的频率为700HZ左右),进一步得到验证。另外,当发动机转速从1100-2000rpm,可以算出变速箱行星齿轮的啮合频率为400HZ-730HZ,从而可以推断:该高速啸叫是由于变速箱行星齿轮啮合产生。另外实际跟车做试验时,当直接档时,行星齿轮不工作,没有啸叫声,只要行星齿轮工作,并加载加速时,啸叫声立即出现。

matlab STFT从时频图找异常噪声的频率相关推荐

  1. MATLAB短时傅里叶变换并绘制时频图

    data=load('dataset/rawdata/eegdata4.mat'); Au=data.eegdata(:,1); Fs = 1200; [B, F, T, P] = spectrogr ...

  2. 基于小波时频图和2D-CNN的滚动轴承故障检测

    目录 一.研究思路 1.基于小波时频图和CNN的滚轴故障诊断方法的研究思路如下: 二.数据集介绍与数据处理 1.数据集介绍 2.数据集分割与合并 3.数据集分析 三.小波时频图导出 四.CNN网络的构 ...

  3. 信号时频图的横纵坐标对调

    博客1:如何翻转信号的时频图 论文有时候需要绘制信号的时频图.Matlab有专用的函数spectrogram可以用来帮助我们绘制信号的时频图.默认的图例是横轴为频率,纵轴为时间.如果希望将横轴和纵轴对 ...

  4. Python实现“EMD\EEMD\VMD+Hilbert时频图”与“CWT小波时频图”

    Python实现"EMD\EEMD\VMD+Hilbert时频图"与"CWT小波时频图"   信号处理中常需要分析时域统计量.频率成分,但不平稳信号的时域波形往 ...

  5. 基于FFT频谱与小波时频图的双流CNN轴承故障诊断模型

    在博客https://blog.csdn.net/qq_41043389/article/details/106150980里,我们提出了采用小波时频图作为轴承信号的故障特征数据,即首先利用提取各样本 ...

  6. python 绘制时频图 plt.specgram

    时频图以横轴为时间,纵轴为频率,用颜色表示幅值.在一幅图中表示信号的频率.幅度随时间的变化 matplotlib.pyplot.specgram(x, NFFT=None, Fs=None, Fc=N ...

  7. 融合DE 端和FE端数据,利用小波变换生成时频图,再分别利用DCNN、KNN和DNN进行对比实验(python代码)

    1.数据集介绍: 试验台如图所示,试验台左侧有电动机,中间有扭矩收集器,右侧有动力测试仪,控制电子设备在图中没有显示.SKF6203轴承使用16通道数据采集卡采集轴承的振动数据,并在驱动端部分(DE) ...

  8. python绘制时频图

    最近一直在做轴承RUL.在进行xinh信号处理上面遇见了很多的问题,想要用python进行信号时频图的绘制.但是在选择绘制图的函数上也是煞费苦心. 首先来说plt.imshow()函数,虽然他的功能强 ...

  9. hht时频图三维_HHT方法的原理

    HHT方法的原理 2.1 引言 经验模态分解方法(EMD)是 Norden E.Huang 等人[13]于 1998 年提出的,并将 Hilbert谱引入EMD方法,形成了今日的希尔伯特-黄变换(Hi ...

最新文章

  1. 开始阅读 深入理解计算机系统
  2. 学生创客 开公司造3D打印机
  3. cad在哪里设置图幅大小_一看就懂!菜鸟也能快速入门CAD,关键掌握这4个诀窍...
  4. selenium(2.4.0)中不能导出web drive 代码
  5. 简单的jQuery扩展函数-让函数缓冲执行
  6. python request timeout_Python - aiohttp请求不断超时(Python - aiohttp requests continuously time out)...
  7. 港股区块链概念股走强,火币科技涨超17%
  8. Kanban VS Scrum:哪个是最好的敏捷项目管理框架
  9. 一步一步教你安装Nginx+PHP+Mysql
  10. github库fork后,将更新提交到源库
  11. java基础学习总结_java基础班学习心得(感言)
  12. 生活随记 - NBA总决赛第6场 球迷有感
  13. 实习单位评价意见~实习鉴定
  14. 静态网页—制作“人人网首页”页面
  15. 案例剖析:关于优化外贸网店提高支付率
  16. Android接入微信分享视频和图片
  17. ServiceMesh和SideCar
  18. 二分类函数(机器学习)
  19. python培训班课程大纲_Python课程大纲
  20. linux mint 解压zip,Linux:压缩解压

热门文章

  1. CSS性能优化:可以试一试内联CSS?
  2. 当async/await遇上forEach
  3. 使用TDengine快速搭建运维监测系统
  4. 数据库面试 - 如何设计才可以让系统从未分库分表动态切换到分库分表上?
  5. 阿里巴巴集团的几十款著名开源项目(Java)
  6. 算法与数据结构题目汇总
  7. 《软件安装》VMware 安装 centos8
  8. mysql innodb引擎数据存储方式和索引的概念
  9. 字符串第一个出现的单个字符_如何在不编写单个应用程序的情况下找到我的第一个开发人员工作
  10. webpack和react_使用React和Webpack进行简单的代码拆分