Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: структура модема при 8psk
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Страницы: 1, 2, 3, 4, 5
Виктор39
разрабатываю модем с 8psk. уже много что испробовал, но пришел к выводу, что нужно в начале определиться со структурой модема, поэтому и обращаюсь к вам, все возможные варианты не протестируешь сам.

имеются следующие исходные данные: тип модуляции - 8psk. символьная скорость - 2400. частота несущей на входе демодулятора 1800 Гц. возможное отклонение входной частоты +- 5%(+- 90Гц). канал - КВ (весьма плохой).

помогите определиться, из каких модулей должен состоять мой демодулятор, и в каком месте каждый модуль должен быть размещен. например, так как достаточно сильное отклонение несущей частоты, скорее всего мне для ее синхронизации не будет достаточно использовать Tanlock по несущей. если это так, то каким образом лучше корректировать несущую(может быть использовать метод возведения в степень)? и в каком месте демодулятора данную синхронизацию стоить делать? до тактовой синхронизации, до эквалайзера или после?
какой эквалайзер будет целесообразней использовать(LMS,RLS,DFE ...)? в каком месте его стоит разместить? до фазовой синхронизации или после и т.д. ? стоит отметить, что для имеющего канала и скорости передачи, максимальная разность лучей составляет примерно 3 символа.
стоит ли использовать фазовую синхронизации и тактовую, или сам эквалайзер способен выполнять данные действия?!
спасибо.
Виктор39
начал с модуля компенсирующего грубую расстройку несущей. возвел входной сигнал в 8 степень. в результате в спектральной области получил центральную частоту, указывающую на частотную расстройку. странно, ее величина отличается от реальной отстройки в 32 раза. я думал, что она должна отличаться в 8 раз.
я понимаю, что для того, чтобы компенсировать расстройку по частоте, я должен входной сигнал умножить на комплексную гармонику найденной частоты. вопрос в следующем: каким образом находить эту максимальную гармонику? каким образом определить частоту этой максимальной гармоники(Fmax) и ее знак, чтобы далее сделать следующее sigIn*exp(1i*2*pi*Fmax/32)?
Serg76
Цитата(Виктор39 @ May 16 2013, 11:16) *
начал с модуля компенсирующего грубую расстройку несущей. возвел входной сигнал в 8 степень. в результате в спектральной области получил центральную частоту, указывающую на частотную расстройку. странно, ее величина отличается от реальной отстройки в 32 раза. я думал, что она должна отличаться в 8 раз.
я понимаю, что для того, чтобы компенсировать расстройку по частоте, я должен входной сигнал умножить на комплексную гармонику найденной частоты. вопрос в следующем: каким образом находить эту максимальную гармонику? каким образом определить частоту этой максимальной гармоники(Fmax) и ее знак, чтобы далее сделать следующее sigIn*exp(1i*2*pi*Fmax/32)?

для определения реальной отстройки надо делить на 8, что-то не учитываете. входной сигнал надо умножать не на гармонику, а на реальную отстройку, а определить максимальную гармонику в спектре думаю не сложно, но сначала надо возвести входной комплексный сигнал в 8-ую степень. но любое возведение сильно разгоняет шумовую составляющую и соответственно снижает помехоустойчивость контура ФАПЧ, поэтому может попытаться определить отстройку по преамбуле, в ваших сигналах она наверняка присутствует.
Виктор39
Цитата
для определения реальной отстройки надо делить на 8, что-то не учитываете. входной сигнал надо умножать не на гармонику, а на реальную отстройку, а определить максимальную гармонику в спектре думаю не сложно, но сначала надо возвести входной комплексный сигнал в 8-ую степень. но любое возведение сильно разгоняет шумовую составляющую и соответственно снижает помехоустойчивость контура ФАПЧ, поэтому может попытаться определить отстройку по преамбуле, в ваших сигналах она наверняка присутствует.


как я понимаю, реальная отстройка в сигнале возведенном в 8-ую степень должна отличаться в 8 раз. я так и думал. разберусь как-то с этим. думаю максимальную составляющую спектра стоит искать на ограниченном участке, т.е. если у меня максимальный возможный разнос частоты +-90 Гц, то нужно ее искать в диапазоне от -90*8 - +90*8.
вы пишете, что я должен входной сигнал домножить не на гармонику, а на реальную отстройку, т.е. signal = sigIn*exp(1i*2*pi*F*t), где F - частота максимальной гармоники деленная на 8?. и далее вы пишете, что любое возведение в степень сильно разгоняет шумовую составляющую. но как это будет на меня влиять? ведь возводится в степень сигнал только лишь для обнаружение частотной расстройки, и далее он никуда не следует. фапч же имеет дело непосредственно с входным сигналом с учетом его коректировки, т.е. все с тем же signal = sigIn*exp(1i*2*pi*F*t). расчет расстройки несущей в таком случае можно производить не постоянно, а с каким-то определенным периодом. не думаю, что несущая будет быстро изменятся.
Serg76
Цитата
то нужно ее искать в диапазоне от -90*8 - +90*8.
да, после соответствующего возведения.
Цитата
я должен входной сигнал домножить не на гармонику, а на реальную отстройку, т.е. signal = sigIn*exp(1i*2*pi*F*t), где F - частота максимальной гармоники деленная на 8?
ну вообще-то да
Цитата
любое возведение в степень сильно разгоняет шумовую составляющую. но как это будет на меня влиять?
попробуйте возвести сигнал во 2-ую и 8-ую степень и увидите разницу, при низком соотношении С/Ш в исходном сигнале после его возведения в 8-ую степень нужной вам гармоники может вообще не оказаться, она утонет под шумами. и тоже самое будет касаться системы ФАПЧ, если она будет основана на нелинейности типа 8-ой степени. поэтому я предлагаю вам попробовать синхронизироваться по преамбуле, но все будет зависеть конечно же от ее длины и соотношения С/Ш сигнала.
Виктор39
Цитата
поэтому я предлагаю вам попробовать синхронизироваться по преамбуле, но все будет зависеть конечно же от ее длины и соотношения С/Ш сигнала.


можете сказать, как правильно синхронизироваться по преамбуле? или где об этом детально можно почитать?
Serg76
Цитата(Виктор39 @ May 16 2013, 23:42) *
можете сказать, как правильно синхронизироваться по преамбуле? или где об этом детально можно почитать?

если коротко, то необходимо исходный сигнал перемножить с комплексно-сопряженной преамбулой, тем самым снимается модуляция и остается гармоника отстройки, которую можно определить известными методами (FFT, интерполяция и др.), кое-что обсуждалось на форуме.
Виктор39
Цитата
если коротко, то необходимо исходный сигнал перемножить с комплексно-сопряженной преамбулой, тем самым снимается модуляция и остается гармоника отстройки, которую можно определить известными методами (FFT, интерполяция и др.), кое-что обсуждалось на форуме.


спасибо. идея понятна. сейчас попробую поискать на форуме что-нибудь на эту тему. только вот мне совсем не понятно следующее: первоначальная частотная отстройка, рассчитывается прежде всех остальных синхронизаций. в таком случае каким образом я смогу понять, что во входном сигнале передается преамбула, чтобы в дальнейшем ее перемножить с комплексно-сопряженной преамбулой?! может быть, мне нужно непрерывно делать корреляцию входного сигнала с эталоном преамбулы, таким образом я смогу ее обнаружить? смогу ли я нормально скоррелироваться при имеющихся всевозможных расстройках?
Виктор39
Цитата
если коротко, то необходимо исходный сигнал перемножить с комплексно-сопряженной преамбулой, тем самым снимается модуляция и остается гармоника отстройки, которую можно определить известными методами (FFT, интерполяция и др.), кое-что обсуждалось на форуме.


спасибо. идея понятна. сейчас попробую поискать на форуме что-нибудь на эту тему. только вот мне совсем не понятно следующее: первоначальная частотная отстройка, рассчитывается прежде всех остальных синхронизаций. в таком случае каким образом я смогу понять, что во входном сигнале передается преамбула, чтобы в дальнейшем ее перемножить с комплексно-сопряженной преамбулой?! может быть, мне нужно непрерывно делать корреляцию входного сигнала с эталоном преамбулы, таким образом я смогу ее обнаружить? смогу ли я нормально скоррелироваться при имеющихся всевозможных расстройках?
Serg76
Цитата(Виктор39 @ May 17 2013, 11:17) *
спасибо. идея понятна. сейчас попробую поискать на форуме что-нибудь на эту тему. только вот мне совсем не понятно следующее: первоначальная частотная отстройка, рассчитывается прежде всех остальных синхронизаций. в таком случае каким образом я смогу понять, что во входном сигнале передается преамбула, чтобы в дальнейшем ее перемножить с комплексно-сопряженной преамбулой?! может быть, мне нужно непрерывно делать корреляцию входного сигнала с эталоном преамбулы, таким образом я смогу ее обнаружить? смогу ли я нормально скоррелироваться при имеющихся всевозможных расстройках?

все верно, коррелятором "ловите" преамбулу и затем рассчитываете отстройку. при ваших допустимых расстройках все должно быть ок, хотя точность оценки все еще будет зависеть от длины преамбулы и соотношения С/Ш.
petrov
Цитата(Serg76 @ May 17 2013, 12:31) *
все верно, коррелятором "ловите" преамбулу и затем рассчитываете отстройку. при ваших допустимых расстройках все должно быть ок, хотя точность оценки все еще будет зависеть от длины преамбулы и соотношения С/Ш.


Только не коррелятором, а банком согласованных с преамбулой фильтров.
Serg76
Цитата(petrov @ May 17 2013, 12:00) *
Только не коррелятором, а банком согласованных с преамбулой фильтров.

поясните, что имеется ввиду
petrov
Цитата(Serg76 @ May 17 2013, 13:06) *
поясните, что имеется ввиду


Коррелятор на инвариантен ко времени прихода сигнала.
Виктор39
Цитата
Только не коррелятором, а банком согласованных с преамбулой фильтров.


а можете для меня более подробно объяснить, что это значит?
petrov
Цитата(Виктор39 @ May 17 2013, 13:26) *
а можете для меня более подробно объяснить, что это значит?


Коррелятор состоит из умножителя на один вход которого подаётся входной сигнал, на другой вход сигнал с генератора последовательности, выход умножителя интегрируется. Если фазы прихода сигнала и генератора не совпадают, то никакого пика на выходе не будет. Согласованный фильтр эквивалентен нескольким корреляторам с различными сдвигами фазы генератора, поэтому пик на выходе будет обнаружен. Банк фильтров - это несколько параллельных фильтров со сдвигом по частоте, чтобы обнаруживать перамбулу при частотной отстройке.
Serg76
если Вы имеете ввиду инвариантность ко времени прихода нужной согласованной входной последовательности, то тогда да, корреляцию надо считать на соседних тактах тоже, чтобы определить максимальный выброс из всех. корреляция считается не на несущей частоте, а уже после сноса в 0, т.е. по НЧ, так проще, допустим при 2-х sps. при небольших отстройках по частоте несущей, как я понимаю речь идет о 5-ти процентной расстройке и хорошей преамбуле пик ВКФ будет хорошо присутствовать при любой начальной фазе сигнала, т.к. в конечном итоге для обнаружения нам нужен только модуль корреляционной функции. да, при этом мы не будем точно знать правильную начальную фазу сигнала, т.е. будет присутствовать фазовая неоднозначность, но ее легко устранить потом.

P.S. хотя щас прикинул 5% это может быть и многовато, тогда действительно может понадобиться банк корреляторов, надо пробовать )))))
petrov
Цитата(Serg76 @ May 17 2013, 14:43) *
P.S. хотя щас прикинул 5% это может быть и многовато, тогда действительно может понадобиться банк корреляторов, надо пробовать )))))


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

Коррелятор и согласованный фильтр это разные вещи. Коррелятор не LTI система.
Serg76
да, согласен, правильнее говорить согласованный фильтр, потому как присутствует все-таки операция свертки, да и математические операции строго говоря разные. как-то повелось, что эти два понятия используются как синонимы, хотя это две большие разницы
Виктор39
спасибо за подробные объяснения. хотел бы немного уточнить, или я все правильно понял.

1)как я понимаю, согласованный фильтр, это тот же коррелятор работающий по каждому отсчету(а не по каждому символу) входного сигнала?!
2)преамбулу нужно брать уже снесенную на нулевую частоту, и входной сигнал предварительно тоже сносить на нулевую частоту, и затем только делать свертку для обнаружения пика?!
3)пик обнаруживается только в том случае, если я преамбулу беру в комплексно-сопряженному виде, так и должно быть?
4)будет ли пик обнаруживаться в плохих каналах с большой МСИ?
5)Блок фильтров это сколько фильтров? вручную стоит подбирать в зависимости от максимальной частотной отстройки или как? сколько примерно стоит брать в моем случае?
6)для определения частотной расстройки уже после нахождения пика, свертку входного сигнала и комплексно-сопраженой преамбулы брать уже не на нулевой частоте, а на частоте несущей?
Виктор39
Цитата
если коротко, то необходимо исходный сигнал перемножить с комплексно-сопряженной преамбулой, тем самым снимается модуляция и остается гармоника отстройки, которую можно определить известными методами (FFT, интерполяция и др.)


посоветуйте, плиз, методы определения частоты отстройки по имеющему сигналу, полученному из перемножения комплексно-сопряженной преамбулы и исходного сигнала. дело в том, что метод с FFT достаточно громоздкий, так как требуется много точек. что это за другие методы?!
Serg76
Цитата(Виктор39 @ May 21 2013, 09:11) *
посоветуйте, плиз, методы определения частоты отстройки по имеющему сигналу, полученному из перемножения комплексно-сопряженной преамбулы и исходного сигнала. дело в том, что метод с FFT достаточно громоздкий, так как требуется много точек. что это за другие методы?!

я еще делал через Герцеля, т.е. искал отсчеты в некоторой локальной области частот
Михаил_K
Много тут написали....
Вот лично мой опыт определения расстройки по несущей при помощи преамбулы и согласованного фильтра дал следующее:
при разумной длинне преамбулы (а это как правило в районе нескольких десятков символов) и той разрядной сетке, которую мы используем
(обычно это 12) точно определить несущую не удается даже для чистого сигнала. При наличии же в сигнале шума эта затея становится и вовсе утопической.
Так что не занимайтесь ерундой. Нормальная схема позволяет захватить несущую при расстройках в примерно в 1/20 тактовой частоты (это для ФМ8). Как правило
реальная расстройка частоты меньше (если только сигнал не узкополосный). Ну а если он узкополосный, используйте свипирование по частоте для поиска сигнала.
petrov
Цитата(Михаил_K @ May 21 2013, 14:59) *
Много тут написали....
Вот лично мой опыт определения расстройки по несущей при помощи преамбулы и согласованного фильтра дал следующее:
при разумной длинне преамбулы (а это как правило в районе нескольких десятков символов) и той разрядной сетке, которую мы используем
(обычно это 12) точно определить несущую не удается даже для чистого сигнала. При наличии же в сигнале шума эта затея становится и вовсе утопической.
Так что не занимайтесь ерундой.


Ну что ж плохо раз такая ерунда у вас не получается, только не надо из-за этого такие далеко идущие выводы делать.
fontp
QUOTE (Михаил_K @ May 21 2013, 13:59) *
Много тут написали....
Вот лично мой опыт определения расстройки по несущей при помощи преамбулы и согласованного фильтра дал следующее:
при разумной длинне преамбулы (а это как правило в районе нескольких десятков символов) и той разрядной сетке, которую мы используем
(обычно это 12) точно определить несущую не удается даже для чистого сигнала. При наличии же в сигнале шума эта затея становится и вовсе утопической.
Так что не занимайтесь ерундой. Нормальная схема позволяет захватить несущую при расстройках в примерно в 1/20 тактовой частоты (это для ФМ8). Как правило
реальная расстройка частоты меньше (если только сигнал не узкополосный). Ну а если он узкополосный, используйте свипирование по частоте для поиска сигнала.


Банк фильтров с различной частотной расстройкой, согласованых с преамбулой, отлично работает при Eb/N0 > 3 дб, при длине 32, не то что при шуме квантования. Расстройка может быть любой, как и точность. Все зависит от количества фильтров в банке. Кроме того, на помощь может приходить интерполяция спектра.
Михаил_K
Цитата(fontp @ May 21 2013, 16:52) *
Банк фильтров с различной частотной расстройкой, согласованых с преамбулой, отлично работает при Eb/N0 > 3 дб, не то что при шуме квантования


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

fontp
QUOTE (Михаил_K @ May 21 2013, 15:57) *
Вопрос в том, с какой точностью вы хотите определить частоту, и какая может быть расстройка. Делим возможную расстройку на желаемую точность и получаем кол-во таких банков.
У вас сколько получилось?


Вот столько сколько получилось - столько и поставлю. ))

Кроме того можно сократить число фильтров в 10 раз, проводя интерполяцию спектра в окрестности максимума
при том отношении сигнал/шум, что я написал

Банк фильтров - это вариант реализации. Можно расматривать тот же процесс, как скользящее умножение на преамбулу + дискретное Фурье-преобразование (возможно усеченное, но и с интерполяцией спектра в окрестности максимума) по длине преамбулы (другими словами сигнал умножается на комплексно-сопряженную преамбулу, результат умножается на экспоненты разных частот, суммы для разных частот накапливаются). Обязательно увижу максимум в спектре в правильной временной позиции, если, конечно, умею обнаруживать и отслеживать максимум

Ну там чисто по эмпирическим правилам - чтобы частота пика не прыгала, амплитуда пика постоянно превышала порог, увеличивалась по амплитуде. Как только стала снижаться от максимума - значит прошли истинное положение преамбулы и уже обнаружили не только частотную расстройку, но и начало посылки. Можно начинать демодулировать. (Определение частоты несущей, обычно, сопровождается и определением фазы несущей. ФАПЧ обычно всё равно нужен, но он запускается мгновенно без переходного процесса с правильных значений частоты и фазы ). Конечно, символьную фазу для этого всего лучше заранее знать, чтобы скользить только по возможным правильным положениям преамбулы. Для непрерывного модема, обычно, это не проблема - определить символьную до частотной расстройки. Но можно и не иметь! тогда задача просто становится в 4-8 раз сложнее вычислительно, поскольку в такой постановке нужно делать ДПФ на каждом отсчете АЦП, а не символе. В представлении банка фильтров это еще как бы и полифаза в дополнение к "поличастоте"
Serg76
Цитата(Михаил_K @ May 21 2013, 13:59) *
точно определить несущую не удается даже для чистого сигнала. При наличии же в сигнале шума эта затея становится и вовсе утопической.

Потенциальная точность будет определяться известным пределом Крамера-Рао, который зависит от соотношения С/Ш и длины преамбулы. Так что ничего такого невозможно в этой задаче нет, тем более для чистого синуса.
P.S. про интерполяцию Вам уже написали
Михаил_K
Да нет. Вы видимо мою мысль не совсем верно поняли. Конечно можно сделать и ДПФ, и интерполяцию.
И преамбулу длинной 128 символов. Вопрос-то не в этом. Вопрос в другом. Зачем это нужно в обычном ФМ8 непрерывном демодуляторе?
Serg76
Михаил_K Что тогда означает Ваша фраза:
Цитата(Михаил_K @ May 21 2013, 13:59) *
Вот лично мой опыт определения расстройки по несущей при помощи преамбулы и согласованного фильтра дал следующее:
при разумной длинне преамбулы (а это как правило в районе нескольких десятков символов) и той разрядной сетке, которую мы используем
(обычно это 12) точно определить несущую не удается даже для чистого сигнала. При наличии же в сигнале шума эта затея становится и вовсе утопической.



Да и начало передачи все равно надо "ловить" по преамбуле
petrov
Цитата(Михаил_K @ May 21 2013, 18:18) *
Да нет. Вы видимо мою мысль не совсем верно поняли. Конечно можно сделать и ДПФ, и интерполяцию.
И преамбулу длинной 128 символов. Вопрос-то не в этом. Вопрос в другом. Зачем это нужно в обычном ФМ8 непрерывном демодуляторе?


Вот пример реальной проблемы
http://electronix.ru/forum/index.php?showtopic=106625
fontp
В непрерывном демодуляторе это может оказаться нужным, если большая частотная расстройка несущей
Не делать же увосьмерение фазы с огромными энергетическими потерями, а захват ФАПЧ со свипированием будет происходить очень долго
Михаил_K
Цитата(Serg76 @ May 21 2013, 18:30) *
Михаил_K Что тогда означает Ваша фраза:

то и означает, что с теми преамбулами, с которыми мне доводилось работать - а это 16, 24, 32 символа - никакой нормальной оценки несущей сделать не удалось.
Потому-что поставить столько банков, сколько получилось, а также делать ДПФ, интерполяцию и прочее - не представляется возможным из-за ограниченности оборудования.

Цитата(petrov @ May 21 2013, 19:58) *
Вот пример реальной проблемы

Да, это действительно проблема. И кстати не только того кто модем проектирует, а еще и того, кто линию связи проектировал, и частотные планы.
Налезание ведь помехи на часть спектра сигнала приведет не только к тому, что символьная ФАПЧем держаться не будет.
Serg76
То, что не получилось у Вас абсолютно не значит, что это сделать невозможно.
32 символа преамбулы достаточно для оценки несущей вплоть до 3 дБ по битовой энергетике, как и говорил fontp, да и ФМ8 при такой энергетике нормально работать не сможет. А применение Герцеля и элементарной квадратичной интерполяции много ресурсов не отнимет.
fontp
QUOTE (Михаил_K @ May 22 2013, 11:33) *
то и означает, что с теми преамбулами, с которыми мне доводилось работать - а это 16, 24, 32 символа - никакой нормальной оценки несущей сделать не удалось.
Потому-что поставить столько банков, сколько получилось, а также делать ДПФ, интерполяцию и прочее - не представляется возможным из-за ограниченности оборудования.


С преамбулой 8-16 вряд ли что и получится. Только зачем вам такая короткая преамбула, особенно у непрерывного модема. Передавайте периодически известные 32-64 символа. При значительной частотной расстройке и низком отношении сигнал/шум это может оказаться единственным вариантом
В любом случае, нужно будет передавать какие-то пилот-сигналы для синхронизации - фапч модулированный сигнал не хватает, умножение фазы не работает

А частотная расстройка несущей, особенно у узкополосного модема, после переноса с ВЧ, может быть как угодно большая, вплоть до частоты Найквиста АЦП. 40 ггц x 0.000001 это уже 40 кгц и это в самом лучшем случае
Михаил_K
Цитата(Serg76 @ May 22 2013, 12:55) *
32 символа преамбулы достаточно для оценки несущей вплоть до 3 дБ по битовой энергетике

С какой точностью? Достаточно ли будет этой точности, чтобы по окончанию преамбулы ФАПЧ используя эту оценку смогла со следующего символа удерживать синхронизацию?

Цитата(fontp @ May 22 2013, 13:36) *
А частотная расстройка несущей, особенно у узкополосного модема, после переноса с ВЧ, может быть как угодно большая, вплоть до частоты Найквиста АЦП. 40 ггц x 0.000001 это уже 40 кгц и это в самом лучшем случае

В таком случае входным фильтром сигнал будет уже зарезан так, что ни один коррелятор не сработает.
Serg76
Цитата(Михаил_K @ May 22 2013, 15:44) *
С какой точностью? Достаточно ли будет этой точности, чтобы по окончанию преамбулы ФАПЧ используя эту оценку смогла со следующего символа удерживать синхронизацию?

думаю, что достаточно. при длине преамбулы N = 32 и, допустим, SNR = 7 дБ получаем предельную оценку отклонения:

dF/Fs = sqrt(12/((2*pi)**2*SNR*N*(N*N-1))) = 0.001

при Fs = 8000 Hz, dFmax = 8 Hz << 90 Hz

Да и вообще по преамбуле можно рассчитать все синхронизации и демодулятор начнет работать с первого символа.
fontp
QUOTE (Михаил_K @ May 22 2013, 15:44) *
В таком случае входным фильтром сигнал будет уже зарезан так, что ни один коррелятор не сработает.


Само собой. Но если сигнал через фильтр не проходит, тогда нужно иметь два состояния конечного автомата - синхронизация (acquisition) и демодуляция, и сигнал для режима синхронизации брать ДО фильтра рабочего режима. Это уже детали
Михаил_K
Цитата(Serg76 @ May 22 2013, 20:10) *
Да и вообще по преамбуле можно рассчитать все синхронизации и демодулятор начнет работать с первого символа.


По преамбуле хорошо рассчитываются фазы, как символьной так и несущей. А вот что касается частот...
Вы как-нибудь попробуйте такое устройство в железе сделать. Или, если тема интересна, можете предложить
функциональную схемку такого девайса. А мы посмотрим.
fontp
QUOTE (Михаил_K @ May 23 2013, 08:58) *
По преамбуле хорошо рассчитываются фазы, как символьной так и несущей. А вот что касается частот...
Вы как-нибудь попробуйте такое устройство в железе сделать. Или, если тема интересна, можете предложить
функциональную схемку такого девайса. А мы посмотрим.


А как Вы думаете определяются частоты и фазы несущих в пакетных демодуляторах ТDMA? Когда частота меняется на каждом слоте, вместе с передатчиком. Только по преамбуле, как и вся остальная символьная и слотовая синхронизация. Не просто, конечно, но ничто не мешает реализовать, в конце концов, 32-комплексных КИХ-фильтра длиной 32 и цепи слежения за максимумом
Раньше использовали регулярные синусово-меандровые преамбулы, но эффективней использовать короткие псевдослучайные или М-последовательности
Михаил_K
Цитата(fontp @ May 23 2013, 12:23) *
Не просто, конечно, но ничто не мешает реализовать, в конце концов, 32-комплексных КИХ-фильтра длиной 32 и цепи слежения за максимумом

Когда нужно обработать узкополосный сигнал, то в принципе да. 32 комлпексных фильтра реализуются в том числе замечаетльно и на DSP.
А вот когда сигнал широкополосный, то на DSP тут не в раз-то подъедешь. А 32*32*4 = 4096 умножителей, чтобы сделать такие фильтры - это уже совсем не мало.
Хорошо если полоса сигнала и скоростные характеристики железа позволяют провести последовательную обработку.
fontp
QUOTE (Михаил_K @ May 23 2013, 11:35) *
Когда нужно обработать узкополосный сигнал, то в принципе да. 32 комлпексных фильтра реализуются в том числе замечаетльно и на DSP.
А вот когда сигнал широкополосный, то на DSP тут не в раз-то подъедешь. А 32*32*4 = 4096 умножителей, чтобы сделать такие фильтры - это уже совсем не мало.
Хорошо если полоса сигнала и скоростные характеристики железа позволяют провести последовательную обработку.



Так речь о КВ-модеме низкочастотном. И расстройка небольшая, 32- фильтра ему не надо, ему 5-7 хватит (180/2400*32=2.4). Потянет любой DSP
Хотя частотная расстройка не большая, может у него и так ФАПЧ с увосьмерением фазы будет захватываться, если SNR высокий
Мы просто обсуждали экстремальную методу борьбы с большой частотной расстройкой. Лучше уже ничего не придумать
Serg76
Цитата(Михаил_K @ May 23 2013, 08:58) *
По преамбуле хорошо рассчитываются фазы, как символьной так и несущей. А вот что касается частот...
Вы как-нибудь попробуйте такое устройство в железе сделать. Или, если тема интересна, можете предложить
функциональную схемку такого девайса. А мы посмотрим.

Да, по преамбуле хорошо рассчитываются фазы по символьной и несущей, да и оценку ИХ канала для настройки эквалайзера можно провести, а по поводу оценки отстройки по несущей здесь по-моему достаточно написано, даже примеры приведены:
Цитата
А как Вы думаете определяются частоты и фазы несущих в пакетных демодуляторах ТDMA? Когда частота меняется на каждом слоте, вместе с передатчиком. Только по преамбуле, как и вся остальная символьная и слотовая синхронизация. Не просто, конечно, но ничто не мешает реализовать, в конце концов, 32-комплексных КИХ-фильтра длиной 32 и цепи слежения за максимумом

прежде, чем "пихать" что-то в железо, обычно задачу сначала нужно промоделировать, чтобы понять решаема она или нет. по Вашему же мнению это задача нерешаема в принципе, хотя это и не так. не понимаю, чего Вы упираетесь? к тому же для нынешнего "железа" это задача не такая уж и неподъемная.
Виктор39
пропускаю через канал. из-за доплеровского расширения амплитуда быстро меняется и в большом диапазоне. возникают замирания. в таких условиях, если замирание приходится на момент прихода преамбулы, корреляционный пик бывает теряется. как с этим бороться? увеличить длину преамбулы?

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


не подскажете где можно почитать описание какого-нибудь оптимального алгоритма для расчета символьной фазы по преамбуле. понятно, что не сложно и самому придумать, но все таки..
DASM
Господа, немного оффтопик. Как думаете, нешибко навороченный в какую плиску влезет? Фильры думаю по времени разделить, скорость не очень большая. Просто у меня лежит кит Актель, там ядро кортекс арм и фпга на примерно 5000 вентилей (в смысле д-триггеров или лютов) Ну и ацп два канала 500 кспс. Реально сделать на таком железе что-то практическое? Так то есть с64х+ техас, но так я никогда до фпга не доберусь, надо же начать. 4 psk 38400 нереально? Квадратурный смеситель с гетеродином вне этой платы хочу, на нее только I & Q поступают . Управление гетеродином покатне очень представляю, но можно и dds внешний.
andyp
Цитата(DASM @ May 27 2013, 18:17) *
Господа, немного оффтопик. Как думаете, нешибко навороченный в какую плиску влезет? Фильры думаю по времени разделить, скорость не очень большая. Просто у меня лежит кит Актель, там ядро кортекс арм и фпга на примерно 5000 вентилей (в смысле д-триггеров или лютов) Ну и ацп два канала 500 кспс. Реально сделать на таком железе что-то практическое? Так то есть с64х+ техас, но так я никогда до фпга не доберусь, надо же начать. 4 psk 38400 нереально? Квадратурный смеситель с гетеродином вне этой платы хочу, на нее только I & Q поступают . Управление гетеродином покатне очень представляю, но можно и dds внешний.


да как-то fpga для такой полосы - это перебор по-моему. Вычислительно прожорливым может быть банк СФ и помехоустойчивое кодирование. Хотя, фильтр для такой полосы можно и последовательный замутить (ну т.е. поставить 1 MAC unit и работать на частоте 38400*K*N K- количество фильтров, N - длина преамбулы)
PS там память для комплексных коэффициентов и FIFO для входа-выхода может потребоваться. Не знаю как в актеле с ней и есть ли внешняя.

Цитата(Виктор39 @ May 27 2013, 13:49) *
не подскажете где можно почитать описание какого-нибудь оптимального алгоритма для расчета символьной фазы по преамбуле. понятно, что не сложно и самому придумать, но все таки..


В любой книжке по оптимальному приему сигналов или цифровой связи. Там все просто - на входе сигнал на частоте N*Fsym. Разделяем его на фазы (те фаза 0 - отсчеты 0, N, 2*N; фаза 1- отсчеты 1, N+1, 2*N+1 и т.п.) Фильтруем каждую фазу согласованным фильтром на символьной скорости. Находим максимум абсолютной величины сигнала с выхода всех фильтров и сравниваем с порогом. Если превышает, то выбираем соответствующую максимуму позицию и фазу. Если не превышает, то переходим к обработке следующего кусочка сигнала.
Виктор39
я спрашивал о проблеме обнаружения преамбулы из-за большого разброса амплитуды входного сигнала. мне кажется, для решения этой проблемы стоит на входе приемника поставить систему АРУ. насколько это приемлемый метод? если это то, что мне нужно, посоветуйте, уважаемые знатоки, какой-нибудь приемлемый алгоритм, плиз.
andyp
Если динамика цифровой части приемника позволяет, то лучше хотя бы часть AGC в цифре делать. (Т.е оцениваешь мощность сигнала и умножаешь сигнал на соответствующий множитель на входе СФ). Просто, неожиданные переключения внешней системы АРУ при приеме данных могут привести к сюрпризам. В модеме нужно знать, когда изменилось усиление приемника (особенно, если это происходит скачком). Конкретика зависит от проектируемой системы связи.
Есть еще алгоритмы поиска с адаптивным порогом, когда порог обнаружения преамбулы подстраивается в соответствии с наблюдаемым уровнем сигнала на входе СФ. Ключевые слова - adaptive threshold detection.

PS Тут все зависит от скорости замираний и инреционности системы АРУ. Если АРУ не успевает следить за федингом, то используется адаптивный порог.
Виктор39
продолжаю разрабатывать 8psk модем. тестирую различные типы эквалайзеров. столкнулся с проблемой при реализации эквалайзера, который бы настраивался по известной последовательности. как я понимаю, отличие его только в том, что он на каком-то определенному начальном участке времени, вычисляет сигнал ошибки не как разность значения исходного входного сигнала и наиболее подходящего значения точки идеального созвездия, а как разность исходного входного сигнала и текущего значения известной последовательности. вот в чем вопрос: мне не известна символьная фаза входного сигнала, как быть в таком случае? перебирать все 8 возможных значений фаз для настройки эквалайзера. либо мне нужно каким-то образом работать с разностью фазы текущего значения известной последовательности и предыдущего?
petrov
Цитата(Виктор39 @ Jul 10 2013, 14:51) *
а как разность исходного входного сигнала и текущего значения известной последовательности.


Непонятно в чём проблема, берёте разность и всё?
Fat Robot
Подозреваю, что вопрос о совместной работе эквалайзера и фапч несущей. Если так, то нужно рассказать, как организовано это совместное оценивание.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.