Понимание вывода FFT

Мне нужна помощь в понимании вычисления вычисления DFT / FFT.

Я опытный инженер-программист и должен интерпретировать некоторые показания акселерометра смартфонов, такие как поиск основных частот. К сожалению, я спал большую часть своих классов в колледже через пятнадцать лет назад, но я читал на DFT и FFT в течение последних нескольких дней (по-видимому, немного пользуюсь).

Пожалуйста, никаких ответов «Go принять класс EE». Я на самом деле планирую сделать это, если мой работодатель заплатит мне. :)

Итак, вот моя проблема:

Я захватил сигнал на 32 Гц. Вот 1 вторая выборка из 32 очков, которые я наметил в Excel.

enter image description here

Я тогда получил некоторые код БПТ , написанный в Java из Университета Колумбия (после последующих предложений в должности « надежный и быстрый FFT в Java »).

Выход этой программы следующим образом. Я считаю, что он работает на месте FFT, поэтому он повторно использует тот же буфер для ввода и вывода.

Before: 

Re: [0.887  1.645  2.005  1.069  1.069  0.69  1.046  1.847  0.808  0.617  0.792  1.384  1.782  0.925  0.751  0.858  0.915  1.006  0.985  0.97  1.075  1.183  1.408  1.575  1.556  1.282  1.06  1.061  1.283  1.701  1.101  0.702  ]

Im: [0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ]

After: 

Re: [37.054  1.774  -1.075  1.451  -0.653  -0.253  -1.686  -3.602  0.226  0.374  -0.194  -0.312  -1.432  0.429  0.709  -0.085  0.0090  -0.085  0.709  0.429  -1.432  -0.312  -0.194  0.374  0.226  -3.602  -1.686  -0.253  -0.653  1.451  -1.075  1.774  ]

Im: [0.0  1.474  -0.238  -2.026  -0.22  -0.24  -5.009  -1.398  0.416  -1.251  -0.708  -0.713  0.851  1.882  0.379  0.021  0.0  -0.021  -0.379  -1.882  -0.851  0.713  0.708  1.251  -0.416  1.398  5.009  0.24  0.22  2.026  0.238  -1.474  ]

Итак, на данный момент я не могу сделать головы или хвосты вывода. Я понимаю, что концепции DFT, такие как настоящая часть, являющаяся амплитудами компонентных косиновых волн, и воображаемая часть, являющаяся амплитудами составляющих синусоидальных волн. Я также могу следовать этой диаграмме из Великой Книги « Руководство ученого и инженера к цифровой обработке сигналов »: enter image description here

Итак, мои конкретные вопросы:

  1. от выхода FFT, как я могу найти «наиболее часто встречающиеся частоты»? Это является частью моего анализа моих данных акселерометра. Должен ли я прочитать реальные (косинусные) или воображаемые (синусные) массивы?

  2. У меня есть 32-точечный вход в момент времени. Разве вывод FFT не должен быть 16-элементным массивом для реальных и 16-элементных массив для воображаемых? Почему программа дает мне реальный и мнимый массив выводит как размер 32?

  3. , связанный с предыдущим вопросом, как я могу разбирать индексы в выходных массивах? Учитывая мой ввод 32 образцов, профаплированных на 32 Гц, мое понимание состоит в том, что 16-элементный вывод массива должен иметь свой индекс равномерно разбросана до 1/2 скорости дискретизации (из 32 Гц), поэтому я правильно понимаю, что каждый элемент Массива представляет (32 Гц * 1/2) / 16 = 1 Гц?

  4. Почему вывод FFT имеет отрицательные значения? Я думал, что ценности представляют амплитуды синусоида. Например, вывод реального [3] = -1,075 должен означать амплитуду -1,075 для косинусной волны частоты 3. Это правильно? Как амплитуда может быть отрицательной?

80
задан Cœur 15 August 2017 в 08:34
поделиться