0

MATLAB を使用して、1KHz の純音を 50ms 含む WAV ファイルを作成しました。このトーンは、2m 離れた 2 つのスピーカーで同時に再生します。スピーカーの1つの真正面にマイクが配置されているため、他のスピーカーから2m離れています。

したがって、マイクロフォンは 1KHz トーンを約 6ms の遅延で録音します (音速 ±343m/s、2m 間隔)。

録音した音と原音を使って、スピーカー間の実際の遅延時間を計算したい

% Create pure tone: 1000Hz, 150ms
Fs      = 48828.125;
Freq    = 1000; %Hz
duration= 50; %ms
N       = round( duration / 1000 * Fs );
Fn      = Fs/2;
sig     = cumsum( ones( 1, N ) ) - 1;
sig     = sig / Fs;
snd     = sin( 2 * pi * Freq * sig);

% Possible recording: Time delay of 6ms
timedly = round( 6 / 1000 * Fs ); % 6ms time delay between speakers
rec     = [snd zeros(timedly,1)'] + [zeros(timedly,1)' snd] * 0.75; % second speaker will be recorded softer
rec     = rec + randn( 1, length(rec) ) * 0.2; % Add some noise
plot( rec )

元のサウンド ファイルに基づいてフィルターを作成し、これを録音されたサウンドに適用することを考えていました。それは理にかなっていますか、それとも別の方向で解決策を探す必要がありますか?

4

0 に答える 0