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

 
 
 
Reply to this topicStart new topic
> Как округлять выход FIR?
Грендайзер
сообщение Sep 19 2017, 08:53
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 350
Регистрация: 18-04-11
Пользователь №: 64 451



Здравствуйте sm.gif Пытаюсь победить коргенераторовский fir у xilinx, но кое чего не понятно. Вообщем возможно есть так же не понимание принципа работы самого фильтра, так что... одно другому не мешает. Сгенерил полосовой фильтр в коргене (fir complier). Набор коэффициентов сгенерил в матлаб. Характеристики фильтра:
входлные данные - 8бит, беззнаковые;
коэффициенты - 16бит знаковые;
выходные данные - полная разрядность (без округления) 33бита.
Я сгенерил в матлабе входной файл (размах от 0 до 255). Однако на выходе 8 старших бит - пустые (знаковые). Если теперь я захочу округлить в коргене выходные данные, то корген будет брать старшие биты и опускать младшие (независимо от того какой вид округления я поставлю). Т.о. на выходе я получу совсем низкий уровень сигнала, даже меньше чем на входе, хотя сигнал находится в полосе пропускания, нестабильность коэф. передачи там не более 0.5дБ.
Сейчас я делаю следующим образом - если мне, например надо 11 бит на выходе, я округляю результат до 18 бит. Из них я беру младшие 11 бит(10 бит + знаковый). Но не уверен, что это правильно.

Сообщение отредактировал Грендайзер - Sep 19 2017, 08:54
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Tausinov
сообщение Sep 19 2017, 09:37
Сообщение #2


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

Группа: Участник
Сообщений: 116
Регистрация: 19-10-13
Пользователь №: 78 795



Разрядность выхода фильтра генерится такой, чтобы ни при каких входных данных переполнения не было, при этом произвольный синус даже максимальной амплитуды в полосе пропускания до максимума не дотянет. Амплитуду выхода при одной гармонике можно легко оценить и посмотреть в том же МатЛабе. Распространенная практика - делать масштабирование на выходе фильтра самому, в зависимости от уровня и типа сигнала на входе. С выхода корки выводится полная разрядность, затем идет усечение до нужной разрядности с выбором позиции старшего бита. Кроме того, можно задействовать округление.
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Sep 19 2017, 09:40
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 350
Регистрация: 18-04-11
Пользователь №: 64 451



Т.е. предложенный мной способ вполне приелем?
Go to the top of the page
 
+Quote Post
Tausinov
сообщение Sep 19 2017, 09:47
Сообщение #4


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

Группа: Участник
Сообщений: 116
Регистрация: 19-10-13
Пользователь №: 78 795



Цитата(Грендайзер @ Sep 19 2017, 12:40) *
Т.е. предложенный мной способ вполне приелем?


Да, вполне. Но не стоит забывать, что при более сложном сигнале возможен выход за выбранную разрядную сетку.
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Sep 19 2017, 09:53
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 350
Регистрация: 18-04-11
Пользователь №: 64 451



Угу... Всё понял. Болшое спасибо sm.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th October 2017 - 12:37
Рейтинг@Mail.ru


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