Быстрое преобразование Фурье - проблема.

программирование математика физика C++ высшая математика

В интернете нашёл уже реализованный на C++ алгоритм БПФ, но не могу им воспользоваться, т.к. не совсем понимаю, какие данные должны поступать в эту функцию.

Программу пишу на Qt C++. Функция, которая считывает данные, поступающие с микрофона имеет следующий заголовок:
qint64 AudioInfo::writeData(const char *data, qint64 len) - поступает массив data длиной len

А функция, которая выполняет БПФ имеет такой заголовок:
void fft(ShortComplex *x, int T, bool complement) - здесь x - массив комплексных чисел, T - его длина, а complement = false (эта переменная нам не нужна)

Сама структура ShortComplex выглядит так:
struct ShortComplex
{
double re, im;
inline void operator=(const Complex &y);
};

ВОПРОС, ВОБЩЕМ, СЛЕДУЮЩИЙ:
Как можно поступивший с устройства сигнал (массив данных) сделать комплексным, чтобы можно было передать его в функцию вычисления ПБФ???

Конечно, ещё есть вероятность что я сам что-то не так понял и неправильно разложил здесь свою проблему. Умные люди, помогите, пожалуйста :)
Ответы:
Мнимую часть нулями забейте. У вас сигнал действительный.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.