Перейти к содержанию
    

деление больших чисел

Всем доброго времени суток,

возникла необходимость выполнить операцию деления двух больших чисел порядка 80 бит на 80 бит.

Если точнее, то это необходимость возникла скорее из-за того, что я не могу придумать другого решения задачи:

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

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

u*x/sigma^2, где u- матожидание логической единицы, sigma^2 - дисперсия, x - само значение текущее.

величины u, x примерно 40бит каждая,

величина sigma^2 примерно 80 бит.

 

вход декодера - это число с фиксированной точкой (2..5 бита на целую часть и 1..4 бита на дробную).

 

получается что надо делить 80 бит на 80 бит если в тупую. но мне кажется как то можно более просто сделать, но не могу пока придумать как.

 

числа такой большой разрядности получаются из-за: I,Q 20 битные, а после частотного дискриминатора (операция I*Qdelayed - Q*Idelayed) разрядность уже 40 бит.

 

помогите плиз=)

заранее благодарю

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

зачем вам сигнал с такой разрядностью, для ЧМ 8 бит "за глаза" хватит, С/Ш вашего сигнала скорее всего гораздо меньше, чем ДД 8-ми разрядного квантователя. Кроме того, посмотрите даташиты на фирменные декодеры, там разрядность выше 8-ми бит не используется, т.к. в этом нет никакого практического смысла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Некоторые реализации декодеров не чувствительны к масштабированию;

2) Декодеры которые я делал хавали 6-бит сигнал с I Q после АРУ;

3) Моделирование показало, что в заданных режимах работы поправка от дисперсии незначительна.

 

Делитель слишком замедлит работу...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

зачем вам сигнал с такой разрядностью, для ЧМ 8 бит "за глаза" хватит, С/Ш вашего сигнала скорее всего гораздо меньше, чем ДД 8-ми разрядного квантователя. Кроме того, посмотрите даташиты на фирменные декодеры, там разрядность выше 8-ми бит не используется, т.к. в этом нет никакого практического смысла.

Давайте представим так, есть два 14-разрядных АЦП (I и Q). То есть сигнал может быть, например, в диапазоне -2 до +2 или -8192 до 8191 (все зависит от дальности передатчика). после частотного дискриминатора: уровень логической единицы может быть как например 4, так и 2^13*2^13 = 67108864. То есть 28 бит. и u*x это 56 бит и sigma^2 это 56 бит. О каких 8 битах Вы говорите? ведь в данном случае чем больше ДД ацп, тем больше дальность можно получить.

 

вот на входе декодера действительно нужно немного (до 9 бит).

 

1) Некоторые реализации декодеров не чувствительны к масштабированию;

2) Декодеры которые я делал хавали 6-бит сигнал с I Q после АРУ;

3) Моделирование показало, что в заданных режимах работы поправка от дисперсии незначительна.

 

Делитель слишком замедлит работу...

сейчас буду моделировать...

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давайте представим так, есть два 14-разрядных АЦП (I и Q). То есть сигнал может быть, например, в диапазоне -2 до +2 или -8192 до 8191 (все зависит от дальности передатчика). после частотного дискриминатора: уровень логической единицы может быть как например 4, так и 2^13*2^13 = 67108864. То есть 28 бит. и u*x это 56 бит и sigma^2 это 56 бит. О каких 8 битах Вы говорите? ведь в данном случае чем больше ДД ацп, тем больше дальность можно получить.

 

1) Биты с шумом предусилителя я бы сразу отбросил;

2) Если вы собрались делать АРУ цифровым, то раз сигнал слабый, то вырезаете не старшие 8 бит, а средние...

3) Я не знаю как ведёт себя ядро зайлинкса, но большая разрядность требует больших ресурсов вполне может быть экспоненциального роста (+1 разряд = удвоение ресурсов) а прирост исправляющей способности никакой.

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

Изменено пользователем Mogwaika

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Биты с шумом предусилителя я бы сразу отбросил;

2) Если вы собрались делать АРУ цифровым, то раз сигнал слабый, то вырезаете не старшие 8 бит, а средние...

3) Я не знаю как ведёт себя ядро зайлинкса, но большая разрядность требует больших ресурсов вполне может быть экспоненциального роста (+1 разряд = удвоение ресурсов) а прирост исправляющей способности никакой.

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

1)согласен

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

3)это вообще то да, в скляре или прокисе говорилось что для мягких решений 3 бита надо, а все что больше дает прирост 0.2дБ в пределе если память мне не изменяет. в общем да, надо получить эти три бита. а они - это частное от деления, и сократить разрядности делимого и делителя можно либо слежением за ними либо ? видимо придется следить.

4)да это я понимаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

3)это вообще то да, в скляре или прокисе говорилось что для мягких решений 3 бита надо, а все что больше дает прирост 0.2дБ в пределе если память мне не изменяет. в общем да, надо получить эти три бита. а они - это частное от деления, и сократить разрядности делимого и делителя можно либо слежением за ними либо ? видимо придется следить.

 

2) что-то мне подсказывает, что так не делают, ну да ладно...

3) 3 бита это всего 8 умножителей и компараторов... (или даже сумматоров или сдвигателе вместо умножителей)

Изменено пользователем Mogwaika

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2) что-то мне подсказывает, что так не делают, ну да ладно...

3) 3 бита это всего 8 умножителей и компараторов... (или даже сумматоров или сдвигателе вместо умножителей)

так как по Вашему делают? я понимаю что это плохое решение

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Даже самого простого АРУ будет достаточно, чтобы обрабатывать ЧМ, нежели "двигать" эти громоздкие комбинации битов. Это, все-таки, не КАМ, где необходима линейная АРУ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так как по Вашему делают? я понимаю что это плохое решение

Я думаю делают малошумящий предусилитель а потом усилитель с переменным показателем усиления.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

80 бит для ЧМ не имеет никакого смысла. Надо перевести в некую условно плавающую точку с 8... 10 бит мантисса. Высчитать порядок и округлить результат. Такой формат очень просто делить. Нужен делитель на 16... 20 бит и вычитатель.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...