スピーカーを通して 20Hz から 20KHz のチャープを再生し、スピーカー出力サウンド ファイルを元の入力サウンド ファイルと比較することにより、スピーカーの周波数応答を取得しようとしています。これは私がこれまでに持っているものですが、プロットは私が期待するようには見えません. Y 軸は dB ではないようです。私も完全に間違っているかもしれません。どんな助けでも大歓迎です。ありがとう!
[y,fs] = wavread('LogChirp.wav');
[x,fs] = wavread('bose sweep 2 feet.wav');
y = reshape([y;zeros(145824-144000,1)],145824,1);
ydft = fft(x)./fft(y);
% Assume y has even length
ydft = ydft(1:length(y)/2+1);
% create a frequency vector
freq = 0:fs/length(y):fs/2;
% plot magnitude
ydft1 = smooth(ydft,.1);
p = semilogx(freq,ydft1);
p = plot(freq,abs(ydft));
set(p, 'Color', 'blue', 'LineWidth', 1);
xlabel('Frequency (Hz)');
ylabel('');
title('Frequency Response');
grid on;
%axis([20,20e3,-1,1]);