Я генерирую звук с помощью matlab, а затем воспроизводю его через компьютерный динамик, в то время как я записываю звук с использованием iphone, наконец, я отправляю файл 'record.wav' на компьютер, чтобы проанализировать его. Но здесь я обнаружил, что амплитуда низкой частоты намного ниже, чем у высокой частоты.
Код генерации звука выглядит как A*sin(2*pi*697*(0:N-1)/44100)+A*sin(2*pi*1209*(0:N-1)/44100
, если я хочу сгенерировать тональный сигнал готовности для номера 1, N - это длина что я хочу сгенерировать, а 44100 - это частота дискретизации.
Затем я хочу использовать БПФ для анализа частоты звука и построить вывод БПФ . Хотя я получаю правильную частоту, которую хочу, амплитуда выглядит по-другому, что меня очень озадачивает.
Итак, что случилось? Почему две амплитуды разные?
[temp,fs] = audioread('record.wav');
[P1,f] = fft_recorder(temp,fs);
function [P1,f] = fft_recorder(array,fs)
array = fft(array);
P2 = abs(array/length(array));
P1 = P2(1:length(array)/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = fs*(0:(length(array)/2))/length(array);
end