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

детектор двоичной псевдослучайной последовательности VHDL

Требуется детектор двоичной псевдослучайной последовательности. На вход поседовательность и тактовый сигнал. Два выхода: корреляция ("1" - положительная корреляция, "0" - отрицательная корреляция), и выход обнаружения сигнала ("1" - есть сигнал, "0" - нет сигнала). Видел схему на сдвиговом регистре, разрядностью равной длина ПСП, но эта схема жадная на триггеры (для последовательности 127 бит нужно 127 триггеров). Есть другие варианты, схем и (желательно) описание на VHDL?

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


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

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

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


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

Требуется детектор двоичной псевдослучайной последовательности. На вход поседовательность и тактовый сигнал. Два выхода: корреляция ("1" - положительная корреляция, "0" - отрицательная корреляция), и выход обнаружения сигнала ("1" - есть сигнал, "0" - нет сигнала). Видел схему на сдвиговом регистре, разрядностью равной длина ПСП, но эта схема жадная на триггеры (для последовательности 127 бит нужно 127 триггеров). Есть другие варианты, схем и (желательно) описание на VHDL?

Если двоичная последовательность не быстрая, то можно сделать обработку на битовом процессоре или несколько обработчиков соединить последовательно....

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


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

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

И переплюнуть по ресурсам те самые 127 триггеров, которые так экономит ТС! :bb-offtopic:

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


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

Можно

 

1. Если известны

- время возможного начала последовательности (передатчик и передатчик синхронизированы. например, есть сигнал начала кадра)

- генератор для ПСП (его можно задать таблично)

Тогда СФ преобразуется в корреляционный приемник.

 

2. Обрабатывать ПСП не "в целом", а по частям. В этом случае ухудшатся показатели помехоустойчивости.

 

А вообще по поводу ресурсов идея очень простая: "нет денег - в кабак не ходи".

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


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

И переплюнуть по ресурсам те самые 127 триггеров, которые так экономит ТС! :bb-offtopic:

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

Частота ПШС и записи в память x, частота чтения и обработки ПШС из памяти 128*x (вторая получается из первой). Формирование адреса записи - 7 триггеров, чтения - 7 триггеров, сохранения промежуточного результата - 1 триггер, плюс допобвязка - рассчитывать времени нет. Данные циклически пишутся в память, формируется импульс, по которому данные на считывание из памяти валидны и также считываются циклически, но на другой частоте. Т.е. условно на первой итерации записался новый бит, а на оставшихся 127 происходит последовательное считывание всех значений и сравнение их с эталоном. Считали первое значение и сравнили его с эталоном, а результат записали в триггер. Считали второе значение - сравнили его с новым эталоном и значением предыдущего сравнения - записали в триггер. Ну и т.д., на 128 такте (нулевом), считали значение из триггера на выход, и его обнулили для следующих сравнений.

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

Выигрыш для одного канала с ПШС 127 - небольшой, но если каналов много и ПШС гораздо больше, то отличия будут гораздо существеннее.

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


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

А если частоты большие, например, 62.5 или 125 МГц? Шуровать последовательно на более высокой частоте будет сложно :)

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


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

А если частоты большие, например, 62.5 или 125 МГц? Шуровать последовательно на более высокой частоте будет сложно :)

:biggrin: смотреть мое первое сообщение. Использовать большее кол-во банок и два порта по чтению, если таковые имеются. Я просто сделал предположение и реальных условий не знаю. Вообще не могу предположить, в каком случае требуется найти факт "полностью совпала", обычно ищется значение и сравнивается с динамичным порогом. А так на вопросы Fat Robot ответил.

:bb-offtopic:

И да, что делать если требуется жестко помехоустойчивый, помехозащищенный канал связи с базой ПШС 16384 и выше, причем есть какой-нить эффект доплера и частота приемника и передатчика плывут (там уже таких фильтров несколько потребуется) - вешаться сразу?

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


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

А если частоты большие, например, 62.5 или 125 МГц? Шуровать последовательно на более высокой частоте будет сложно

Нет, гораздо меньше. Последовательность несинхронизирована, и это главная проблема. Синхронизация по методу зачетного отрезка, как было замечено выше, ухудшаеться помехоустойчивость.

Метод последовательной обработки, как предложил bogaev_roman, тоже приходил в голову, но стоит ли огород городить? Метод сдвигового регистра простой быстрый , а метод циклической обработки сложный, более критичен по времени. Похоже, подберу ПЛИС для варианта со сдвиговым регистром.

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


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

Извините за оффтоп, а что значит несинхронизирована? Т.е. на вход идет только ПСП, а проверка идет на внутренней частоте или вместе с ПСП идет ее синхронизирующая частота, а уже вся остальная логика работает на внутренней?

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


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

Извините за оффтоп, а что значит несинхронизирована? Т.е. на вход идет только ПСП, а проверка идет на внутренней частоте или вместе с ПСП идет ее синхронизирующая частота, а уже вся остальная логика работает на внутренней?

На вход ПСП и синхронизирующая частота.

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


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

На вход ПСП и синхронизирующая частота.

Тогда можете попробовать то, что предлагал Fat Robot, если это Вам это подходит. На передатчике делаете ПСП генератор и по началу кадра его запускаете. На приемнике ставите такой же ПСП генератор (работает на приемной частоте) и его запускаете также по началу кадра, далее пересинхронизация. Тут, правда, встает вопрос о начале кадра и возможности пересинхронизации...

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


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

Написал коррелятор на 8-битном сдвиговом регистре. Вход тактовая частота, сигнал. Выход : значение корреляционной функции (5 бит, старший знак) + 0-й бит сдвигового регистра, для возможного расширения. Опорная последовательнось подается на параллельный вход. Среда ise WebPack, ПЛИС xc95288.

Результаты:

Macrocells : 84

terms : 971

Register : 8

Functional Block 284

 

То есть я ошибся в предположении, что схема будет жадной до регистров, функциональные блоки закончаться раньше. Я испоьзовал в большинстве блоков параллельные операторы. В связи с этим вопрос по VHDL. Можно ли сэкономить функциональные блоки, за счет использования последовательных опреаторов, вместо параллельных?

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


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

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

Обычно параллельные операторы, кроме вставки компонента, это описание эквивалентных последовательных операторов.

Их любят за то, что они имеют несколько сокращенную запись.

Поэтому такие операторы дают один и тот же объем оборудования.

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


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

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

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

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

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

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

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

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

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

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