Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Определение начала передачи сигнала
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
ikolmakov
Здравствуйте!

Жизнь заставила заняться изучением DSP для решения практической задачи.
В книгах которые я полистал (Скляр, Прокис) везде рассматривается задача с позиции, что полезный сигнал уже передается и надо только определить что пришло - "0" или "1". Но я не нашел алгоритма вычисления порога, при превышении которого собственно имеет смысл производить обработку сигнала. Или задача решается просто исходя из оценки возможного минимального уровня полезного сигнала?

В связи с этим интересует также алгоритм управления регулируемым усилителем (VGA) перед АЦП. Как выбирается его начальное состояние?

Заранее спасибо!
Serg76
Цитата(ikolmakov @ Jan 25 2009, 23:40) *
Здравствуйте!

Жизнь заставила заняться изучением DSP для решения практической задачи.
В книгах которые я полистал (Скляр, Прокис) везде рассматривается задача с позиции, что полезный сигнал уже передается и надо только определить что пришло - "0" или "1". Но я не нашел алгоритма вычисления порога, при превышении которого собственно имеет смысл производить обработку сигнала. Или задача решается просто исходя из оценки возможного минимального уровня полезного сигнала?

В связи с этим интересует также алгоритм управления регулируемым усилителем (VGA) перед АЦП. Как выбирается его начальное состояние?

Заранее спасибо!

Решение о начале и конце пакета принимается системой АРУ. Можно использовать две системы АРУ - быструю (вычисляет мгновенное значение мощности сигнала) и медленную (вычисляет среднее значение мощности сигнала) и по разности этих значений принимать решение о начале/конце пакета.
DMax
Часто для определения начала сигнала используется синхропоследовательность или преамбула. То есть в сингнале постоянно ищется синхропоследовательность, и как только она найдена, начинается демодуляция полезных данных. Какими методами происходит поиск синхропоследовательности - зависит от протокола.
petrov
Цитата(DMax @ Jan 26 2009, 11:27) *
Часто для определения начала сигнала используется синхропоследовательность или преамбула. То есть в сингнале постоянно ищется синхропоследовательность, и как только она найдена, начинается демодуляция полезных данных. Какими методами происходит поиск синхропоследовательности - зависит от протокола.


Сигнала нет, АРУ вытаскивает шумы, преамбула ищется по шумам, рано или поздно будет шумовая реализация похожая на преамбулу, что делать?
Pathfinder
Цитата
Сигнала нет, АРУ вытаскивает шумы, преамбула ищется по шумам, рано или поздно будет шумовая реализация похожая на преамбулу, что делать?

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

Цитата
Решение о начале и конце пакета принимается системой АРУ. Можно использовать две системы АРУ - быструю (вычисляет мгновенное значение мощности сигнала) и медленную (вычисляет среднее значение мощности сигнала) и по разности этих значений принимать решение о начале/конце пакета.

А если быстрое замирание?

Цитата
В книгах которые я полистал (Скляр, Прокис) везде рассматривается задача с позиции, что полезный сигнал уже передается и надо только определить что пришло - "0" или "1". Но я не нашел алгоритма вычисления порога, при превышении которого собственно имеет смысл производить обработку сигнала. Или задача решается просто исходя из оценки возможного минимального уровня полезного сигнала?

В идеале должна решаться статистическая задача синтеза алгоритма совместного обнаружения и оценивания сигнала. В ходе её решения нужно задаться некоторыми допустимыми значениями вероятности пропуска пакета и ложного срабатывания. Поскольку она решается значительно проще, если сигнал известен, для этой цели как правило используют преамбулу. Советую глянуть книжку Ю.Г. Сосулин - Теоретические основы радиолокации и радионавигации, хотя бы мельком...
petrov
Цитата(Pathfinder @ Jan 26 2009, 13:45) *
Независимо от того, каким способом определяется начало пакета, всегда есть вероятность ложного срабатывания и вероятность пропуска. Нужно просто соотношение между ними выбирать таким, чтобы оно было допустимо для данной системы.


Согласен. Это касается не только преамбул но и любых других критериев качества сигнала. Единственный способ уменьшения вероятности ложного срабатывания и вероятности пропуска это увеличение временного окна по которому производится оценка, что может вступать в противоречие с желанием сделать пакеты как можно короче. И ещё если всётаки происходит ложное срабатывание то демодулятор не должен впадать в ступор, требующий например внешнего сброса.

Цитата(Pathfinder @ Jan 26 2009, 13:45) *
А если быстрое замирание?


И не только, например мощный соседний канал может так же производить обмен пакетами, и данный критерий так же будет цепляться не за свои пакеты.
Serg76
Цитата(petrov @ Jan 26 2009, 14:17) *
И не только, например мощный соседний канал может так же производить обмен пакетами, и данный критерий так же будет цепляться не за свои пакеты.

АРУ можно поставить после ресамплера (Дециматор+ФНЧ) тогда помеха по соседнему каналу не страшна, а система из двух АРУ может срабатывать на длительности порядка 10 тактов.
petrov
Цитата(Serg76 @ Jan 26 2009, 18:34) *
АРУ можно поставить после ресамплера (Дециматор+ФНЧ) тогда помеха по соседнему каналу не страшна, а система из двух АРУ может срабатывать на длительности порядка 10 тактов.


Фильтр не бесконечное подавление имеет, мощный соседний канал вполне может превышать уровень шума приёмника на выходе фильтра основной селекции или вообще слабый сигнал от удалённого передатчика работающего на этой же частоте в отсутствие полезного сигнала также может вызывать срабатывание этого критерия.
Serg76
Цитата(petrov @ Jan 26 2009, 19:03) *
Фильтр не бесконечное подавление имеет, мощный соседний канал вполне может превышать уровень шума приёмника на выходе фильтра основной селекции или вообще слабый сигнал от удалённого передатчика работающего на этой же частоте в отсутствие полезного сигнала также может вызывать срабатывание этого критерия.

Тогда как же быть?
petrov
Цитата(Serg76 @ Jan 26 2009, 19:34) *
Тогда как же быть?


Pathfinder выше писал. После основной селекции и АРУ ищем согласованным фильтром известную последовательность с хорошей автокорреляционной функцией, обспечивающей заданные вероятности ложной тревоги и пропуска, как только обнаружили, демодулируем и мониторим качество сигнала в течении достаточного времени, чтобы уже с высокой степенью достоверности сказать нужный сигнал это или нет.
Serg76
Цитата(petrov @ Jan 26 2009, 20:27) *
Pathfinder выше писал. После основной селекции и АРУ ищем согласованным фильтром известную последовательность с хорошей автокорреляционной функцией, обспечивающей заданные вероятности ложной тревоги и пропуска, как только обнаружили, демодулируем и мониторим качество сигнала в течении достаточного времени, чтобы уже с высокой степенью достоверности сказать нужный сигнал это или нет.

А если сигнал без установочной синхропоследовательности или после пропадания вследствие все тех-же замираний.
ikolmakov
Цитата
Советую глянуть книжку Ю.Г. Сосулин - Теоретические основы радиолокации и радионавигации, хотя бы мельком...


Спасибо! Посмотрю.
Михаил_K
Вопрос к автору топика. А о каком все-же сигнале идет речь. О непрерывном или пакетном?
petrov
Цитата(Serg76 @ Jan 26 2009, 22:44) *
А если сигнал без установочной синхропоследовательности...


Как тогда его демодулировать?


Цитата(Serg76 @ Jan 26 2009, 22:44) *
...или после пропадания вследствие все тех-же замираний.


С замираниями борятся разносом по времени, частоте и пространству. Можно например увеличить длительность преамбулы.
Serg76
2petrov
Демодулировать с использованием устройств быстрого вхождения в синхронизм по несущей и тактам
petrov
Цитата(Serg76 @ Jan 27 2009, 18:55) *
Демодулировать с использованием устройств быстрого вхождения в синхронизм по несущей и тактам


Это не исключает задачи определения того что мы демодулируем сигнал а не шум и помехи. Конечно же это можно сделать например по уровню гармоники символьной частоты на выходе символьного синхронизатора, но это будет дольше по сравнению с обнаружением хорошей псевдослучайной последовательности при тех же вероятностях и менее помехоустойчиво(опять же легче зацепиться за левый сигнал). Кроме того потребуется память для сигнала на время задержки в фильтре символьного синхронизатора, а также всёравно потребуется известная последовательность для определения начала данных, также нужна будет преамбула в начале для настройки АРУ.
Serg76
Цитата(petrov @ Jan 27 2009, 21:22) *
Это не исключает задачи определения того что мы демодулируем сигнал а не шум и помехи. Конечно же это можно сделать например по уровню гармоники символьной частоты на выходе символьного синхронизатора, но это будет дольше по сравнению с обнаружением хорошей псевдослучайной последовательности при тех же вероятностях и менее помехоустойчиво(опять же легче зацепиться за левый сигнал). Кроме того потребуется память для сигнала на время задержки в фильтре символьного синхронизатора, а также всёравно потребуется известная последовательность для определения начала данных, также нужна будет преамбула в начале для настройки АРУ.

Можно использовать многопроходные алгоритмы. Сначала грубо выделить пакет при первом проходе а затем уже в нем окончательно устанить все неоднозначности по тактам, несущей и уровню сигнала. Правда при этом возникнет некоторая задержка.
Pathfinder
Serg76,
Можно отказаться от преамбул, можно отказаться от известной тактовой частоты и сигнального импульса. Даже вид модуляции можно считать неизвестным. Но чем меньше известных параметров, тем выше вычислительная ресурсоёмкость (при сравнимой статистической эффективности), причём рост даже не в геометрической прогрессии, а гораздо быстрее. Попробуйте, к примеру, определить амплитуду КАМ сигнала, не имея преамбулы? Кроме того, граница Рао-Крамера тоже сдвигается вверх по мере увеличения числа неопределённостей, так что далеко не всегда вообще возможно реализовать "беспреамбульный" алгоритм, сравнимый по эффективности с "преамбульным". Поэтому пока в большинстве случаев оказывается проще добавить преамбулу, решив тем самым кучу проблем.
С другой стороны, подвижки в направлении "беспреамбульных" алгоритмов есть, и при том довольно давно и достаточно активные. Не думаю, что их будут применять в модемах, но вот для контрольно-измерительного оборудования это очень полезная функция.
Serg76
Цитата(Pathfinder @ Jan 27 2009, 23:09) *
Serg76,
Можно отказаться от преамбул, можно отказаться от известной тактовой частоты и сигнального импульса. Даже вид модуляции можно считать неизвестным. Но чем меньше известных параметров, тем выше вычислительная ресурсоёмкость (при сравнимой статистической эффективности), причём рост даже не в геометрической прогрессии, а гораздо быстрее. Попробуйте, к примеру, определить амплитуду КАМ сигнала, не имея преамбулы? Кроме того, граница Рао-Крамера тоже сдвигается вверх по мере увеличения числа неопределённостей, так что далеко не всегда вообще возможно реализовать "беспреамбульный" алгоритм, сравнимый по эффективности с "преамбульным". Поэтому пока в большинстве случаев оказывается проще добавить преамбулу, решив тем самым кучу проблем.
С другой стороны, подвижки в направлении "беспреамбульных" алгоритмов есть, и при том довольно давно и достаточно активные. Не думаю, что их будут применять в модемах, но вот для контрольно-измерительного оборудования это очень полезная функция.

Не могу с Вами не согласиться, но всегда хочеться достигнуть универсальности, да и не только в этих вопросах. По роду своей деятельности постоянно приходиться сталкиваться с тем, что надо возвращаться к уже разработанной и порой забытой проге и ее модернизировать, чего ужасно не хочется. Поэтому стараюсь сделать один раз и больше к этому вопросу не возвращаться, хотя это как правило трудно и не всегда порой получается rolleyes.gif .
ikolmakov
Цитата(Михаил_K @ Jan 27 2009, 09:56) *
Вопрос к автору топика. А о каком все-же сигнале идет речь. О непрерывном или пакетном?

Сигнал - короткие пакеты несколько раз в секунду.
Михаил_K
Цитата(ikolmakov @ Jan 28 2009, 00:06) *
Сигнал - короткие пакеты несколько раз в секунду.


Тогда в пакеты нужно вводить преамбулу. По ней определять наличие начала передачи, а заодно и синхриться по ней.
leksa
Если стоит такая задача:
Принята последовательность отсчетов, которая представляет собой или (1) белый шум (некоррелированные отсчеты), или смесь некого сигнала, обладающего корреляцией, с белым шумом.
Необходимо определить, что принято: (1) или (2) вариант?
Для решения такой задачи можно использовать алгоритм на основе оценки первых двух отсчетов АКФ принятой последовательности.
Вычисляем первый и второй отсчет АКФ. (для комплексных сигналов нужно вычислить модуль отсчетов АКФ)
Затем вычисляем их отношение P=АКФ[1]/АКФ[0]. Для аддитивного белого шума вычисленное отношение Р стремится к нулю. Для сигнала с большим интервалом корреляции и при больших значениях ОСШ стремится к единице. Порог можно подобрать эмпирически.
Если оцениваются последовательности различной длины, можно сделать порог, зависящим от длины последовательности, так как чем больше длина последовательности, тем точней оценка АКФ.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.