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

 
 
> Задача
go2winner
сообщение Apr 11 2016, 10:40
Сообщение #1


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

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



Я столкнулся с проблемой. Читая форум понял, что нужно сначала реализовать конкретную задачу в симуляторе, а потом (далеко потом) платами баловаться.
Но вот я никак не могу выбрать задачу себе по силам. Может кто-то может дать задачи с линейным ростом в области ЦОС или близкой тематике???

Пробую сей час фильтр реализовать. Вот начинаю с вымышленного ТЗ.
1) Входные данные с АЦП 16 разрядов доп код. А выходные ? какими должны быть выходные? 32 разряда взять?
2) потом попадаю на вопрос: формат и разрядность промежуточных данных. Беру решаю все в фикс. точкой. Вопрос. Как реализовать данную арифметику? Как выбрать сколько разрядов дробные, сколько целочисленные:?
Вот я выбрал формат для коэффициентов, чтобы максимально точно их описать. в VHDL, да и в матлабе я их представляю знаковыми целочисленными числами.

Тут, как я понимаю идет обычная целочисленная арифметика. Но как восстановить выходные данные....я сам как хочу интерпретирую выходные данные ? или есть некое правило по которому я могу интерпретировать выходные данные (сколько разрядов дробных )?


В общем если есть материал по практическому применению ЦОС, особенно в области прием/передачи сигналов буду рад.
Можно ли следующим шагом задуматься об квадратурном модуляторе MSK?


Как я понимаю сначала надо реализовать все в прикладных пакетах (матлаб и т.п.), потом уже на VHDL, потом уже модель VHDL проверяю.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Xln
сообщение Apr 12 2016, 23:52
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 15-12-15
Пользователь №: 89 708



To go2winner.

То, что вы начали изучение ЦОС в FPGA с нерекурсивных цифровых фильтров это правильно.
Эти фильтры и не сложные для новичка, и применяются достаточно широко.
Рекурсивные цифровые фильтры отбросьте в сторону, они на архитектуру FPGA ложатся плохо, у них повышенные требования к разрядностям сумматоров и умножителей.

Что изучать дальше зависит от того, какие задачи вы собираетесь решать.

Если, например, двигаться в сторону Software Defined Radio, то стоит присмотреться к Digital Down Converter и Digital Up Converter, ещё нужно поразбираться с децимацией и интерполяцией сигналов.

Всё что написано ниже относится к FPGA Xilinx, и мне трудно сказать, насколько это справедливо для Альтеры и др. производителей.

По цифровым фильтрам.
В современных FPGA на программируемой логике обычно фильтры не делают, для этого используют DSP-блоки.
Например, в Spartan-6, реализованы DSP-блоки DSP48A1 (это просто наименование примитива, в зависимости от семейства FPGA эти примитивы немного различаются между собой). Этот DSP блок содержит целочисленный умножитель 18x18 с 36-битным выводом результата и 48-битный аккумулятор (вспомогательные регистры, предсумматор я опустил).
Для вас сейчас главное, что разрядности умножителей 18x18 -> 36, умножители целочисленные, никакой плавающей точки в DSP блоках нет. От этой разрядности можно плясать дальше.
Например в 7-й серии FPGA (Virtex-7, Kintex-7, Artix-7) DSP блоки более функциональны, в том числе умножители вида 18x25 -> 43, большие точности можно получить.

По вашему примеру применительно к Spartan-6.
16-битный сигнал с АЦП нужно расширить до 18 бит (здесь должно быть именно знаковое расширение) перед подачей на DSP блоки.
По коэффициентам.
Все коэффициенты, которые приводились выше, а именно,
Код
-0.0099    0.0787    0.1166    0.1647    0.1946    0.1946    0.1647    0.1166    0.0787    -0.0099

лежат в диапазоне -1 … 1. Т.о. для коэффициентов можно использовать представление чисел с фиксированной точкой 1.17. Один старший разряд, на это указывает единица перед точкой, это целая часть, по сути знак коэффициента, а остальные 17 разрядов (число после десятичной точки) – дробная часть.
В 16-ричной системе счисления коэффициенты будут выглядеть так:
Код
0x3FAEE    0x0284B    0x03BB3    0x05454    0x063A3    0x063A3    0x05454    0x03BB3    0x0284B    0x3FAEE

Они же в десятичной:
Код
-1298    10315    15283    21588    25507    25507    21588    15283    10315    -1298

По сути, коэффициенты были просто домножены на 2^17 = 131072 и округлены.
Теперь отсчёты сигнала и пересчитанные коэффициенты можно подавать на DSP блоки.
Что будет на выходе.
При умножении 18-битного целого на число с фиксированной точкой 1.17 результат будет 19.17, т.е. у нас 19 разрядов целой части числа и 17 дробной части. После суммирований результатов умножений ничего не изменяется и младшие 17 разрядов по-прежнему дробная часть.
Собственно и всё. Дальше результат можно округлить и оставить столько разрядов сколько нужно.
Надеюсь, не слишком туманно выразился.

В качестве простенькой программки расчёта КИХ фильтров могу предложить Iowa Hills FIR Filter Designer, коэффициенты можно получить за несколько кликов мышкой и в ней же увидеть характеристики фильтра.
Скачать можно здесь:
http://www.iowahills.com/8DownloadPage.html
http://www.iowahills.com/5FIRFiltersPage.html
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- go2winner   Задача   Apr 11 2016, 10:40
- - des00   Matlab -> Simulink -> simple QPSK modem (fil...   Apr 11 2016, 10:58
|- - Maverick   дополню des00 раздел HDL здесь можно найти готовы...   Apr 11 2016, 11:36
- - Vascom   И делай всё в целых числах, не нужны тут дробные ч...   Apr 11 2016, 13:52
- - bogaev_roman   Цитата(go2winner @ Apr 11 2016, 13:40) В ...   Apr 11 2016, 14:10
- - go2winner   Немного не в тему(мой сл. вопрос).....но все же. В...   Apr 12 2016, 13:15
- - Vascom   Без комментариев к картинкам - ни чего не понятно....   Apr 12 2016, 13:42
- - Tausinov   вот скриптик для наглядности Кодclose all clear c...   Apr 12 2016, 16:30
|- - Maverick   Цитата(Tausinov @ Apr 12 2016, 19:30) Ц...   Apr 12 2016, 18:20
- - go2winner   Графики и пояснения исправлю завтра и коды прикреп...   Apr 13 2016, 13:07
- - go2winner   Проблема оказалась в том, что коэффициенты как-то ...   Apr 14 2016, 09:17
- - Koluchiy   Полуофф. А почему ПЛИСы? А не ЦСП.   Apr 14 2016, 12:27
|- - agregat   Цитата(Koluchiy @ Apr 14 2016, 15:27) А н...   Apr 15 2016, 05:52
- - Xln   ЦитатаПроблема оказалась в том, что коэффициенты к...   Apr 14 2016, 22:29


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

 


RSS Текстовая версия Сейчас: 21st August 2025 - 16:32
Рейтинг@Mail.ru


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