Dmitry_R 0 24 июня, 2005 Опубликовано 24 июня, 2005 (изменено) · Жалоба Через мировой эфир передается цифровой сигнал со скоростью 333 бод, используя частотную манипуляцию без разрыва фазы. 1000Гц единичка, 1333Гц нолик (значения частот приблизительные, точные не помню). В начале посылки длинная преамбула 10 единичных бит. Сейчас для декодирования этой посылки используется ФАПЧ настроенный на 1167Гц. Так вот! Есть мысль, что используя цифровую обработку этой посылки, можно существенно повысить вероятность правильного приема, сильно обезображенной эфирными помехами посылки. Так ли это? И если так то какие алкогоритмы лучше применить? Корреляционный когерентный метод спасет меня? Или по сравнению с ФАПЧ не будет ни какого выигрыша? Изменено 29 июня, 2005 пользователем Dmitry_R Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bmf 0 24 июня, 2005 Опубликовано 24 июня, 2005 · Жалоба Насчет выигрыша с ФАПЧ не знаю, но сам метод и алгоритм декодировани FSK (теория) хорошо описан в http://focus.ti.com/docs/mcu/catalog/resou...actName=slaa037 посмотри, может пригодится Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
proxi 0 25 июня, 2005 Опубликовано 25 июня, 2005 · Жалоба Насчет выигрыша с ФАПЧ не знаю, но сам метод и алгоритм декодировани FSK (теория) хорошо описан в http://focus.ti.com/docs/mcu/catalog/resou...actName=slaa037 посмотри, может пригодится <{POST_SNAPBACK}> Более того могу порекомендовать книгу Цифровая связь Бернард Скляр,если не все то некоторые главы.Еще можно посмотреть готовые модемы подобные применялись в NMT мобильниках Benefon Dancall производитель CML. :cheers: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 27 июня, 2005 Опубликовано 27 июня, 2005 · Жалоба Через мировой эфир передается цифровой сигнал со скоростью 9600 бод, используя частотную манипуляцию без разрыва фазы. 1200Гц единичка, 3100Гц нолик (значения частот приблизительные, точные не помню). В начале посылки длинная преамбула 20 единичных бит.Очень много зависит от индекса модуляции, т.е. отношения разноса частот к бодовой скорости. От этого будет и алгоритм плясать. Потом, какие требования к быстродействию и пожиранию ресурсов, какой канал: гаусса или релея.. ? А пока, если можно, выложите образец сигнала в виде PCM-файла, например с частотой дискретизации Fd=8000Гц. Мне совершенно непонятно, почему 1200Гц 3100Гц при 9600 бод, т.е. 1900/9600=0.197916666 - нелепица, даже как ФМ не получается обрабатывать. Если только 0 - 1200Гц 1 - 3120Гц 9600 / (3120-1200) = 5 бод/Гц, я так понимаю не бод все-таки, а бит/Гц т.е. коггерентно как ФМ-32 обрабатывать, ммм-да, фигня какая-то. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vm1 0 27 июня, 2005 Опубликовано 27 июня, 2005 · Жалоба Через мировой эфир передается цифровой сигнал со скоростью 9600 бод, используя частотную манипуляцию без разрыва фазы. 1200Гц единичка, 3100Гц нолик (значения частот приблизительные, точные не помню). В начале посылки длинная преамбула 20 единичных бит. <{POST_SNAPBACK}> Так не бывает при FSK, несущая здесь меньше скорости обмена. Котельнков будет возмущатся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 27 июня, 2005 Опубликовано 27 июня, 2005 · Жалоба Так не бывает при FSK, несущая здесь меньше скорости обмена. Котельнков будет возмущатся.Вот и говорю: это 9600 бит / сек. Но тогда с часотами 0/1 нелепица.. Пусть лучше PCM-файл даст - разберемся как-нибудь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tommyknocker 0 27 июня, 2005 Опубликовано 27 июня, 2005 · Жалоба Через мировой эфир передается цифровой сигнал со скоростью 9600 бод, используя частотную манипуляцию без разрыва фазы. 1200Гц единичка, 3100Гц нолик (значения частот приблизительные, точные не помню). В начале посылки длинная преамбула 20 единичных бит. <{POST_SNAPBACK}> Так не бывает при FSK, несущая здесь меньше скорости обмена. Котельнков будет возмущатся. <{POST_SNAPBACK}> Полагаю, что с несущей здесь какое-то недоразумение. Понятно, чтобы обеспечить передачу данных со скоростью 9600 бит/сек полоса сигнала нужна порядка 20 кГц. Наверное автор имел ввиду, что 1 это частота, отличающаяся от несущей (влево или вправо) на 1200 Гц, а 0 - соответственно на 3100 Гц. Что касается обработки сигнала, то неплохо бы выяснить энергетику канала связи, дальность и т.д. Корреляционный приемник вы в данном случае построить явно не сможете, поскольку, как я понял структура Вашего сигнала не содержит какой-либо поднесущей (код баркера, м-последовательность и т.д.). Ну, а если ФАПЧ у Вас до сих пор работала, то зачем что-то искать еще ? Если возмжно, примените современные методы кодирования с возможностью обнаружения и исправления ошибок (Коды Рида-Соломона как пример). Аппаратная реализация конечно усложнится: Вам придется разрабатывать либо соответствующую схему на ПЛИС либо решить все на каком-нибудь ЦСП (тактовая частота то у Вас будет не Бог весть какая и Вы все задачи сможете решить просто на математике), предварительно конечно поработав над теорией циклических кодов, но ведь стоит задача обеспечить робастность канала связи, а это сегодня общепринятые приемы для этого. Кстати, если вы отважитесь замкнуть обратную связь своей схемы сопровождения через процессор, то Вы сможете оперативно менять дискриминаторы с ЧАП, которая более помехоустойчивая нежели ФАПЧ на дискриминатор ФАПЧ, менять шумовую полосу в фильтре контура сопровождения в случае если будет какая-то дополнительная динамика сигнала, вызванная движением объекта (если оно будет), определять отношение сигнал/шум и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmitry_R 0 29 июня, 2005 Опубликовано 29 июня, 2005 · Жалоба Так не бывает при FSK, несущая здесь меньше скорости обмена. Котельнков будет возмущатся. <{POST_SNAPBACK}> Полагаю, что с несущей здесь какое-то недоразумение. Ну, а если ФАПЧ у Вас до сих пор работала, то зачем что-то искать еще ? <{POST_SNAPBACK}> Так и есть, напутал я с исходными данными. 1 -1000Гц 0 - 1333Гц скорость передачи 333бод. Вот я и хочу узнать можно ли с помощью ЦОС получить декодер лучше ФАПЧа? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmitry_R 0 29 июня, 2005 Опубликовано 29 июня, 2005 · Жалоба ммм-да, фигня какая-то. <{POST_SNAPBACK}> Напутал я с исходными данными. Извини, бес попутал :) 1 -1000Гц 0 - 1333Гц скорость передачи 333бод. Преамбула около 10 единичек. Хотел реализовать это не AT91SAM7S256, если не будет хватать вычислительных ресурсов то на ADuC702x (у него есть умножение с накоплением) Канал релея. Ибо сильно плавает уровень сигнала, а белого шума на кодограмме я не заметил. Привожу две кодограммы. Одна плохая, которую очень хотелось бы принимать, другая хорошая, которую нельзя не принять. :) __________.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stanislav 0 4 июля, 2005 Опубликовано 4 июля, 2005 · Жалоба Через мировой эфир передается цифровой сигнал со скоростью 333 бод, используя частотную манипуляцию без разрыва фазы. 1000Гц единичка, 1333Гц нолик (значения частот приблизительные, точные не помню). В начале посылки длинная преамбула 10 единичных бит. Сейчас для декодирования этой посылки используется ФАПЧ настроенный на 1167Гц. Так вот! Есть мысль, что используя цифровую обработку этой посылки, можно существенно повысить вероятность правильного приема, сильно обезображенной эфирными помехами посылки. Так ли это? И если так то какие алкогоритмы лучше применить? Корреляционный когерентный метод спасет меня? Или по сравнению с ФАПЧ не будет ни какого выигрыша? <{POST_SNAPBACK}> Следующий метод приема будет гораздо эффективнее такой примитивной ФАПЧ. 1. Чисто умозрительно представим сигнал в виде суммы двух сигналов с разными несущими. 2. Умножаем сигнал на exp(jW1t) и exp(jW2t), где W1 и W2 - несущие частоты. 3. Выделяем комплексные огибающие сигналов с этими несущими с помощью ФНЧ, согласованного с огибающей элементарной посылки. 4. Находим модули комплексных огибающих для частот W1 и W2. 5. С помощью сравнения выясняем, какой сигнал доминирует. 6. На основе получаемых данных создаем систему временной синхронизации для точного выделения бодовых интервалов. 7. С бодовой частотой (333 Гц) производим выборку (децимацию) в моменты, соответствующие ожидаемым максимумам доминирования одного сигнала над другим, и это все. К этому можно добавить, что такой метод близок к оптимальному для большинства каналов, хотя и не содержит таких полезных вещей, как адаптивный эквалайзер, АРУ и др., которые при желании можно добавить. Для уменьшения вычислительных затрат необходимо правильно выбрать частоту дискретизации. В вашем случае это 4000 Гц. При этом вполне приличный приемник можно сделать даже на AVR микроконтроллере, не говоря уже об ARMе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 5 июля, 2005 Опубликовано 5 июля, 2005 · Жалоба Следующий метод приема будет гораздо эффективнее такой примитивной ФАПЧ. 1. Чисто умозрительно представим сигнал в виде суммы двух сигналов с разными несущими. 2. Умножаем сигнал на exp(jW1t) и exp(jW2t), где W1 и W2 - несущие частоты. 3. Выделяем комплексные огибающие сигналов с этими несущими с помощью ФНЧ, согласованного с огибающей элементарной посылки. 4. Находим модули комплексных огибающих для частот W1 и W2. 5. С помощью сравнения выясняем, какой сигнал доминирует. .... К этому можно добавить, что такой метод близок к оптимальному для большинства каналов, хотя и не содержит таких полезных вещей, как адаптивный эквалайзер, АРУ и др., которые при желании можно добавить. Для уменьшения вычислительных затрат необходимо правильно выбрать частоту дискретизации. В вашем случае это 4000 Гц. При этом вполне приличный приемник можно сделать даже на AVR микроконтроллере, не говоря уже об ARMе. <{POST_SNAPBACK}> Квазикоггерентные приемы бывают очень эффективны в каналах с замираниями. Здесь действительно АРУ не нужно, все работает на отношении откликов с 2х фильтров. Но корректор поставить в этом случае практически нереально и др. тоже. Знаю еще один подобный автокорреляционный метод: 1. Умножаем сигнал на комплексную центральную частоту exp(0.5j(W1+W2)) 2. согласованный фильтр (впритык по спектру сигнала), тоже комплексный 3. интерполяция на частоту, кратную частоте следования посылок (напр. 16*Vm = 16*333 = 5328 Гц). 16 отсчетов на посылку - хорошо тактироваться. 4. Компл. умножение отсчетов(16-ти) текущей посылки на сопряженные предыдущей посылки. 5. Отслеживаем перепады уровня по Re или по Im и тактируемся: перепад - начало новой посылки, нет перепада - счетчик по модулю 16, надо по сигналу смотреть. Уровням < 0 - соотв.0, > 0 - соотв.1 (или наоборот - надо опять смотреть по сигналу). В общих чертах так. Все равно, эти квази-псевдо-автокор.когг. методы будут неоптимальными. Для канала Релея надо такой огород городить, что МК задымится: коггерентно + и АРУ, и ФАПЧ, и нелинейный корректор с обратной связью с ограничителями по усилению, а может и алгоритм демодуляции Витерби или ставить фильтр Калмана - мне грустно становится... Лучше посмотри вариант от Stanislav`а или мой - что понравится и по затратам подойдет - дешевле (гораздо!!) для здоровья выйдет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
moonrock 0 9 июля, 2005 Опубликовано 9 июля, 2005 · Жалоба to Stanislav: а можно подробнее узнать о 6 пункте "6. На основе получаемых данных создаем систему временной синхронизации для точного выделения бодовых интервалов." Какие методики существуют, где почитать(можно на англицком)? Очень интересно! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stanislav 0 9 июля, 2005 Опубликовано 9 июля, 2005 · Жалоба to Stanislav: а можно подробнее узнать о 6 пункте "6. На основе получаемых данных создаем систему временной синхронизации для точного выделения бодовых интервалов." Какие методики существуют, где почитать(можно на англицком)? Очень интересно! <{POST_SNAPBACK}> Ссылок, к сожалению, сейчас дать не имею возможности, могу только посоветовать почитать литературу по модемной тематике. Для вас же пришел в голову следующий простой способ (в предположении, что огибающая элементарной посылки близка к прямоугольной). Если где ошибся - укажите. 1а. Возведите модули комплексных огибающих в квадрат. 2а. Найдите сумму двух результирующих функций. В спектре суммы будет мощная составляющая с тактовой частотой (333 Гц). 3а. Выделите эту составляющую с помощью линейного фильтра. Положение максимумов этой функции будет соответствовать максимумам корреляции. В эти моменты и нужно производить окончательную выборку. 4а. Для повышения помехоустойчивости сделайте адаптивный "генератор импульсов" выборки с тактовой частотой (333 Гц), попросту счетчик, синхронизируйте его с результатом п.3а. Для повышения точности слежения можно применить счетчик с целой и дробной частями, а также интерполяцию модулей комплексных огибающих. Целочисленная арифметика даст результат лишь ненамного хуже, т.к. у вас хорошие соотношения тактовой и несущих частот. Далее с п.7 предыдущего поста от Stanislav. К этому следует добавить, что частоту выборки АЦП нужно сделать именно 4000 Гц, а в качестве самого АЦП использовать сигма-дельта с цифровым фильтром на входе (см. у Analog Devices или Maxim). Иначе большие вычислительные затраты неизбежны. Еще лучше, если можно плавно управлять частотой выборки АЦП. В этом случае ее нужно синхронизовать с результатом п.3а, а п.4а не нужен. P.S. п.5 предыдущего поста от Stanislav следует перенести в самый конец. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
moonrock 0 11 июля, 2005 Опубликовано 11 июля, 2005 · Жалоба Спасибо за ответ, интересный способ! У меня задача для BPSK. Была рождена похожая идея, суть такая: перемножить несколько периодов огибающей с SIN и COS (с бодовой частотой), найти ARCTAN от всего этого и скорректировать счетчик. Разумеется это получится если синхронизирующая последовательность будет 10101010101... В общем надо проверять. Хотел еще спросить, в чем лучше моделировать, точнее в чем быстрее?(я пока на С пишу модели). Об АЦП. Внешний АЦП - не хочется. Как бы это все в AVR или MSP затолкать, используя то что есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stanislav 0 11 июля, 2005 Опубликовано 11 июля, 2005 · Жалоба Спасибо за ответ, интересный способ! У меня задача для BPSK. Была рождена похожая идея, суть такая: перемножить несколько периодов огибающей с SIN и COS (с бодовой частотой), найти ARCTAN от всего этого и скорректировать счетчик. Разумеется это получится если синхронизирующая последовательность будет 10101010101... В общем надо проверять. Хотел еще спросить, в чем лучше моделировать, точнее в чем быстрее?(я пока на С пишу модели). Об АЦП. Внешний АЦП - не хочется. Как бы это все в AVR или MSP затолкать, используя то что есть. <{POST_SNAPBACK}> В воскресенье была возможность подумать над этой задачей более тщательно. Более эффективный способ синхронизации (по сравнению с тем, что был в предыдущем посте) состоит в следующем. 1б. Вместо действия п.1а следует найти разность модулей комплексных огибающих. 2б. Взять модуль результирующей функции. У меня при моделировании на "чистом" сигнале получилась последовательность треугольных и трапецидальных импульсов. Тактовая частота в спектре выражена еще мощнее, чем в предыдущем способе, и, кроме того, не загрязнена комбинаторными составляющими шумов, которые возникают при возведении в квадрат. Далее - с пункта 3а без изменений. Выбор линейного фильтра п.3а представляет собой некую исследовательскую задачу. Я использовал для модели согласованный КИХ-фильтр с нулевым средним. Достоинством вышеприведенных методов является то, что они будут работать не только со специальными синхропоследовательностями, а будут давать четкий синхросигнал при подключении входа в любое время. А вообще, подобные задачи требуют комплексного подхода, а не "блочно-модульного". Если вопрос стоит того, пишите, посотрудничаем. Мой мэйл [email protected]. По поводу АЦП. Единственным способом радикально избавиться от шумов и зеркальных частот на входе АЦП является использование входного цифрового фильтра, каковые есть почти во всех сигма-дельта АЦП (кстати, такие имеются и в некоторых МК). Применение же встроенного в процессор АЦП последовательных приближений оправдано только для простых систем. В качестве паллиативной меры могу предложить делать выборку в 2-4 раза чаще необходимой с последующим цифровым прореживанием. P.S. Моделировать лучше всего в матлабе, лучше пока ничего не знаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться