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

 
 
 
Reply to this topicStart new topic
> Много сравнений или округление, Вопрос по реализации
Alex_AZ
сообщение Sep 20 2007, 03:58
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 26-07-07
Из: Челябинск
Пользователь №: 29 374



Есть набор значений амплитуд, которые может принимать сигнал на передающей стороне. На приемной стороне нужно определить амплитуду отправленного сигнала (в канале, разумеется, есть шум). Оцифровка на приемной стороне - 6 бит. Сделал на VHDL определение амплитуды как кучу сравнений. Но такой вариант реализации не кажется мне красивым. Вопрос - можно урезать ли как-нибудь разрядность оцифровки входного сигнала(с учетом отброшенных бит), чтобы сразу сопоставить значение оцифровки номеру отправленного сигнала.
Один из вариантов наборов сигналов
№ Код Десятичное значение
1 001100 12
2 010010 18
3 110110 -12
4 101110 -18
На первый взгляд можно обойтись первыми двумя битами, но тогда граница будет установлена неверно - вместо 14 граничным значением будет 16. Как эту вещь правильно округлить, может есть какие-нибудь алгоритмы?
Go to the top of the page
 
+Quote Post
Oldring
сообщение Sep 20 2007, 05:49
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



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


Если требуется точная таблица, а не примерная - пишите именно в виде сравнений и дайте синтезатору это соптимизировать. Он сам с этим наверняка справится лучше.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
petrov
сообщение Sep 20 2007, 10:44
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Конечно округление. Смотрите как в модельках QAM сделано: http://electronix.ru/forum/index.php?showtopic=23652
Go to the top of the page
 
+Quote Post
Alex_AZ
сообщение Sep 21 2007, 03:03
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 26-07-07
Из: Челябинск
Пользователь №: 29 374



Плиз, если не трудно, можно описание этих моделек или ссылки на использованные для этого алгоритмы. Тяжело разбираться в моделях, когда не знаешь, что для чего предназначено.
Go to the top of the page
 
+Quote Post
alex_os
сообщение Sep 21 2007, 05:40
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(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, затем младшие биты отбрасываете.


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Alex_AZ
сообщение Sep 21 2007, 06:03
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 26-07-07
Из: Челябинск
Пользователь №: 29 374



Да, с граничным значением ошибся =), бывает.

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

Мне нужно декодировать сигналы от QPSK до QAM-64, отнормированные по средней мощности к мощности сигнала QPSK.
Сейчас проблема вроде бы решена с помощью умножителей(для обратной нормировки) и демаппера по целой части, демо-модели DVB-T в Матлабе 2006, и модели petrov'а. Всем большое спасибо за советы.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 04:31
Рейтинг@Mail.ru


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