今回は、MATLABを用いてオーディオファイルの波形表示を行います。
目次
コード例
以下に、コード例を示します。
clear;
filepath = fullfile("..", "data", "sample.wav");
[signal, fs] = audioread(filepath);
[nSamples, nChannels] = size(signal);
Ts = (1/fs); % サンプリング周期
time = (0:nSamples-1)*Ts; % 時間ラベル
for iChannel=1:nChannels
subplot(nChannels, 1, iChannel);
plot(time, signal(:, iChannel));
title(sprintf("%d-ch", iChannel));
xlabel("Time [s]");
ylabel("Amplitude");
end
音声信号を波形表示するにはplot関数を使用します。
subplot関数は複数のプロットを描画したい場合に用います。
subplot(m, n, i)はfigureをm 行n烈のグリッドに分割し、i番目のグリッドに描画します。
今回はチャンネルごとの信号を縦に並べることにします。その場合、13行目の処理になります
MATLABには、stackedpltoというプロットを簡単に縦に並べることができる関数があるのですが、今回はplotとsubplotで実現しています。
time変数は時間ラベルの作成を行っています。
実行例
今回は、モノラル音源はJVSコーパス、ステレオ音源はotosozai.comからお借りしました。
以下、実行例を示します。
まず、モノラル音源に対して上記のプログラムを実行すると、以下のように音声波形が表示されます。
次に、ステレオ音源に対して上記のプログラムを実行すると、以下のように音声波形が表示されます。
まとめ
今回は、オーディオファイルの波形表示をMATLABを用いて行いました。
subplot, plot関数を用いると音声波形を表示することができます。
コメント