реклама на сайте
подробности

 
 
> Числа с фиксированной точкой.
qwa
сообщение Feb 8 2015, 18:45
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 8-02-15
Из: Санкт-Петербург
Пользователь №: 85 020



Такой вопрос: пусть имеется некий фильтр, синтезированный в Матлабе. Коэффициенты этого фильтра - дробные числа, числа с плавающей запятой. Допустим,надо перенести этот фильтр на ПЛИС или что-нибудь еще. Короче,надо перевести коэффициенты фильтра в формат с фиксированной точкой. Но числа с фиксированной точкой - это целые числа, а коэффициенты фильтра в исходном виде дробные. Вопрос: как правильно выполнить перевод? Где можно про это прочитать?

Вообще,у меня есть подозрение,что для этого надо дробное число умножить на двойку в степени такой,сколько битов отводится на хранение коэффициентов фильтра.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Hose
сообщение Feb 9 2015, 06:15
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 82
Регистрация: 7-01-15
Пользователь №: 84 450



Синтез фильтра в матлабе и оптимизация под фпга - вещи несовместимые.
Если вы хотите получить действительно минимальный ресурс и максимальное быстродействие, то читайте дальше)
Тему правильно было бы назвать "разрядности внутри цифровых фильтров"
На примере fir:
1) вам необходимо получить импульсную характеристику фильтра. Как получить оптимальную импульсную под ваши задачи - отдельная тема, допустим что вы поверили матлабу (что, кстати, очень зря).
2) вам придется реализовать два фильтра (в математике это не сложно): с плавучкой и без.
Оптимизировать будете отдельно каждый. И в конце сделаете выбор.
... пеиемножение чисел в плавучке это перемножение мантисс и сложение экспонент, на первый взгляд кажется, что эта операция возможна в лучшей частотке, чем цлочисленное перемножение, но если вы используете эмбедед умножитель фпга, то возникают нюансы; опятьже блоки до и после фильтра могут не использовать плавучку и возникают накладные потери ресурса и задержки на переходы...
3) дискретизируете по уровню отсчеты импульсной (коэффициенты): это нелинейная операция и в ней не все так однозначно как кажется.
Определяете максимальный коэффициент, нормируете относительно него , умножаете на степень двойки. В математике смотрите результат, ужасаетесь, меняете "степень двойки" ( тоесть подбираете разрядность пока она не устроит вас ) (оно конечно же считается, но мы занимаемся тем что не описано в книжках и статьях разных умников) ... смотрите фчх, неравномерность ачх в полосе в масштабе 0.01дб, ачх в полосе подавления и в интересующих вас местах, также не плохо построить гвз, если оно не очевидно для вас по фчх или критично для вас.
Важно понимать, что разрядность фильтра и длинна импульсной связаны, увеличивать их нужно вместе.
4) оптимизируете коэффициенты. часто разрядности нехватает и получить нужно лучшее подавление или другие характеристики в установленной разрядности, например если это формирование сигнала для цап. Для этого в верхнюю формулу добавляете еще один коэффициент как множитель, пишете програмку перебора, устанавливаете критерии поиска этого коэффициента. Выигрыш от этой процедуры основан на том, что дискретизация по уровню - операция не линейная. Оценить выигрыш от этой процедуры оч сложно. Выигрыш ощутимый. Коэффициент в больших пределах гонять не надо, так чтобы коэффициенты шевелились в пределах разряда. Далее начинаете такимже образом шевелить коэффициенты по отдельности, но парами (симметрично относительно центрального коэффициента). Есть смысл оптимицировать только несколько крайних.
Можно также поиграться с длиной импульсной.
Далее, если вам не удалось получить требуемых характеристик, то можете начать двигать фазу дискретизации импульсной. На простом приаере: коэффициенты 2,5,10,5,2 могут быть преобразованны в 1,3,7,7,3,1 количество коэффициентов стало четным, но и макс коэффициент стал в 1.5 раза меньше. Иногда помогает.
Симметричность коэффициентов это свойство линейной фчх и оно прилично экономит ресурс при реализации, но опять же вы бог-создатель системы и вам виднее чем жертвовать ради хотелок заказчика, тоесть можете использовать плавный сдвиг фазы дискретизации.
Не забывайте про разрядности сумматоров внутри фильтра: после умножения разрядность увеличивается сами знаете как, всю ее тащить нет смысла, но и обрезать до выходной разрядности фильтра нельзя. Разрядность этих сумматоров также поле для оптимизации. Она завязана на распределение амплитуд коэффициентов фильтра. Стоит заметить, что разрядность коэффициентов это оптимизация умножителей, а внутренних регистров - сумматоров, очевидно, что от оптимизации сумматоров выиграш в разы меньше по ресурсам и частотке.

При использовании умножителей на логике можно пооптимизировать коэффициенты фильтра по критерию минимального ресурса: ставьте критерием минимальное количество 1 в коэффициенте - получите минимальный рисур в заданной разрядности с проигрышем в характеристихах фильтра меньшем, чем от уменьшения количества коэффициентов или разрядности.

Все

Или можно попросить больше денег у заказчика, поставить чипак пожирнее, забабахать разрядность с запасом и не заморачиваться на все эти процедуры, тратя целый час своей жизни...

Сообщение отредактировал Hose - Feb 9 2015, 06:20
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 9 2015, 07:10
Сообщение #3


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Hose @ Feb 9 2015, 13:15) *
Синтез фильтра в матлабе и оптимизация под фпга - вещи несовместимые.....

Или просто задействовать Fixed-Point Toolchain в FDAtool и получить результат сравнимый или чуть хуже по качеству, но раз в 10 быстрее....


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- qwa   Числа с фиксированной точкой.   Feb 8 2015, 18:45
- - ViKo   Сначала хорошо бы проверить в Матлабе работу с цел...   Feb 8 2015, 19:45
- - qwa   Цитата(ViKo @ Feb 8 2015, 22:45) Сначала ...   Feb 8 2015, 19:56
- - ViKo   Ну да, как-то так. Я сам не делал. Понятно, что вы...   Feb 8 2015, 20:09
- - Grizzzly   Теория по fixed-point. В MATLAB очень хорошая спра...   Feb 8 2015, 20:37
- - V_G   Цитата(qwa @ Feb 9 2015, 04:45) Коэффицие...   Feb 8 2015, 23:50
- - qwa   Цитата(V_G @ Feb 9 2015, 02:50) Вот это -...   Feb 9 2015, 00:23
- - V_G   В целочисленных процессорах (ADSP2181 к примеру) е...   Feb 9 2015, 02:05
- - qwa   Моя задача далее будет переносится на ПЛИС.   Feb 9 2015, 02:06
|- - des00   Цитата(qwa @ Feb 9 2015, 10:06) Моя задач...   Feb 9 2015, 05:20
- - Hose   Не надо забывать, что и матлаб и тулы под него сто...   Feb 9 2015, 07:43
|- - des00   Цитата(Hose @ Feb 9 2015, 15:43) Не надо ...   Feb 9 2015, 08:12
- - ViKo   Это не ворованное, а трофейное...   Feb 9 2015, 07:50
- - qwa   Hose Благодарю, что вы так все подробно расписали,...   Feb 10 2015, 22:11
|- - des00   Цитата(qwa @ Feb 11 2015, 05:11) Кстати,с...   Feb 11 2015, 05:03
- - Hose   Когда я был преподавателем, основная масса студент...   Feb 11 2015, 05:10
- - qwa   Цитата(Hose @ Feb 11 2015, 08:10) Берете ...   Feb 11 2015, 21:23
- - Hose   1) как это сделать? - я верно понял вопрос? Если в...   Feb 12 2015, 04:44
- - qwa   Цитата(Hose @ Feb 12 2015, 07:44) 1) как ...   Feb 12 2015, 21:03
- - Hose   Если максимальный кое равен 1, то вы поделите все ...   Feb 13 2015, 03:40
- - qwa   Решил промоделировать в Матлабе - получилось что-т...   Feb 23 2015, 01:42
- - qwa   Решил промоделировать в Матлабе - получилось что-т...   Feb 23 2015, 01:42
- - V_G   Начнимте с простого: ваша ПЛИС просто синус без фи...   Feb 23 2015, 02:46
- - Hose   Отладочная схема: Нужно к импульсной фильтра допис...   Feb 23 2015, 17:43
- - qwa   Цитата(V_G @ Feb 23 2015, 05:46) Начнимте...   Feb 24 2015, 00:53
|- - thermit   Цитата(qwa @ Feb 24 2015, 03:53) Фильтрац...   Feb 24 2015, 05:25
|- - Grizzzly   Цитата(thermit @ Feb 24 2015, 08:25) у ва...   Feb 24 2015, 07:47
|- - andyp   Цитата(Grizzzly @ Feb 24 2015, 10:47) Есл...   Feb 24 2015, 09:48
- - Hose   Например коэффициенты в 8 разрядах: -19, 0, 78, 12...   Feb 24 2015, 05:10
- - Hose   Матлаб сушит ваши мозги, от того и тестируете пото...   Feb 24 2015, 06:49
|- - thermit   Цитата(Hose @ Feb 24 2015, 09:49) Матлаб ...   Feb 24 2015, 08:35
|- - Grizzzly   Цитата(thermit @ Feb 24 2015, 11:35) А во...   Feb 24 2015, 09:33
|- - thermit   Цитата(Grizzzly @ Feb 24 2015, 12:33) АЧХ...   Feb 24 2015, 09:45
|- - andyp   Цитата(thermit @ Feb 24 2015, 12:45) АЧХ ...   Feb 24 2015, 11:57
- - qwa   Короче,я взял и ручками написал обычный КИХ фильтр...   Feb 24 2015, 12:21
- - Grizzzly   thermit, andyp, спасибо, доказали. Внимательнее по...   Feb 24 2015, 21:30


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th August 2025 - 07:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01475 секунд с 7
ELECTRONIX ©2004-2016