Я хочу проанализировать звуки из машины с микрофоном, подключенным к плате DAQ, для сбора данных.Данные хранятся в файле Excel, а затем я хочу прочитать эти данные в MATLAB и выполнить БПФ, чтобы увидеть, какие частоты вызывают наибольшую амплитуду шума.Чтобы протестировать свою систему, я подал некоторые известные частоты в DAQ через генератор функций.Однако когда я передаю сигнал 400 Гц от генератора функций в DAQ, собираю данные, загружаю их в MATLAB и отображаю их на графике, я не вижу никаких тонов при 400 Гц, только некоторые на более высоких частотах.Это проблема с моим кодом?
y = xlsread('TrialExcel400HzOscilloscope.xlsx');
y = detrend(y);
n = length(y);
Fs = 48000;
nfft = 4096;
Ts = 1/Fs;
t = 0:Ts:(n*Ts)-Ts;
numUniq = ceil((nfft+1)/2);
f = (0:numUniq-1)'*Fs/nfft;
figure(1)
hAx(1) = subplot(211);
hLine(1) = line('XData',t,'YData',nan(size(t)), 'Color','b', 'Parent', hAx(1));
xlim([0 0.05]);
ylim([-10 10]);
xlabel('Time (s)');
ylabel('Amplitude (Volts)');
title('Time Domain');
hAx(2) = subplot(212);
hLine(2) = line('XData', f, 'YData', nan(size(f)), 'Color', 'b', 'Parent', hAx(2));
grid
xlim([0 25000]);
ylim([0 80]);
xlabel('Frequency (Hz)');
ylabel('Magnitude (dB)');
title('Frequency Domain');
a = 20*log10(abs(fft(y,nfft)));
set(hLine(1), 'YData',y);
set(hLine(2), 'YData', a(1:numUniq));