Страница 1 из 1

Блочный перемежитель

Добавлено: 14 апр 2018, 19:16
ortah
Здравствуйте, уважаемые товарищи!
Вот пытаюсь сделать блочный перемежитель. Суть его работы заключается в произвольном перемешивании бит информационного сигнала, с целью устранения идущих подряд нулей или единиц, что уменьшит количество ошибок в случае воздействия помехи. Вот результат моей работы. Проблема в том, что на выходе количество подряд идущих одинаковых символов только увеличилось. Подскажите пожалуйста, как мне это исправить?
Заранее спасибо за советы!

Re: Блочный перемежитель

Добавлено: 14 апр 2018, 22:20
IvanLis
ortah писал(а):Здравствуйте, уважаемые товарищи!
Вот пытаюсь сделать блочный перемежитель. Суть его работы заключается в произвольном перемешивании бит информационного сигнала, с целью устранения идущих подряд нулей или единиц, что уменьшит количество ошибок в случае воздействия помехи. Вот результат моей работы. Проблема в том, что на выходе количество подряд идущих одинаковых символов только увеличилось. Подскажите пожалуйста, как мне это исправить?
Заранее спасибо за советы!
У Вас путаются понятия "скремблирование" и "перемежение", а соответственно цели использования и ожидаемый результат.

Скремблирование делается с целью выравнивания вероятностей появления "0" и "1", но это не значит, что они будут идти строго по порядку (получится меандр). Это позволяет решить ряд проблем, в том числе с рассинхронизацией и потерей энергетики при появлении постоянной составляющей.
Одно из условий скремблирования - без изменения скорости, а реализуется путем наложения ПСП.

Перемежение делается для борьбы с пакетизированными (сгруппированными) ошибками и используются совместно с помехоустойчивым кодированием (иначе смысл теряется).
Например в пакете 16bit в результате помехи были искажены 16bit, тут уже любые помехоустойчивые коды бессильны, но если раскидать эти ошибки равномерно по 16 пакетам (по одной на пакет), то ошибка будет гарантированно исправлена при декодировании.
Делается перемежение тоже без изменения скорости, но реализуется путем организации буфера, например 16*16. В него построчно загоняются 256bit, но а считываются столбцами. На приемном конце выполняется обратная операция.
При этом соотношение и положение "0" и "1" вообще не рассматривается.

Так что из всего, что сейчас сделано в программе мало что пригодится. Переделывайте все заново.
Если Вы замахиваетесь на цифру, то используйте и генератор соответствующий: Digital Pattern Generator (http://zone.ni.com/reference/en-XX/help ... l_pattern/).
Рассмотрение спектра сигнала тут тоже не уместно, по крайней мере в представленной форме.

Re: Блочный перемежитель

Добавлено: 15 апр 2018, 14:34
ortah
IvanLis
Спасибо, теперь стало понятно. Вот попробовал сделать по другому через инструмент MT Block Interleave. В принципе с использованием массивов все получилось. Подскажите пожалуйста, нельзя ли просто преобразовать массивы в цифру? Или нужно переделать с нуля?

Re: Блочный перемежитель

Добавлено: 15 апр 2018, 17:44
IvanLis
ortah писал(а):Подскажите пожалуйста, нельзя ли просто преобразовать массивы в цифру? Или нужно переделать с нуля?
Просто, непросто...
Можно так:
Снимок экрана от 2018-04-15 17-43-22.png