我有一个代表马达声音的音频文件。我一直在读到“正常”fft 不能提供有关机器的有值(value)分析,我应该使用阶次分析来描述机器的“行为”。我在增加速度的同时记录了它的声音,然后将记录放在一起并计算了它的频谱图。下面是代码:
%% read the Audio file and plot its
clear, clc , clf;
M = 512;
k =1
data= 0 ;
for i =100:5:180
fileName =['A10_uSp0_Mic100k_2nd_V_',int2str(i),'.wav']
[x(:,k),Fs] = audioread(fileName);
k = k+1 ;
end
for i = 1:length(x(1,:))
data = [data(:);x(:,i)];
end
k = length(x(1,:));
while k ~= 2
data = [data(:);x(:,k)];
k = k -1;
end
spectrogram(data,hamming(M),M/2,0:20:4000,Fs,'yaxis');
结果如下:
如您所见,我在每个时间点将机器的速度提高了 5。我的问题是如何计算这个系统的订单分析!? 非常感谢您的帮助!
最佳答案
这更像是一个科学问题,而不是关于编程的问题。可以使用傅立叶变换进行阶次分析。您需要做的就是寻找输出中的对角线,即噪声频率与转速成正比的地方。
在您的示例图像中,有这样一个顺序,从时间(速度)0 的 2000 Hz 到时间(速度)150 的 4000 Hz。之后它似乎向下反射,可能是采样不足的产物。
那么是哪个顺序呢?为此,您需要知道您似乎不知道的电机转速。还有另一个较弱的顺序,从 3000 Hz 开始,时间(速度)0。使用两个或更多可见顺序,您可能能够推断出电机的转速(通过要求频率是原始速度的整数倍) .
无论如何,除了更高的频率分辨率外,代码可能不需要更改。
关于matlab - 如何在MATLAB中实现阶次分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22894679/