Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.89
Ailuy
Сообщений: n/a
#1

БПФ на с++ - C++

19.12.2013, 12:25. Просмотров 4047. Ответов 2
Метки нет (Все метки)

Заранее прошу прощения, если тема уже существует, а я создаю снова.
Дело в том, что понадобилась программа БПФ на с++, моих возможностей на этом языке не хватает для реализации, к сожалению, поэтому прошу помочь.
Если кто напишет с подробными комментариями, чтобы можно было посидеть и поразбираться, буду очень благодарна.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2013, 12:25     БПФ на с++
Посмотрите здесь:

БПФ - C++
Я учусь на радиотехническом факультете. Для диплома понадобилось использовать технологию CUDA. Пытаюсь выполнить БПФ с помощью библиотеки...

БПФ - Visual C++
Доброе время суток. Не подскажите, можно ли где-нибудь найти реализацию БПФ на С++? Могу и сам, конечно, написать. Просто не хочется...

БПФ - Assembler
Чтобы не быть многословным,выложу алгоритм БПФ. Писалось по принципу "лишь бы работало" и "лишь бы быстрее сделать". Поэтому вылаживаю...

БПФ - C++
Добрый день, скажите кто знает, как на С/C++ сосчитать БПФ, какую библиотеку для этого можно использовать?

БПФ на Atmega8A - AVR
Здравствуйте, подскажите пожалуйста, вот в голову пришло сделать гитарный тюнер. Сдуру сразу развел плату, четыре семисегментных...

ДПФ и БПФ - MathCAD
как найти ДПФ и БПФ дискретного сигнала не используя стандартные функции? как записать ДПФ и БПФ?? :wall:

Двумерное БПФ - Алгоритмы
Рассмотрим сначала одномерный случай. Пусть x(t), y(t) две действительные функции. Можно представить представить комплексную функцию...

БПФ и разрядность - Цифровая обработка сигналов
Помогите. Нужно вичеслить розрядность (N) БП, если время преобразования равен 20нс, а частота полосы равна 7 Ггц Добавлено через 10...

БПФ синусоиды - Цифровая обработка сигналов
Делаю БПФ для массива данных (индекс-отсчет, значение массива- значение файла в момент этого отсчета), переделав его под офлайн обработку...

БПФ массива с данными - Delphi
Здравствуйте. Реализовываю преобразование Фурье для массива с данными, извлеченных из wav файла. Ранее общался с этой темой только...

Увеличение точности БПФ - Matlab
Народ помогите, создал сигнал, выполнил БПФ, нашёл точку( спектральный отсчёт) где спектр сигнала максимален. Теперь мне нужно более...

Размазывание при БПФ? - Цифровая обработка сигналов
Приветствую всех. Друзья, снова заезженное БПФ, с которым я совсем недавно связался и до сих пор не могу найти решение к описанной ниже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
518 / 348 / 53
Регистрация: 11.09.2013
Сообщений: 1,995
19.12.2013, 12:36     БПФ на с++ #2
Быстрое преобразование Фурье
HighPredator
5464 / 1830 / 338
Регистрация: 10.12.2010
Сообщений: 5,409
Записей в блоге: 3
19.12.2013, 14:53     БПФ на с++ #3
Вот как вариант реализация для сигналов в комплексной форме:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//-------------------------------------------------------------------------------
//функция БПФ - реализация (по Т.Кормену)
TComplexDigit* FFT(TComplexDigit *Arr,int N)
{
    if(N<=1) return Arr;
    TComplexDigit OmegaN;
    TComplexDigit Omega;
    OmegaN.Re=cos(2.0*(CONST_PI/N));
    OmegaN.Im=sin(2.0*(CONST_PI/N));    
    Omega.Re=1.0;
    Omega.Im=0.0;
    TComplexDigit *A0=new TComplexDigit[N/2];
    TComplexDigit *A1=new TComplexDigit[N/2];
    int k=0;
    int m=0;    
    for(int i=0;i<N;i++)
    {
        if(i%2==0)
        {
            A0[k]=Arr[i];
            k++;
        }
        else
        {
            A1[m]=Arr[i];
            m++;
        }
    }
    TComplexDigit *Y0=FFT(A0,N/2);
    TComplexDigit *Y1=FFT(A1,N/2);
    TComplexDigit *Y=new TComplexDigit[N];
    for(k=0;k<N/2;k++)
    {
        TComplexDigit temp;
        temp=Y1[k]*Omega;
        Y[k]=Y0[k]+temp;
        Y[k+(N/2)]=Y0[k]-temp;
        Omega=Omega*OmegaN;
    }
    delete [] A0;
    delete [] A1;
    return Y;
}
За подробностями -- Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн, "Алгоритмы. Построение и анализ", Второе издание. 2012 г., с. 926-942.
Yandex
Объявления
19.12.2013, 14:53     БПФ на с++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru