AlexZabr 0 4 мая, 2007 Опубликовано 4 мая, 2007 · Жалоба Вот у вас готов алгоритм DSP, построен и отсимулирован в Матлабе. Пришло время имплементации на 16 битном, fixed point процессоре (скажем C5402). Ессно, встает задача перевода числовых данных/коеффициентов и т.д. в 16 битный, fix point формат стараясь как можно меньше ударить по точности и характеристикам алгоритма. Например, узкополосные IIR фильтры, с полюсами (в Матлабе) близкими к единице (по радиусу). Неточность/сдвиг полюсов в следствии грубой подгонки под 16 бит, fix point может вышибить фильтры из устойчивости и т.д. и т.п. Как вы переводите данные в 16 бит fixed point ? В примерах которые видел, коеффициенты умножали на 1024, брали 4е старшие десятичные цифры (16 бит) и с ними работали. Затем, данные отфильтрованного сигнала нормализировали деля каждое на (float)1024. Правильно ли это ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 4 мая, 2007 Опубликовано 4 мая, 2007 · Жалоба Вот у вас готов алгоритм DSP, построен и отсимулирован в Матлабе. Пришло время имплементации на 16 битном, fixed point процессоре (скажем C5402). Ессно, встает задача перевода числовых данных/коеффициентов и т.д. в 16 битный, fix point формат стараясь как можно меньше ударить по точности и характеристикам алгоритма. Например, узкополосные IIR фильтры, с полюсами (в Матлабе) близкими к единице (по радиусу). Неточность/сдвиг полюсов в следствии грубой подгонки под 16 бит, fix point может вышибить фильтры из устойчивости и т.д. и т.п. Как вы переводите данные в 16 бит fixed point ? В примерах которые видел, коеффициенты умножали на 1024, брали 4е старшие десятичные цифры (16 бит) и с ними работали. Затем, данные отфильтрованного сигнала нормализировали деля каждое на (float)1024. Правильно ли это ? Не совсем правильно поставлен вопрос, или скорее не совсем корректная постановка задачи. Если отвечать в лоб на вопрос об округлении, то естественно данные стараются округлять в ближайшую сторону (а это не совсем то, что Вы видели в примерах:)). Но дело не в округлении. А в том, что вот так вот не обоснованно выбирать процессор для решения поставленной задачи, это не есть правильный путь:). И почему кстати 16 бит? А может достаточно 8, или 4? Откуда взята эта цифра 16? Это Ваше любимое число или прихоть Вашего руководителя? Инженерная профессия не терпит цифр взятых наугад. Все должно быть по возможности строго математически обосновано. Или расчетами или моделированием. А еще лучше и тем и другим. И если уж касаться цифровой фильтрации, то кроме погрешности округления коэф. фильтра, есть еще вычислительная погрешность. Это особенно касается рекурсивных (IIR) фильтров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexZabr 0 4 мая, 2007 Опубликовано 4 мая, 2007 · Жалоба Не совсем правильно поставлен вопрос, или скорее не совсем корректная постановка задачи. Если отвечать в лоб на вопрос об округлении, то естественно данные стараются округлять в ближайшую сторону (а это не совсем то, что Вы видели в примерах:)). Но дело не в округлении. А в том, что вот так вот не обоснованно выбирать процессор для решения поставленной задачи, это не есть правильный путь:). И почему кстати 16 бит? А может достаточно 8, или 4? Откуда взята эта цифра 16? Это Ваше любимое число или прихоть Вашего руководителя? Инженерная профессия не терпит цифр взятых наугад. Все должно быть по возможности строго математически обосновано. Или расчетами или моделированием. А еще лучше и тем и другим. И если уж касаться цифровой фильтрации, то кроме погрешности округления коэф. фильтра, есть еще вычислительная погрешность. Это особенно касается рекурсивных (IIR) фильтров. Wow, wow, wow, с места в карьер... Спасибо за ответ, но вопрос был поставлен конкретный. Почему 16 бит а не иначе - другой вопрос, и это заранее задано (не играет роли насколько оно правильно для конкретной задачи). Вопрос просто о конверсии 32/64-битных floating point данных в 16 бит fixed point с наименьшими неприяностями. Ну а ежели вы хотите подноготную - нет проблен: делаю дипломный проэкт - разработан определенный алгоритм для аудио, построен, отсимулилрован в Матлабе. Теперь очередь имплементации. Имплементация задана на базе TMS320C5402 DSK, без вариантов. Т.е. 16 бит, fixed point процессор. Я не описывал мои критерии выбора процессора, почему так а не иначе. Просто рпедположим платфрома заранее задана и все. Честно говоря не понял зачем сразу бросаться в атаку на задающего конкретный вопрос не зная подноготной... Кстати насчет "контроля" вычислительной погрешности - тоже интересно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 5 мая, 2007 Опубликовано 5 мая, 2007 · Жалоба Wow, wow, wow, с места в карьер... Спасибо за ответ, но вопрос был поставлен конкретный. Почему 16 бит а не иначе - другой вопрос, и это заранее задано (не играет роли насколько оно правильно для конкретной задачи). Вопрос просто о конверсии 32/64-битных floating point данных в 16 бит fixed point с наименьшими неприяностями. Ну а ежели вы хотите подноготную - нет проблен: делаю дипломный проэкт - разработан определенный алгоритм для аудио, построен, отсимулилрован в Матлабе. Теперь очередь имплементации. Имплементация задана на базе TMS320C5402 DSK, без вариантов. Т.е. 16 бит, fixed point процессор. Я не описывал мои критерии выбора процессора, почему так а не иначе. Просто рпедположим платфрома заранее задана и все. Честно говоря не понял зачем сразу бросаться в атаку на задающего конкретный вопрос не зная подноготной... Кстати насчет "контроля" вычислительной погрешности - тоже интересно... Прошу прощения за ночную атаку, слегка погорячился, был не прав, признаю:). Что касается конкретно вопроса, то лучше всего конечно обратиться к литературным источникам, в частности к небезызвестному труда Рабинера и Гоулда. Эффекты квантования и конечной разрядности чисел они рассматривают достаточно подробно. Если же говорить про конкретно Ваш случай, то наверно стоит обратить внимание еще и на тот факт, что даже при "правильном" округлении коэфф., но не зависимо друг от друга, фильтр может потерять устойчивость. В этом случае возможно придется вручную подбирать значения коэффициентов:). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 5 мая, 2007 Опубликовано 5 мая, 2007 · Жалоба Так в матлабе в FDA Tool эффекты квантования исследуются в лоб, посредством квантования и перерасчёта частотных характеристик. Во всяком случае всегда можно посмотреть, что получилось тыком. Конечно, если наоборот нужно проанализировать какая должна быть разрядность для получения заданных характеристик - то задача будет совсем не тривиальна Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexZabr 0 5 мая, 2007 Опубликовано 5 мая, 2007 · Жалоба Прошу прощения за ночную атаку, слегка погорячился, был не прав, признаю:). Что касается конкретно вопроса, то лучше всего конечно обратиться к литературным источникам, в частности к небезызвестному труда Рабинера и Гоулда. Эффекты квантования и конечной разрядности чисел они рассматривают достаточно подробно. Если же говорить про конкретно Ваш случай, то наверно стоит обратить внимание еще и на тот факт, что даже при "правильном" округлении коэфф., но не зависимо друг от друга, фильтр может потерять устойчивость. В этом случае возможно придется вручную подбирать значения коэффициентов:). Спасибо, понял. В принципе я руководствуюсь свой настольной "библией" по DSP: A Course in Digital Signal Processing by Boaz Porat. Там этим вещам посвящен тоже большой раздел, подробно рассматриваются эффекты и предлагаются варианты как с ними бороться. Мне было-бы просто интересно услышать как кто из конкретных дизайнеров это делает. Так в матлабе в FDA Tool эффекты квантования исследуются в лоб, посредством квантования и перерасчёта частотных характеристик. Во всяком случае всегда можно посмотреть, что получилось тыком. Конечно, если наоборот нужно проанализировать какая должна быть разрядность для получения заданных характеристик - то задача будет совсем не тривиальна Спасибо, не знал. никогда не пользовался FDAToolом еще, всегда фильтры делал текстово... будем знать.. :a14: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться