* ファイル(*.m)に関数を定義して実行する
wavファイルを読み込んで、FFTをかけてグラフ表示する関数の例。一行目の関数宣言には、複数の出力変数・入力変数を指定可能:
function [出力変数] = 関数名(入力変数)ファイル名は関数名と合わせることが推奨されている。
function[Y, Fs] = sample_func(wavefile)---------------------------
disp('sample_func() returns FFT spectrum & sample rate')
info = audioinfo(wavefile)
[y,Fs] = audioread(wavefile);
Y=fft(y);
L = info.SampleRate
T = 1/Fs;
t = (0:L-1)*T;
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f=Fs*(0:L/2)/L;
subplot(2,1,1)
title('spectrum')
xlabel('(Hz)')
plot(f,P1)
subplot(2,1,2)
title('magnified 500Hz-700Hz')
xlabel('(Hz)')
grid on
plot(f(500:700),P1(500:700))
end
* .mファイルに定義した関数を実行する
sample_func.mで定義したsample_func関数を実行する例。ローカルディレクトリにある.mファイルが自動的に読み込まれる。
>> file='sin660.wav'
>> Y=sample_func(file);
0 件のコメント:
コメントを投稿