Почему частотные спектры меняются при изменении частоты дискретизации?

Вот мой код для генерации треугольной формы волны во временной области и для генерации соответствующей серии / преобразования Фурье (я не знаю, является ли эта серия или преобразование, потому что Matlab имеет только функцию преобразования Фурье, но поскольку сигнал является периодическим, ссылки говорят, что аналог Фурье следует называть рядом Фурье).

x = 0;
s = 50; % number of sinusoidal components
fs = 330; % hertz
dt = 1/fs;  % differential time
t = [0:dt:4];  % seconds
const = 2 / (pi^2);

for k = 1:2:s,
   x = x + (((-1)^((k - 1) / 2)) / (k^2)) * sin(4*pi*k*t);
end

x = const * x;

% amplitude = max(x) = 0.2477
% period = 0.5 seconds

f = linspace(-fs/2,fs/2,length(x));
xk = fftshift(fft(x));
figure;

subplot(3,1,1);
plot(t,x);
grid on;
xlabel('time(seconds)');
title('Time Domain');

subplot(3,1,2);
plot(f,abs(xk));
grid on;
xlabel('frequency(hertz)');
title('Magnitude Spectrum');

subplot(3,1,3);
plot(f,angle(xk));
grid on;
xlabel('frequency(hertz)');
title('Phase Spectrum');

А вот сгенерированные графики для сигнала во временной области, амплитудного и фазового спектра.

ссылка: fs = 330hz

Моя проблема в том, что когда я изменил частоту дискретизации (fs, которая в настоящее время равна 330 Гц) на другое значение, графики амплитуды и фазового спектра меняются.

Вот графики амплитудного и фазового спектров при частоте дискретизации 400 Гц:

ссылка: fs = 400 hz

Вы можете объяснить, почему это происходит? И что я могу сделать, чтобы получить постоянные графики амплитудного и фазового спектров при любой частоте дискретизации?


person Mahrrkiee    schedule 05.06.2015    source источник


Ответы (2)


Я не могу загрузить ваши изображения через мой прокси, но спектр БПФ будет иметь больший «промежуток» посередине при более высокой частоте дискретизации. Фундаментальным свойством выборки является то, что она представляет копии исходного спектра; возможно, вы узнали это, если изучили дискретное преобразование Фурье. При более высокой частоте дискретизации эти копии находятся дальше друг от друга.

Кроме того, ваши точки выборки будут находиться в разных местах с разной частотой дискретизации, поэтому вы можете получить различное поведение долей.

Между прочим, вы получаете дискретное преобразование Фурье в Matlab - вы даете ему конечную последовательность дискретных точек, а не непрерывный, бесконечно длинный сигнал.

Если вы хотите, чтобы графики выглядели одинаково, просто совместите их оси x.

person rlbond    schedule 05.06.2015

Это связано с тем, что спектры с помощью DFT / FFT действительно являются дискретизированной и нормализованной версией исходных аналоговых спектров, следовательно, с изменением шага дискретизации, шаг дискретизации в частотной области также изменяется, таким образом, линии спектра, которые вы видите, также изменяются, поскольку исходные спектры непостоянны. Другим фактором могут быть эффекты наложения спектров, поскольку аналоговые спектры треугольной формы волны теоретически бесконечны.

person lxg    schedule 05.06.2015