Заявку на получение дополнительной информации по этому проекту можно заполнить здесь.
Номер 19-012-03 |
Наименование проекта Эффективная реализация алгоритма быстрого преобразования Фурье (БПФ) |
Назначение Прямое и обратное дискретные преобразования Фурье комплексных векторов |
Рекомендуемая область применения Программно-технические комплексы цифровой обработки и анализа данных, в в частности средства компрессии цифровой видео- и аудиоинформации |
Описание Описание к ил № 19-012-03 Результат выполнения научно-исследовательской работы. Предлагаемая программная реализация БПФ использует итерационную форму рекуррентных соотношений: ,где и Ниже приведен её полный исходный текст, который включает две основные функции - прямого (fft) и обратного (ifft) БПФ, и одну вспомогательную (reverse) - для обращения порядка битов индекса. Текст может быть откомпилирован средствами ВС++ v5.02. //Программная реализация БПФ.copyright© Юрий А. Гаджиев, 2003. Все права защищены. #include #define m 10 /*двоичный логарифм n (см. ниже)*/ const int n=(1 typedef complex vec[n]; //Вспомогательная процедура для обращения порядка следования m битов индекса i int reverse(int i, int m) { int j,k; for (k=j=0; j { k<> if (i&1) k|=1; } return k; } //Функция прямого БПФ void fft(vec c /*вектор коэффициентов Фурье*/, vec v /*исходный вектор*/) { int j,i,l,a,b,na,bm; vec t,p; for (i=0; i { if (i&1) t[i]=(v[reverse(i&~1, m)] - v[reverse(i|1, m)])/2.0; else t[i]=(v[reverse(i&~1, m)] + v[reverse(i|1, m)])/2.0; } for(l=1; l { a=1 for (i=0; i na=~a; bm=b-1; if (l&1) for(i=0; i else for(i=0; i } #if m&1 memcpy(c, t, sizeof (complex) * n); #endif } //Функция обратного БПФ void ifft(vec v /*восстанавливаемый вектор*/, vec c /*вектор коэффициентов*/) { int j,i,l,a,b,na,bm; vec t,p; for (i=0; i { if (i&1) t[i]=c[reverse(i&~1, m)] - c[reverse(i|1, m)]; else t[i]=c[reverse(i&~1, m)] + c[reverse(i|1, m)]; } for(l=1; l { a=1 for (i=0; i na=~a; bm=b-1; if (l&1) for(i=0; i else for(i=0; i } #if m&1 memcpy(v, t, sizeof(complex) * n); #endif |
Преимущества перед известными аналогами Универсальность применения, компактность программного кода. |
Стадия освоения Проверено в лабораторных условиях |
Результаты испытаний Соответствуют технической характеристике |
Технико-экономический эффект Снижение затрат времени центрального процессора ЭВМ в отношении , где - размерность обрабатываемого вектора данных |
Возможность передачи за рубеж Возможна передача за рубеж |
Дата поступления материала 10.02.2003 |
У павильонов Уральской выставки «ИННОВАЦИИ 2010» (г. Екатеринбург, 2010 г.)
Мероприятия на выставке "Инновации и инвестиции - 2008" (Югра, 2008 г.)
Открытие выставки "Малый бизнес. Инновации. Инвестиции" (г. Магнитогорск, 2007 г.)
Демонстрация разработок на выставке "Малый бизнес. Инновации. Инвестиции" (г. Магнитогорск, 2007 г.)