Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FFT и частотный коэффициент передачи
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
covsh
есть прямоугольный импульс который попадаеться на RC цепь с частотный коэффициент передачи k(jw) , нужно посмотреть что будет ны выходе

в книжке нашел, что для RC равен k(jw)=1/(1+j*w*tau), (w=омега)

FFT рабочее, проверял
так вот после fft имеем массив дейтвительных и мнимых частей коэффициентов.
далее, k(jw) умножаю на (1-j*w*tau) и получаю
k(jw)=1/(1+w*w*tau*tau)+j(-w*tau)/(1+w*w*tau*tau)
т.е. действительныю и мнимую чать k(jw), которые потом перемножаю с коэффициентами Фурье и делаю обратное преобразование.

Так вот всесто нужного пилообразного сигнала получаю совсем другое.

Где я ошибся? исходник нужен?
Jools
Как перемножаешь с коэффициентами Фурье? А вообще, лучше, конечно, исходник.
-=Space=-
Кстати насчет умножений.
Коэффициенты , они же все меньше 1.
Т.е. можно в типе short int поставить точку после 15 разряда
получим числа от -1 до ~1
Но для сишника они так и остануться -32768 +32767

Вообщем получается что то вроде этого

short int a,b,r;
long int c;
с = a*b;
r = c>>16;

a и b - множители , r - произведение

так вот , оптимально ли это по произодительности?

-----добавлено------

Сегодня пропарился с 16 битной целочисленной арифметикой
Получается не очень.
Или переполнения или слишком много шумов в спектре.
Можно конечно попробовать сдвигать точку вправо, на каждом шаге

Стоит ли вообще заморачиваться?
Реализуемо ли FFT в целых числах?
Eugeno
> т.е. действительныю и мнимую чать k(jw), которые потом перемножаю
> с коэффициентами Фурье и делаю обратное преобразование.

А перемножение с комплексно-сопряжёнными коэффициентами делал?

Цитата(-=Space=- @ Apr 15 2005, 19:18)
Сегодня пропарился с 16 битной целочисленной арифметикой
Получается не очень.
Или переполнения или слишком много шумов в спектре.
Можно конечно попробовать сдвигать точку вправо, на каждом шаге
Стоит ли вообще заморачиваться?
Реализуемо ли FFT в целых числах?


Конечно реализуемо.
Коэффициенты-то конечно в диапазоне [-1; 1], но по ходу вычисления FFT происходит ещё и суммирование. Поэтому надо сигнал брать с запасом в log2(N) бит. 16 бит для сигнала в этом случае может оказаться мало. Если тема тебе ещё интересна, пиши, расскажу про некоторые ухищрения.
-=Space=-
2Eugeno:

идея "сдвигать точку вправо, на каждом шаге" удалась, алгоритм функционирует.
После некоторых оптимизаций удалось довести скорость FFT1024 до ~300 мс на проце msp430f161 с 3,6864МГц кварцем. Подсчет модуля считается столькоже , но я его почти неоптимизировал. Пока на этом остановился.
Сейчас переключился на разрюхивание TMS320v5509a
Eugeno
Цитата(-=Space=- @ May 1 2005, 12:40)
идея "сдвигать точку вправо, на каждом шаге" удалась, алгоритм функционирует.
*

В зависимости от необходимой точности можно уменьшить битность коэффициентов, что позволит ускорить fft раза в полтора.

А для 55-й серии должны быть готовые варианты fft.
Для c6x-серии есть оптимизированные версии от TI и для версии с пошаговым сдвигом, и без онного, и с упрощёнными коэффициентами.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.