Fenolftalein 0 11 сентября, 2012 Опубликовано 11 сентября, 2012 · Жалоба Требуется детектор двоичной псевдослучайной последовательности. На вход поседовательность и тактовый сигнал. Два выхода: корреляция ("1" - положительная корреляция, "0" - отрицательная корреляция), и выход обнаружения сигнала ("1" - есть сигнал, "0" - нет сигнала). Видел схему на сдвиговом регистре, разрядностью равной длина ПСП, но эта схема жадная на триггеры (для последовательности 127 бит нужно 127 триггеров). Есть другие варианты, схем и (желательно) описание на VHDL? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 11 сентября, 2012 Опубликовано 11 сентября, 2012 · Жалоба Первое что приходит в голову - если частота очень низкая, то можно попробовать перейти на память вместо триггеров и обработку на более высокой частоте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 11 сентября, 2012 Опубликовано 11 сентября, 2012 · Жалоба Требуется детектор двоичной псевдослучайной последовательности. На вход поседовательность и тактовый сигнал. Два выхода: корреляция ("1" - положительная корреляция, "0" - отрицательная корреляция), и выход обнаружения сигнала ("1" - есть сигнал, "0" - нет сигнала). Видел схему на сдвиговом регистре, разрядностью равной длина ПСП, но эта схема жадная на триггеры (для последовательности 127 бит нужно 127 триггеров). Есть другие варианты, схем и (желательно) описание на VHDL? Если двоичная последовательность не быстрая, то можно сделать обработку на битовом процессоре или несколько обработчиков соединить последовательно.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Александр77 1 11 сентября, 2012 Опубликовано 11 сентября, 2012 · Жалоба Первое что приходит в голову - если частота очень низкая, то можно попробовать перейти на память вместо триггеров и обработку на более высокой частоте. И переплюнуть по ресурсам те самые 127 триггеров, которые так экономит ТС! :bb-offtopic: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 12 сентября, 2012 Опубликовано 12 сентября, 2012 · Жалоба Можно 1. Если известны - время возможного начала последовательности (передатчик и передатчик синхронизированы. например, есть сигнал начала кадра) - генератор для ПСП (его можно задать таблично) Тогда СФ преобразуется в корреляционный приемник. 2. Обрабатывать ПСП не "в целом", а по частям. В этом случае ухудшатся показатели помехоустойчивости. А вообще по поводу ресурсов идея очень простая: "нет денег - в кабак не ходи". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 12 сентября, 2012 Опубликовано 12 сентября, 2012 · Жалоба И переплюнуть по ресурсам те самые 127 триггеров, которые так экономит ТС! :bb-offtopic: А что переплевывать, я ж не знаю, что за плис и т.д., но если много свободных банок памяти, почему бы их не задействовать? Частота ПШС и записи в память x, частота чтения и обработки ПШС из памяти 128*x (вторая получается из первой). Формирование адреса записи - 7 триггеров, чтения - 7 триггеров, сохранения промежуточного результата - 1 триггер, плюс допобвязка - рассчитывать времени нет. Данные циклически пишутся в память, формируется импульс, по которому данные на считывание из памяти валидны и также считываются циклически, но на другой частоте. Т.е. условно на первой итерации записался новый бит, а на оставшихся 127 происходит последовательное считывание всех значений и сравнение их с эталоном. Считали первое значение и сравнили его с эталоном, а результат записали в триггер. Считали второе значение - сравнили его с новым эталоном и значением предыдущего сравнения - записали в триггер. Ну и т.д., на 128 такте (нулевом), считали значение из триггера на выход, и его обнулили для следующих сравнений. На самом деле алгоритмически получится тот же самый сдвиговый регистр, но сдвиг будет реализовываться циклическим изменением адреса, а вычисление результата не одновременной проверкой всех значений его с эталоном, а последовательно на более высокой частоте с сохранением промежуточных результатов. Выигрыш для одного канала с ПШС 127 - небольшой, но если каналов много и ПШС гораздо больше, то отличия будут гораздо существеннее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
spectr 0 12 сентября, 2012 Опубликовано 12 сентября, 2012 · Жалоба А если частоты большие, например, 62.5 или 125 МГц? Шуровать последовательно на более высокой частоте будет сложно :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 12 сентября, 2012 Опубликовано 12 сентября, 2012 · Жалоба А если частоты большие, например, 62.5 или 125 МГц? Шуровать последовательно на более высокой частоте будет сложно :) смотреть мое первое сообщение. Использовать большее кол-во банок и два порта по чтению, если таковые имеются. Я просто сделал предположение и реальных условий не знаю. Вообще не могу предположить, в каком случае требуется найти факт "полностью совпала", обычно ищется значение и сравнивается с динамичным порогом. А так на вопросы Fat Robot ответил. :bb-offtopic: И да, что делать если требуется жестко помехоустойчивый, помехозащищенный канал связи с базой ПШС 16384 и выше, причем есть какой-нить эффект доплера и частота приемника и передатчика плывут (там уже таких фильтров несколько потребуется) - вешаться сразу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fenolftalein 0 12 сентября, 2012 Опубликовано 12 сентября, 2012 · Жалоба А если частоты большие, например, 62.5 или 125 МГц? Шуровать последовательно на более высокой частоте будет сложно Нет, гораздо меньше. Последовательность несинхронизирована, и это главная проблема. Синхронизация по методу зачетного отрезка, как было замечено выше, ухудшаеться помехоустойчивость. Метод последовательной обработки, как предложил bogaev_roman, тоже приходил в голову, но стоит ли огород городить? Метод сдвигового регистра простой быстрый , а метод циклической обработки сложный, более критичен по времени. Похоже, подберу ПЛИС для варианта со сдвиговым регистром. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 12 сентября, 2012 Опубликовано 12 сентября, 2012 · Жалоба Извините за оффтоп, а что значит несинхронизирована? Т.е. на вход идет только ПСП, а проверка идет на внутренней частоте или вместе с ПСП идет ее синхронизирующая частота, а уже вся остальная логика работает на внутренней? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fenolftalein 0 13 сентября, 2012 Опубликовано 13 сентября, 2012 · Жалоба Извините за оффтоп, а что значит несинхронизирована? Т.е. на вход идет только ПСП, а проверка идет на внутренней частоте или вместе с ПСП идет ее синхронизирующая частота, а уже вся остальная логика работает на внутренней? На вход ПСП и синхронизирующая частота. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 13 сентября, 2012 Опубликовано 13 сентября, 2012 · Жалоба На вход ПСП и синхронизирующая частота. Тогда можете попробовать то, что предлагал Fat Robot, если это Вам это подходит. На передатчике делаете ПСП генератор и по началу кадра его запускаете. На приемнике ставите такой же ПСП генератор (работает на приемной частоте) и его запускаете также по началу кадра, далее пересинхронизация. Тут, правда, встает вопрос о начале кадра и возможности пересинхронизации... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fenolftalein 0 15 сентября, 2012 Опубликовано 15 сентября, 2012 · Жалоба Написал коррелятор на 8-битном сдвиговом регистре. Вход тактовая частота, сигнал. Выход : значение корреляционной функции (5 бит, старший знак) + 0-й бит сдвигового регистра, для возможного расширения. Опорная последовательнось подается на параллельный вход. Среда ise WebPack, ПЛИС xc95288. Результаты: Macrocells : 84 terms : 971 Register : 8 Functional Block 284 То есть я ошибся в предположении, что схема будет жадной до регистров, функциональные блоки закончаться раньше. Я испоьзовал в большинстве блоков параллельные операторы. В связи с этим вопрос по VHDL. Можно ли сэкономить функциональные блоки, за счет использования последовательных опреаторов, вместо параллельных? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aser 0 15 сентября, 2012 Опубликовано 15 сентября, 2012 · Жалоба Вопрос по VHDL. Можно ли сэкономить функциональные блоки, за счет использования последовательных опреаторов, вместо параллельных? Обычно параллельные операторы, кроме вставки компонента, это описание эквивалентных последовательных операторов. Их любят за то, что они имеют несколько сокращенную запись. Поэтому такие операторы дают один и тот же объем оборудования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться