Что на самом деле представляет ось х в этом преобразовании Фурье и как его преобразовать? - PullRequest
0 голосов
/ 10 октября 2018

Это вопрос для сдачи в одном из моих курсов, просто хочу заявить, что.

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

Fs = 100;
Ts = 1/Fs;
N = 8192;

Tmax = (N - 1)*Ts;
t = 0:Ts:Tmax;

x = square(t);
X = fft(x,N);

plot(t, abs(X))

То, что он возвращает, это график, который выглядит следующим образом

The graph

Это выглядитпочти как проверено, но так как я не знаю, чего ожидать от прямоугольной волны, я также пытаюсь сделать это с волной $ \ sin (2 * t) $.Если я возьму преобразование Фурье, я получу 2 зуба, каждый на 2 и -2 (справа).Но я получаю что-то вроде этого

Zoomed in on the interesting part

(Примечание! Я увеличил масштаб левой части графика, чтобы показать, что всплескне в 2) Как вы можете видеть, шип не там, где он должен быть.Тогда я могу сделать вывод, что, вероятно, 1-й график не является тем, каким он должен быть.

Что-то не так с моим представлением по оси x?И если да, то как мне преобразовать ось х в плоскость частот?

1 Ответ

0 голосов
/ 10 октября 2018

Частоты, полученные в результате БПФ, находятся в диапазоне от 0 до частоты дискретизации.В частности, горизонтальная ось БПФ соответствует частотам 0, fs/N, 2*fs/N, ..., (N-1)*fs/N, где fs - частота выборки, а N - размер БПФ.

Итак, вам следует изменить горизонтальную ось на графике следующим образом, где N равно numel(t), а fs вычислено как 1/(t(2)-t(1)):

freq_axis = (0:numel(t)-1)/numel(t)/(t(2)-t(1));
plot(freq_axis, abs(X))

Вы также можетехотите применить fftshift для наблюдения частот от -fs/2 до fs/2 вместо от 0 до fs.В этом случае:

freq_axis = (-numel(t)/2:numel(t)/2-1)/numel(t)/(t(2)-t(1));
plot(freq_axis, fftshift(abs(X)))

В качестве проверки на вашем примере x = sin(2*t) второй график дает:

enter image description here

Сравнениеваш sin(2*t) с общим выражением sin(2*pi*f*t), частота f этой синусоиды считается 1/pi = 0.3183, в соответствии с рисунком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...