Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Герцель
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
ANV
Доброе время суток.
Непонятно какими критериями пользоваться при выборе разрядности переменных D0, D1, D2
Код
D0 = x + k * D1 - D2

Допустим для x выбираем 10 бит, для k - 16 бит, разрядность D0?
Интуиция подсказывает, что надо учитывать размер блока N, где бы про это почитать?
bahurin
сформулируйте вопрос свой. А то совершенно не понятно о чем речь идет?

ANV
Да всё, алгоритм уже закодирован и работает.

Цитата(bahurin @ Jul 16 2010, 08:43) *
сформулируйте вопрос свой. А то совершенно не понятно о чем речь идет?



Применяли на практике алгоритм Герцеля? Выражение в первом сообщении реализует вычисление мощности одной частоты (подробности об алгоритме есть в гугле), проблема была в определении необходимой разрядности переменных сдвигового регистра (d0, d1, d2), так сказать методика.
TSerg
Цитата(ANV @ Jul 15 2010, 21:47) *
Интуиция подсказывает, что надо учитывать размер блока N, где бы про это почитать?


A16 + B16 -> C17 ?

N = N1 + N2; // N - итоговая разрядность суммы, N1 - разрядность исходных операторов
N2 = Log2(S)+1; // S - число сложений
ANV
Цитата(TSerg @ Jul 16 2010, 08:59) *
A16 + B16 -> C17 ?

N = N1 + N2; // N - итоговая разрядность суммы, N1 - разрядность исходных операторов
N2 = Log2(S)+1; // S - число сложений


А как учесть множитель k, который по модулю может быть до 2? Просто добавить ещё один бит? Или "+1" во второй формуле (N2 = Log2(S)+1) это и учитывает?
Pechka
Цитата(ANV @ Jul 16 2010, 10:20) *
А как учесть множитель k, который по модулю может быть до 2? Просто добавить ещё один бит? Или "+1" во второй формуле (N2 = Log2(S)+1) это и учитывает?

Как раз это и учитывает: Герцель = вычисление одонго бина Фурье. Увеличение разрядности в фурье как раз log2(s), где S - длина фурье. соответственно на коэффициент k закладываем ещё 1 бит и получаем увеличение разрядности log2(s)+1. Исходная разрядность N1, тогда N=N1+log2(S)+1, всё как изложено выше.
анатолий
Алгоритм Герцеля - модификация рекурсивного ДПФ.
А в нем ошибки накапливаются неслабо даже с плавающей запятой.
Поэтому Герцеля нельзя использовать для измерения спектра, а только в таких
триггерных схемах, как ДТМФ.
И значит, формулу ошибки с логарифмом надо умножить надвое.
ANV
Цитата(анатолий @ Jul 21 2010, 16:31) *
А в нем ошибки накапливаются неслабо даже с плавающей запятой.
Поэтому Герцеля нельзя использовать для измерения спектра, а только в таких
триггерных схемах, как ДТМФ.


Откуда такая информация?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.