Помогите мне понять функцию FFT (Matlab) - PullRequest
7 голосов
/ 12 января 2009

1) Помимо отрицательных частот, какая минимальная частота обеспечивается функцией FFT? Это ноль?
2) Если оно равно нулю, как мы можем построить ноль в логарифмическом масштабе?
3) Результат всегда симметричен? Или это просто кажется симметричным?
4) Если я использую abs (fft (y)) для сравнения 2 сигналов, могу ли я потерять некоторую точность?

Ответы [ 5 ]

14 голосов
/ 12 января 2009

1) Помимо отрицательных частот, какая минимальная частота обеспечивается функцией FFT? Это ноль?

fft(y) возвращает вектор с 0-й (N-1) -й выборкой ДПФ, равной y, где y (t) следует считать определенным для 0 ... N-1 (следовательно, «периодическое повторение» y (t) можно рассматривать как периодический сигнал, определенный над Z).

Первая выборка fft(y) соответствует частоте 0. Преобразование Фурье реальных периодических сигналов с дискретным временем также имеет дискретную область, и оно является периодическим и эрмитовым (см. Ниже). Следовательно, преобразование для отрицательных частот является сопряжением соответствующих выборок для положительных частот.

Например, если вы интерпретируете (периодическое повторение) y как периодический реальный сигнал, определенный над Z (период выборки == 1), то область fft(y) должна интерпретироваться как N равных точек 0, 2 & pi; / N ... 2 & pi; (N-1) / N. Сэмплы преобразования на отрицательных частотах - & pi; ... - & pi; / N - конъюгаты выборок на частотах & pi; ... & pi; / N и равны выборкам на частотах &число Пи; ... 2 & pi; (N-1) /N.

2) Если оно равно нулю, как мы можем построить ноль в логарифмическом масштабе?

Если вы хотите нарисовать какой-то график Боде , вы можете построить преобразование только для положительных частот, игнорируя выборки, соответствующие самым низким частотам (в частности, 0).

3) Результат всегда симметричен? Или это только кажется симметричным?

имеет эрмитову симметрию , если y является действительным: его действительная часть симметрична, его мнимая часть антисимметрична. Другими словами, его амплитуда симметрична, а фаза антисимметрична.

4) Если я использую abs (fft (y)) для сравнения 2 сигналов, могу ли я потерять некоторую точность?

Если вы имеете в виду abs(fft(x - y)), это нормально, и вы можете использовать его, чтобы получить представление о частотном распределении разности (или ошибки, если x является оценкой y). Если вы имеете в виду abs(fft(x)) - abs(fft(y)) (???), вы теряете хотя бы информацию о фазе.

2 голосов
/ 12 января 2009
  1. результат fft может быть 0. уже ответил другим людям.
  2. для построения частоты 0, хитрость заключается в том, чтобы установить очень маленькое положительное число (для этой цели я использую exp (-15)).
  3. уже ответили другие люди.
  4. если вас интересует только величина, да, вы можете это сделать. это применимо, скажем, ко многим проблемам обработки изображений.
2 голосов
/ 12 января 2009

Консультация "Числовые рецепты в C", глава 12 "Быстрое преобразование Фурье" гласит:

  1. Частота колеблется от отрицательной fc до положительной fc, где fc - критическая частота Найквиста, равная 1 / (2 * delta), где delta - интервал выборки. Таким образом, частоты могут быть отрицательными.

  2. Вы не можете нарисовать то, что не существует. Нет логарифма нуля. Вы либо отобразите частоту в качестве оси X, либо выберете диапазон, не включающий ноль, для вашей полу-логарифмической оси.

  3. Наличие или отсутствие симметрии в частотном диапазоне зависит от характера функции во временной области. Вы можете иметь график в частотной области, который не является симметричным относительно оси Y.

  4. Я не думаю, что такое абсолютное значение - хорошая идея. Вы захотите узнать больше о свертке, коррекции и обработке сигналов, чтобы сравнить два сигнала.

2 голосов
/ 12 января 2009

Что ж, если вы хотите понять быстрое преобразование Фурье, вы хотите вернуться к основам и понять сам ДПФ. Но это не то, что вы просили, поэтому я просто предлагаю вам сделать это в свое время:)

Но, в ответ на ваши вопросы:

  1. Да, (исключая негативы, как вы сказали) это ноль. Диапазон составляет от 0 до (N-1) для входа с N-точками.
  2. В MATLAB? Я не уверен, что понимаю ваш вопрос - выведите нулевые значения так же, как и любые другие значения ... Хотя, как справедливо указывает Даффимо, натуральный логарифм нуля отсутствует.
  3. По сути, это похоже на функцию синуса (синусоида). Хотя это не обязательно будет симметрично.
  4. Вы не потеряете никакой точности, у вас будет только отклик величины (но я думаю, вы уже знали это).
0 голосов
/ 12 января 2009

Половина вашего вопроса:

3) Результаты работы БПФ зависят от характера сигнала; следовательно, нет ничего, что требовало бы его симметрии, хотя, если это так, вы можете получить дополнительную информацию о свойствах сигнала

4) Это сравнит величины пары сигналов, но те, которые равны, не гарантируют, что БПФ идентичны (не забудьте о фазе). Однако этого может быть достаточно для ваших целей, но вы должны быть в этом уверены.

...