マイク#
解析対象#
バイク#
- 1100rpm


- 5000rpm


- Revving


ブルーインパルス#

使用環境#
- MATLAB R2020a
- Signal Processing Toolbox
ソースコード#
clear all;
close all;
clc;
% ファイル名
filename = 'filename';
% オーディオファイルに関する情報取得
info = audioinfo(filename)
% オーディオファイル読み込み(5秒分だけ)
samples = [1,5*info.SampleRate];
[y,Fs] = audioread(filename,samples,'double');
% ステレオ→モノラル
if size(y,2)
yMono = sum(y,2) / size(y,2);
y = yMono;
end
% 振幅グラフ
subplot(2,1,1);
plot(0:1/Fs:(length(y)-1)/Fs,y);
xlabel('Time (seconds)');
ylabel('Amplitude');
ylim([-1.5 1.5]);
% スペクトログラム
Nw = 4096; % フレーム長
No = 1024; % フレームシフト長(オーバーラップ1/4)
subplot(2,1,2);
spectrogram(y,Nw,No,Nw,Fs,'yaxis');
ax = gca;
ax.YScale = 'log'; % 対数表示
xlabel('Time (seconds)');
ylabel('Frequency (kHz)');
% カラーバー位置変更
colorbar('off');
c = colorbar('east');
c.Label.String = 'Power/frequency (dB/Hz)';
% サブプロットのタイトル
sgt = sgtitle(filename,'Color','red');
sgt.FontSize = 16;
% グラフを保存
[filepath,name,ext] = fileparts(filename);
saveas(gcf,strcat(name,'.png'));
% オーディオファイル再生
playerObj = audioplayer(y,Fs);
play(playerObj);