Я пытаюсь построить фазовый спектр синусоидальной волны с Matlab. Ниже я прикладываю код, я не могу присоединить диаграммы из-за отсутствия репутации. Поскольку спектр амплитуды кажется хорошим, фазовый спектр кажется некорректным, это похоже на шум. Вы знаете, почему?Фазовый спектр синусоидальной волны с Matlab
clear all;
fs=8000;
l=1000;
t=1/fs*(1:l);
x1=sin(2*pi()*1000*t);
spec_x1=fft(x1,1000);
magnitude=2*abs(spec_x1)/l;
phase=angle(spec_x1)*180/pi;
figure
plot(fs/2*linspace(0,1,500),magnitude(1:500));
title('Magnitude spectrum');
xlabel('F[Hz]');
ylabel('Magnitude');
figure
plot(fs/2*linspace(0,1,500),phase(1:500));
title('Phase spectrum');
xlabel('F[Hz]');
ylabel('Phase [degrees]');
большое спасибо. это была проблема. У меня есть еще один вопрос: я сделал сигнал, который представляет собой сумму четырех синусоид: 'x1 = sin (2 * pi() * 1000 * t); x2 = sin (2 * pi() * 2000 * t); x3 = cos (2 * pi() * 3000 * t); x4 = sin (2 * pi() * 3500 * t); x5 = x1 + x2 + x4 + x3; ' Когда я построил спектр амплитуды x5, я получил четыре пика. Три из них имеют одинаковое значение = 1, а четвертый (для 3500 Гц) имеет значение около 0,65. В чем причина? Разве они не должны иметь одинаковые значения, так как амплитуды синусоидов одинаковы? – Pawel
Когда вы повышаете частоту синусоиды до 4000 Гц (частота Найквиста), представление синусоиды менее точное, что приводит к «размазыванию» энергии в более широком диапазоне спектральных компонентов. Обратите внимание, что по мере того, как пик становится ниже, соседние компоненты имеют возрастающие амплитуды. Полная энергия синусоиды одинакова, но она получает больше частот в результате ее менее точного представления. Если вы построите (t, x4) 'и увеличите масштаб, вы увидите эту неточность. Другими словами, часть синусоида превращается в шум, и вы видите этот спектр шума на частотном графике. –