Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Много сравнений или округление
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
Alex_AZ
Есть набор значений амплитуд, которые может принимать сигнал на передающей стороне. На приемной стороне нужно определить амплитуду отправленного сигнала (в канале, разумеется, есть шум). Оцифровка на приемной стороне - 6 бит. Сделал на VHDL определение амплитуды как кучу сравнений. Но такой вариант реализации не кажется мне красивым. Вопрос - можно урезать ли как-нибудь разрядность оцифровки входного сигнала(с учетом отброшенных бит), чтобы сразу сопоставить значение оцифровки номеру отправленного сигнала.
Один из вариантов наборов сигналов
№ Код Десятичное значение
1 001100 12
2 010010 18
3 110110 -12
4 101110 -18
На первый взгляд можно обойтись первыми двумя битами, но тогда граница будет установлена неверно - вместо 14 граничным значением будет 16. Как эту вещь правильно округлить, может есть какие-нибудь алгоритмы?
Oldring
Цитата(Alex_AZ @ Sep 20 2007, 07:58) *
Есть набор значений амплитуд, которые может принимать сигнал на передающей стороне. На приемной стороне нужно определить амплитуду отправленного сигнала (в канале, разумеется, есть шум). Оцифровка на приемной стороне - 6 бит. Сделал на VHDL определение амплитуды как кучу сравнений. Но такой вариант реализации не кажется мне красивым. Вопрос - можно урезать ли как-нибудь разрядность оцифровки входного сигнала(с учетом отброшенных бит), чтобы сразу сопоставить значение оцифровки номеру отправленного сигнала.
Один из вариантов наборов сигналов
№ Код Десятичное значение
1 001100 12
2 010010 18
3 110110 -12
4 101110 -18
На первый взгляд можно обойтись первыми двумя битами, но тогда граница будет установлена неверно - вместо 14 граничным значением будет 16. Как эту вещь правильно округлить, может есть какие-нибудь алгоритмы?


Если требуется точная таблица, а не примерная - пишите именно в виде сравнений и дайте синтезатору это соптимизировать. Он сам с этим наверняка справится лучше.
petrov
Конечно округление. Смотрите как в модельках QAM сделано: http://electronix.ru/forum/index.php?showtopic=23652
Alex_AZ
Плиз, если не трудно, можно описание этих моделек или ссылки на использованные для этого алгоритмы. Тяжело разбираться в моделях, когда не знаешь, что для чего предназначено.
alex_os
Цитата(Alex_AZ @ Sep 20 2007, 07:58) *
Есть набор значений амплитуд, которые может принимать сигнал на передающей стороне. На приемной стороне нужно определить амплитуду отправленного сигнала (в канале, разумеется, есть шум). Оцифровка на приемной стороне - 6 бит. Сделал на VHDL определение амплитуды как кучу сравнений. Но такой вариант реализации не кажется мне красивым. Вопрос - можно урезать ли как-нибудь разрядность оцифровки входного сигнала(с учетом отброшенных бит), чтобы сразу сопоставить значение оцифровки номеру отправленного сигнала.
Один из вариантов наборов сигналов
№ Код Десятичное значение
1 001100 12
2 010010 18
3 110110 -12
4 101110 -18
На первый взгляд можно обойтись первыми двумя битами, но тогда граница будет установлена неверно - вместо 14 граничным значением будет 16. Как эту вещь правильно округлить, может есть какие-нибудь алгоритмы?

Вообще граница между 12 и 18 должна быть 15 smile.gif.
Вариант такой добавляете к 6ти битному входному числу 3, затем младшие биты отбрасываете.
Alex_AZ
Да, с граничным значением ошибся =), бывает.

to alex_os: Вариант интересный, только данные амплитуды сигналов приведены для примера, у реальных разрядность больше.

Мне нужно декодировать сигналы от QPSK до QAM-64, отнормированные по средней мощности к мощности сигнала QPSK.
Сейчас проблема вроде бы решена с помощью умножителей(для обратной нормировки) и демаппера по целой части, демо-модели DVB-T в Матлабе 2006, и модели petrov'а. Всем большое спасибо за советы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.