Я пытаюсь получить кривую частотного отклика от микрофона, который я подключил к своему компьютеру, используя matlab.Получение частотной характеристики моего микрофона
Я думаю, что я довольно близко получаю окончательный код, но я думаю, что я что-то упустил.
Это то, что я прямо сейчас:
close all, clear all, clc
x = 5; % seconds recording
Fs = 44100; % Sampling frequency
T = 1/Fs; % Sample time
L= x*1000; % Length of signal
t = (0:L-1)*T; % Time vector
% Record your voice for 'x' seconds.
recObj = audiorecorder(Fs, 24, 1);
disp('Start of Recording.');
recordblocking(recObj, x);
disp('End of Recording.');
% Store data in double-precision array.
myRecording = getaudiodata(recObj);
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
fourier = fft(myRecording);
Y = fft(myRecording,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
X = 2*abs(Y(1:NFFT/2+1));
samples = get(recObj,'TotalSamples');
plot(f,X)
title('Single-Sided Amplitude Spectrum)
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
Эта часть кода является правильным, я думаю. Например, когда я играю тон 5kHz я получаю этот сюжет:
Теперь я играю розовый шум, и добавить эту небольшую часть кода, чтобы преобразовать его в дБ, так что я могу получить кривую частотную характеристику:
dbX = db(X);
plot(f,dbX)
Я ожидаю (или моя цель ..) кривая частотной характеристики (как вы можете найти на Google картинки, например, у меня не хватает репутации более 2 ссылок, так жаль, что я Ждут» t используйте ссылку на картинку здесь), но я получил это вместо:
Очевидно, что я делаю что-то неправильно, но я не знаю, что ..
Хм, я мало что знаю об этом, но почему этот розовый шум часто ошибочен? что вы ожидаете? –
Моя цель - получить что-то вроде этого: http://www.acoustics.salford.ac.uk/acoustics_info/microphones/microphones_files/image013.jpg Шахта даже не около 0 дБ, или нет плоской линии или чего-то еще .. –
Это будет просто вопрос масштабирования, сигнала. Также обратите внимание, что в сюжете говорится «относительный ответ». – mpaskov