|
BPSK(QPSK) модулятор-демодулятор и гидроакустический модем |
|
|
|
 |
Ответов
(1 - 58)
|
Feb 2 2018, 09:32
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Тут подробности нужны. А то многое зависит от глубины. Если вблизи поверхности (или дна) работать, то очень сильное многолучевое распространение будет мешать. И тогда "несложно" не получится.
Но если по-простому, то нынче можно все просто в цифре сделать. Модуляцию, взять, например, GMSK. Передатчик просто ШИМ'ом контроллера сделать, а приемник - после некоторого предварительного усиления сразу цифровать штатным АЦП контроллера и дальше все в цифре - квадратуры, ЧМ-детектор и так далее.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Feb 5 2018, 08:26
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Rst7 @ Feb 2 2018, 12:32)  Тут подробности нужны. А то многое зависит от глубины. Если вблизи поверхности (или дна) работать, то очень сильное многолучевое распространение будет мешать. И тогда "несложно" не получится.
Но если по-простому, то нынче можно все просто в цифре сделать. Модуляцию, взять, например, GMSK. Передатчик просто ШИМ'ом контроллера сделать, а приемник - после некоторого предварительного усиления сразу цифровать штатным АЦП контроллера и дальше все в цифре - квадратуры, ЧМ-детектор и так далее. Спасибо. Посмотрел в сторону GMSK. Вполне возможно. Если с передатчиком не должно быть сложностей то с приемником придется повозиться. Подробности: Необходимо организовать несколько подводных передатчиков которые должны передавать по очереди с небольшим временным промежутком (с общим периодом 1 сек) на несущей в ~35кГц данные в виде нескольких байт информации по протоколу UART (старт бит - 8 бит данных - стоп бит) на скорости ~1200 бод в сек. Передатчики могут находиться на разных глубинах в том числе и на мелководье. Максимум до 40..50 метров. В данных должен содержаться код идентифицирующий номер передатчика и еще некоторая служебная информация в виде нескольких байт. Всего предполагается передать до 8...16 байт данных в одной посылке. Приемник должен принимать данные от всех передатчиков (разделенные во времени) и индетифицировать их по коду-идентифкатору передатчика. Если с передатчиком на микроконтроллере в общих чертах понятно то с приемником пока не врубаюсь. Как примерно будет выглядеть структурная схема приемника организованная на микроконтроллере? Не лучше-ли для таких целей все-же применить BPSK? Возможно-ли приемник в этом случае организовать в цифровом виде на микроконтроллере?
|
|
|
|
|
Feb 5 2018, 11:58
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Acvarif @ Feb 5 2018, 10:26)  Если с передатчиком на микроконтроллере в общих чертах понятно то с приемником пока не врубаюсь. Как примерно будет выглядеть структурная схема приемника организованная на микроконтроллере? Не лучше-ли для таких целей все-же применить BPSK? Возможно-ли приемник в этом случае организовать в цифровом виде на микроконтроллере? Видно, что Вы очень далеки от темы (обсуждаете сколько стопов и стартов в UART нужно - это даже не вторичные частности, а третичные). Начинать нужно не с микроконтроллера и UART-ов, а с построения модели канала передача-приём в Матлабе, изучения свойств среды передачи (как Вам тут уже намекнули - отражения, многолучевой приём, изменения спектра, помехи, затухание и прочее) и учёта их в модели. Когда в модели получите какие-то результаты - можно думать на какое реальное железо это положить. Думаю задача вполне реальна, но потребует неплохого знания математики и ЦОС. И возможно - ассемблера целевого МК. Лет 10 назад писал модемы на CPFSK и nQPSK. Правда среда передачи была - радиоканал. И делал на DSP TMS320CC5502 на 220МГц. Со скоростями 300,1200,2400,4800,9600 бод. 9600бод заняло ~30% производительности CPU. Код модулятора и демодулятора полностью был на ассемблере. Возможно, что если тот код для 1200бод переложить на ассемблер современного Cortex-M примерно на 200МГц, то он вытянул-бы. Хотя конечно у Cortex-M есть аппаратная плавучка и благодаря ей многие фильтры можно было бы реализовать проще чем были у меня и тогда загрузка будет меньше. PS: Ну или - поискать готовый интегральный чип модема, подходящий для Вашей среды передачи. Тогда программа будет очень проста.
|
|
|
|
|
Feb 5 2018, 12:08
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Rst7 @ Feb 2 2018, 11:32)  Передатчик просто ШИМ'ом контроллера сделать, а приемник - после некоторого предварительного усиления сразу цифровать штатным АЦП контроллера и дальше все в цифре - квадратуры, ЧМ-детектор и так далее. Передатчик лучше ЦАП-ом. И 12 бит разрядности АЦП (которая обычно бывает в МК) может не хватить для обеспечения динамического диапазона и чувствительности. У меня когда-то был отдельный 24-битный кодек, из которого использовал только 16бит, но было на пределе. Цитата(Rst7 @ Feb 5 2018, 14:04)  Как и любой другой приемник. Квадратурный гетеродин и смеситель, фильтры ПЧ, детектор. Например - [url="http://electronix.ru/redirect.php? А перед ними: эквалайзер. Так как думаю, что в воде на разных частотах затухание разное. Хотя при таком узком канале оно ещё может и не сказываться. После входного полосового фильтра и эквалайзера умножаем сигнал на sin() и cos() несущей частоты - получаем 2 квадратуры, фильтруем их ФНЧ, дальше - собственно демодулятор, а потом - битовый детектор. Как-то так. Вот последний у меня в своё время вызвал как раз наибольшие сложности.
|
|
|
|
|
Feb 5 2018, 12:24
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
QUOTE Возможно, что если тот код для 1200бод переложить на ассемблер современного Cortex-M примерно на 200МГц, то он вытянул-бы. biggrin.gif Не хочу Вас расстраивать, но делал я как-то как раз гидроакустический модем, там была OFDM, скорость данных порядка 140кбит/с, полный дуплекс с несущими 500кГц и 1МГц (аплинк и даунлинк соответственно). Ну справедливости ради там перемножители были внешние. И внешний АЦП (банальный аудио-АЦП двухканальный), цифровать квадратуры уже после смесителя. Работало это на 100МГц Cortex-M3 без особых проблем, без всякой плавающей точки, с загрузкой проца где-то в 30-40 процентов. Да-да, с Фурье вперед и назад, с эквалайзером и прочими необходимыми для OFDM пирогами. А еще был другой, там именно GMSK был, на канале управления жил. Тоже, правда, с внешним АЦП, прямо цинично пьезокерамика на дифференциальный вход AK5384 была подключена. И несущая как раз была в районе 40кГц. Цифровал себе спокойно всю полосу, и дальше все по классике. Ну совсем же смешное было CODE #define F_CPU (100000000ULL) #define RXLS_SAMPLE_RATE (97655ULL) #pragma inline=forced static long long QMULL(REG32 a, REG32 b, REG32 c, REG32 d) { long long r; asm("SMULL %L0,%H0,%1,%2":"=Rp"®:"r"(a),"r"(  ); asm("SMLAL %L0,%H0,%1,%2":"+Rp"®:"r"©,"r"(d)); //return ((long long)a *  + ((long long)c * d); return r; } static long long FMULADD64(long long r, long long a, UREG32 k) { asm("SMLAL %L0,%H0,%H1,%2":"+Rp"®:"Rp"(a),"r"(k)); asm("UMULL %L0,%H0,%L0,%1":"+Rp"(a):"r"(k)); a+=0x80000000; asm("ADDS %L0,%L0,%H1":"+Rp"®:"r"(a):"cc"); asm("ADC %H0,%H0,#0":"+Rp"®); return r; } static long long FMULSUB64(long long r, long long a, UREG32 k) { asm("SMLAL %L0,%H0,%H1,%2":"+Rp"®:"Rp"(a),"r"(-k)); asm("UMULL %L0,%H0,%L0,%1":"+Rp"(a):"r"(k)); a+=0x80000000; asm("SUBS %L0,%L0,%H1":"+Rp"®:"r"(a):"cc"); asm("SBC %H0,%H0,#0":"+Rp"®); return r; } #pragma inline=forced static inline REG32 EXPDIVfast(long long f, unsigned long long a) { UREG ea; UREG32 a32=a>>32; REG32 f32=f>>32; if (a32) { ea=__CLZ(a32); a32=(a32<<ea)|((unsigned long)a>>(32-ea)); ea--; f32=(f32<<ea)|((unsigned long)f>>(32-ea)); } else { a32=a; f32=f; ea=__CLZ(a32); a32=a32<<ea; ea--; f32=f32<<ea; } a32>>=16+1; if (a32) return (f32/(REG32)a32)<<8; else return 0; } #define DEFAULT_FREQ_HZ (32010ULL) #define DEFAULT_FREQ ((DEFAULT_FREQ_HZ<<32)/RXLS_SAMPLE_RATE) UINT32 freq_a=DEFAULT_FREQ; UINT32 phase_a; #define CHLPF_SHIFT (27) #define CHLPF_PREGAIN_SHIFT (27) //1.5kHz, 1dB, 5 poles, Z-transform #define CHLPF_K0 ( 961) #define CHLPF_K1 ( 98213853) #define CHLPF_K2 ( 521724849) #define CHLPF_K3 ( 1109599598) #define CHLPF_K4 ( 1181066974) #define CHLPF_K5 ( 629195138) void I2S_IRQHandler(void) { REG32 rxsig; rxsig=I2SRXFIFO; REG32 I; REG32 Q; UREG32 vo=phase_a; I=rxsig*SIN8[(vo+0x00000000)>>24]; Q=rxsig*SIN8[(vo+0x40000000)>>24]; phase_a=vo+freq_a; //Filter I { static signed long long y1,y2,y3,y4,y5; signed long long result; result=(long long)I*CHLPF_K0; result=FMULADD64(result, y1,CHLPF_K1); result=FMULSUB64(result,y1=y2,CHLPF_K2); result=FMULADD64(result,y2=y3,CHLPF_K3); result=FMULSUB64(result,y3=y4,CHLPF_K4); result=FMULADD64(result,y4=y5,CHLPF_K5); y5=result<<(32-CHLPF_SHIFT); I=(INT32)(result>>(CHLPF_SHIFT-1)); } //Filter Q { static signed long long y1,y2,y3,y4,y5; signed long long result; result=(long long)Q*CHLPF_K0; result=FMULADD64(result, y1,CHLPF_K1); result=FMULSUB64(result,y1=y2,CHLPF_K2); result=FMULADD64(result,y2=y3,CHLPF_K3); result=FMULSUB64(result,y3=y4,CHLPF_K4); result=FMULADD64(result,y4=y5,CHLPF_K5); y5=result<<(32-CHLPF_SHIFT); Q=(INT32)(result>>(CHLPF_SHIFT-1)); //Без одного защитного бита } //Demodulation { static INT32 I1,Q1; REG32 id,qd; id=I-I1; I1=I; qd=Q-Q1; Q1=Q; long long f=QMULL(-I,qd,Q,id); unsigned long long a=QMULL(I,I,Q,Q); lsrx_lvl_a=a; //Qdata=-EXPDIVfast(f,a); Qdata=f>0?-0x200000:0x200000; } ... все, тут уже разбор чисто с цифровым потоком, 0/1 это Qdata<0 или >0 } QUOTE Передатчик лучше ЦАП-ом. Нафиг он там не нужен. Делаются таблички для для плавного по Гауссу изменения фазы ШИМ в вариантах переходов бит 0->1 и 1->0 и все. QUOTE И 12 бит разрядности АЦП (которая обычно бывает в МК) может не хватить для обеспечения динамического диапазона и чувствительности. Для такого АЦП да, АРУ надо делать.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Feb 5 2018, 12:40
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Rst7 @ Feb 5 2018, 14:24)  Работало это на 100МГц Cortex-M3 без особых проблем, без всякой плавающей точки, с загрузкой проца где-то в 30-40 процентов. Да-да, с Фурье вперед и назад, с эквалайзером и прочими необходимыми для OFDM пирогами. Дьявол как всегда кроется в деталях. Такую загрузку у меня вызывала конечно не сама демодуляция - это были сущие пустяки. Основная нагрузка была - входные фильтры и битовый детектор (выделение битов из потока сэмплов). Да и по фильтрам и эквалайзерам - думаю не стоит Вам говорить, что даже небольшое ужесточение требований к крутизне АЧХ фильтра приводит к очень большому увеличению длин фильтров. Я потом на этом же самом МК делал другой модем с частотой сэмплирования кодека на порядок выше, но с гораздо более чистым каналом (модем для фидеров 0.4-10кВ) и получил загрузку CPU всего в несколько процентов насколько помню. Да и 30% - это было на максимуме - на pi/4 nQPSK непрерывным потоком на приём и передачу. На 9600бод в полосе 7100Гц. Если бы расширить допустимую полосу сигнала раза в два, то загрузка там падает в разы. Цитата(Rst7 @ Feb 5 2018, 14:24)  asm("SMULL %L0,%H0,%1,%2":"=Rp"®:"r"(a),"r"(  ); asm("SMLAL %L0,%H0,%1,%2":"+Rp"®:"r"©,"r"(d)); Что такое и как работают SMLAL и SMULL и прочие команды Cortex-M - я прекрасно знаю. Писал и оптимизировал работу MP3-декодера с отдельными функциями на чистом асм на Cortex-M. Не напугаете Цитата(Rst7 @ Feb 5 2018, 14:24)  Нафиг он там не нужен. Делаются таблички для для плавного по Гауссу изменения фазы ШИМ в вариантах переходов бит 0->1 и 1->0 и все. Конечно наверное можно обойтись. Но зачем? Зачем таблички и более сложные фильтры после ШИМ, если как правило почти в любом приличном МК Cortex-M есть ЦАП?
|
|
|
|
|
Feb 5 2018, 12:47
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
QUOTE Конечно наверное можно обойтись. Но зачем? А зачем потом линейный усилитель вместо двух ключей? QUOTE Дьявол как всегда кроется в деталях. Конечно. Потому что OFDM более выгоден с точки зрения производительности процессора, чем простые методы. Особенно когда нужна эквализация канала. В OFDM это все практически бесплатно получается. Правда, есть нюансы с передатчиком, его нужно делать в виде линейного усилителя. Ну это если не думать  QUOTE битовый детектор (выделение битов из потока сэмплов) Ну это отдельный разговор. Да, Витерби крайне похабно ложится на обычную архитектуру процессоров, так что его нужно избегать по возможности. Это, кстати, тоже плюс в копилку OFDM, там все банально с принятием решения.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Feb 5 2018, 13:01
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Rst7 @ Feb 5 2018, 14:47)  А зачем потом линейный усилитель вместо двух ключей? В принципе наверное Вы правы, здесь же гидроакустика: излучатель наверное - пьезо, с каким-то резонансным контуром? Я работал на трансформаторы. Цитата(Rst7 @ Feb 5 2018, 14:47)  Ну это отдельный разговор. Да, Витерби крайне похабно ложится на обычную архитектуру процессоров, так что его нужно избегать по возможности. Это, кстати, тоже плюс в копилку OFDM, там все банально с принятием решения. У меня этот момент был осложнён необходимостью работы модема с ранее разработанным оборудованием: изменить кодирование битового потока было нельзя, а в протоколе при наличии блоков состоящих сплошь из одних "0", в канале так и передавался поток "0". ...до килобайта длиной. И синхронизироваться можно было только по короткому заголовку. Так что с битовой синхронизацией были большие проблемы.
|
|
|
|
|
Feb 5 2018, 13:22
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Acvarif @ Feb 5 2018, 15:09)  1. Если представить, что гидроакустические передатчики находясь на некотором расстоянии друг от друга передают (излучают) пакеты разных данных одновременно на одной несущей, то в каких-то точках водной среды пакеты могут перекрываться или налагаться друг на друга. Как в этом случае разделить или идентифицировать нужный пакет от нужного передатчика? Например: организовать работу так, чтобы в каждый момент времени работал только один передатчик (не было коллизий). Например - один центр-мастер, остальные - слэйвы. Мастер организует обмен в канале, слэйвы по своей инициативе не выходят на связь. Цитата(Acvarif @ Feb 5 2018, 15:09)  Как в таком случае, для приемника, определить правильную частоту выборок (семплирования)? Неужели по Найквисту? Лучше - с запасом. Читайте теорию, прочитаете - поймёте  PS: У Вас вопросы совсем по разным уровням и частям. И сам модем и организация обмена в канале - рановато вам ещё этой темой заниматься. Прочитать придётся очень много.
|
|
|
|
|
Feb 6 2018, 06:30
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(jcxz @ Feb 5 2018, 17:22)  PS: У Вас вопросы совсем по разным уровням и частям. И сам модем и организация обмена в канале - рановато вам ещё этой темой заниматься. Прочитать придётся очень много.  Вы правы. Не знаю с какой стороны к этому делу подступиться. Чем больше информации, даже общего плана, тем больше возникает вопросов. В тупик поставил еще один вопрос: Как можно увеличить битовую скорость с 1200, например до 9600, 19200 не меняя длительность посылки? Читал что для этого применяются сложные виды модуляции (QPSK, 8PSK, OFDM). Грустно стало после того как прочитал про OFDM... Нет-ли готовых микросхем модуляторов-демодуляторов способных работать с несущими порядка 35..200 кГц?
Сообщение отредактировал Acvarif - Feb 6 2018, 08:12
|
|
|
|
|
Feb 12 2018, 09:21
|
Местный
  
Группа: Участник
Сообщений: 239
Регистрация: 15-11-09
Из: Санкт-Петербург
Пользователь №: 53 639

|
Если канал распространения глубоководный, то (если не принимать во внимание аналоговую часть и пьезокерамику), то построить такой модем можно чуть ли не на мощном восьмирёночке. А на каком-нибудь 32-х-разрядном АРМе почти как 2 пальца. И зачем вам вообще такие сложные модуляции? Если вам нужно "дёшево и просто" зачем вы в OFDM лезите? Обычный тональник, как в телефонии и фильтр Гёрцеля вам в помощь. Зависит от частоты сильно, но выше звука работает прерасно.
А если на мелководье, то, скорее всего, у вас ничего работать вообще не будет даже на таких смешных скоростях: там из-за дикой реверберации и многолучёвости, ISI у вас будут такие, что вы о 100битах/cек надёжной передачи будете мечтать.
|
|
|
|
|
Feb 13 2018, 07:58
|

Частый гость
 
Группа: Свой
Сообщений: 89
Регистрация: 24-10-10
Из: Санкт-Петербург
Пользователь №: 60 386

|
Цитата(Rst7 @ Feb 5 2018, 15:24)  Не хочу Вас расстраивать, но делал я как-то как раз гидроакустический модем, там была OFDM, скорость данных порядка 140кбит/с, полный дуплекс с несущими 500кГц и 1МГц (аплинк и даунлинк соответственно). Ну справедливости ради там перемножители были внешние. И внешний АЦП (банальный аудио-АЦП двухканальный), цифровать квадратуры уже после смесителя. Упомянутые характеристики - это, без всякого сомнения, выдающийся результат. Не могли бы вы поделиться подробностями? Какую дальность обеспечивал модем? Была ли доведена работа до реального образца? Есть ли какая-то открытая документация?
|
|
|
|
|
Feb 13 2018, 11:30
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
QUOTE Какую дальность обеспечивал модем? На таких частотах несущих дальше 200 метров не работает. Слишком сильное затухание в воде. QUOTE Была ли доведена работа до реального образца? Ну как-то так - https://youtu.be/lgiOv0hNZKEQUOTE Есть ли какая-то открытая документация? Нет.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Feb 13 2018, 12:09
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
QUOTE Так вы компанию baltrobotics представляете? Я бы не употреблял слово "представляю". Я тут ничего не продаю. QUOTE Это оно? Да.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Feb 13 2018, 13:24
|

Частый гость
 
Группа: Свой
Сообщений: 89
Регистрация: 24-10-10
Из: Санкт-Петербург
Пользователь №: 60 386

|
Цитата(jcxz @ Feb 13 2018, 16:11)  А что мешает на время передачи отключить вход приёмника от пьезокристалла? Я так понимаю, это будет уже не заявленный полный дуплекс.
|
|
|
|
|
Feb 14 2018, 07:37
|

Частый гость
 
Группа: Свой
Сообщений: 89
Регистрация: 24-10-10
Из: Санкт-Петербург
Пользователь №: 60 386

|
Цитата(jcxz @ Feb 13 2018, 17:24)  А где там в запросе автора требовался полный? В любом случае - во время импульсов передатчика на кристалле там такой уровень пульсаций, что приём невозможен имхо. Даже если для приёма есть отдельный кристалл, не говоря уже если кристалл всего один - TX/RX. Действительно, в запросе топикстартера полный не требовался. Мы в процессе обсуждения переключились немного на другую тему. Тем не менее, ключевые слова "full duplex" часто встречаются в описании коммерческих продуктов различных фирм. Например: https://evologics.de/en/products/acoustics/index.html. То есть, как-то проблему одновременного приема/передачи решают.
|
|
|
|
|
Feb 14 2018, 20:55
|
Местный
  
Группа: Свой
Сообщений: 316
Регистрация: 20-02-05
Из: Ленинградская обл.
Пользователь №: 2 765

|
Возьмите и присвойте какому-либо набору частот цифровые значения, например:F0 - пилот-сигнал, F1 - ноль, F2 - один, и т.д. 256 частот - один байт. Проблемы будут с тем, что акустические излучатели обычно узкополосные, но, взяв Фурье достаточной длины, Вы можете обойтись довольно близкими частотами. Главное - чтобы длительность посылки была достаточной для уверенного обнаружения. Можно взять меньше частот и несколько пилот-сигналов и передавать, например, десятичные цифры Простор для фантазии.
|
|
|
|
|
Feb 15 2018, 08:42
|

Профессионал
    
Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143

|
Цитата(Acvarif @ Feb 6 2018, 10:30)  Нет-ли готовых микросхем модуляторов-демодуляторов способных работать с несущими порядка 35..200 кГц? гляньте на HART модем AD5700 или Power Line Communication Modems CY8CPLC10, CY8CPLC20, LM1893, MAX2990, MAX2992, MAX79356, NCN49597-D, NCN49599-D, ST7536, ST7540, ST7580, ST7590, TDA5051A может что и можно под вашу задачу заточить ( тоже изучаю вопрос по смежной тематике ) Цитата(Acvarif @ Feb 2 2018, 10:47)  Как примерно будет выглядеть структура такого устройства? пишут что так
Цитата(Acvarif @ Feb 5 2018, 17:09)  Я действительно далек от темы. Придется штудировать буквари. по этой ссылке знатоки рекомендуют почитать Скляра.
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|
|
|
|
|
Feb 15 2018, 19:49
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(bve @ Feb 14 2018, 23:55)  Возьмите и присвойте какому-либо набору частот цифровые значения, например:F0 - пилот-сигнал, F1 - ноль, F2 - один, и т.д. 256 частот - один байт. Проблемы будут с тем, что акустические излучатели обычно узкополосные, но, взяв Фурье достаточной длины, Вы можете обойтись довольно близкими частотами. Главное - чтобы длительность посылки была достаточной для уверенного обнаружения. Можно взять меньше частот и несколько пилот-сигналов и передавать, например, десятичные цифры Простор для фантазии. Если точнее то по минимому в воде мне необходимо передать и достоверно принять всего один байт информации. Очевидно что впереди должен быть еще пилот или синхробайт. А если вообще по самому минимому то минимальная задача это идентифицировать сигнал запроса для конкретного маяка-ответчика от базовой антенны чтобы дать ответный сигнал базе от нужного маяка-ответчика. Поэтому Фурье это интересно. Только пока не врубаюсь как это должно работать на несущей в 35 кГц... Если, например маяков-ответчиков не более 10 может есть совсем простые способы генерации и последующей идентификации запроса? Конечно полоса у пъезокерамики достаточно узкая - меньше десяти процентов от резонансной частоты.
|
|
|
|
|
Feb 16 2018, 20:20
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Rst7 @ Feb 15 2018, 23:02)  Эээ, Вы там что, систему определения координат строите? Вроде того. Только в любительском варианте с минимальной стоимостью. Такие профессиональные станции уже давно имеются, все достаточно дорого. И тем не менее даже в любительском варианте все-же придется организовать обмен данными в виде нескольких байт с периодичностью примерно в 0.5 сек. Глубина места порядка 15 метров. Это мелководье. Множественных переотражений не избежать. Достоверный прием нескольких байт на такой глубине очевидно задача не из простых. Но если решить эту задачку то дальше все проще. Пока склоняюсь к BPSK на базе MSP430...
|
|
|
|
|
Feb 19 2018, 07:21
|

Профессионал
    
Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143

|
Цитата(Acvarif @ Feb 18 2018, 21:29)  Подскажите пожалуйста где можно найти исходники для BPSK модема на MSP432? ну блин даете, там жевот еще аттач
slaa681a.zip ( 1.69 мегабайт )
Кол-во скачиваний: 22
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|
|
|
|
|
Feb 28 2018, 17:20
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(megajohn @ Feb 19 2018, 10:21)  Спасибо. При чтении документа http://www.ti.com/lit/an/slaa681a/slaa681a.pdf возникает куча вопросов. Один из них про forward error corection на странице 7. Подскажите пожалуйста где про это можно почитать подробней на русском?
Сообщение отредактировал Acvarif - Feb 28 2018, 17:21
|
|
|
|
|
Feb 28 2018, 18:09
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
Цитата(Acvarif @ Feb 28 2018, 20:20)  Спасибо. При чтении документа http://www.ti.com/lit/an/slaa681a/slaa681a.pdf возникает куча вопросов. Один из них про forward error corection на странице 7. Подскажите пожалуйста где про это можно почитать подробней на русском? Это расширенный, а затем укороченный код Хэмминга (15, 11). Получен путем добавления дополнительного бита - проверки на четность, а затем укорочения кода (16, 11) до (13, 8). Вернер М. Основы кодирования. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. Р. Морелос-Сарагоса
|
|
|
|
|
Mar 8 2018, 15:17
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Grizzzly @ Feb 28 2018, 21:09)  Это расширенный, а затем укороченный код Хэмминга (15, 11). Получен путем добавления дополнительного бита - проверки на четность, а затем укорочения кода (16, 11) до (13, 8). Спасибо. С этим все оказалось несложно. Возвращаясь к исходному, к BPSK. Читая, например, этот документ http://www.iject.org/vol73/10-shachi-p.pdf возникли несколько вопросов. 1. Петля Костаса.
Получается что по простому это ФАПЧ фазовая автоподстройка частоты. В данной схеме не совсем врубился что такое PD1. Это смеситель? Что производится с цифровыми частотами? Они умножаются друг на друга? Хотя там написано что это "The BPSK modulated data is fed to both the phase detectors (PD’s)" фазовый детектор. 2. Если к примеру взять несущую 100 кГц и частоту выборок в 4 раза выше 400 кГц то будет-ли работать в этом случае такая фапч как на рисунке? В приведенном документе предлагается частоту выборок взять намного больше чем несущая.
|
|
|
|
|
Mar 8 2018, 17:52
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
Цитата(Acvarif @ Mar 8 2018, 18:17)  1. В данной схеме не совсем врубился что такое PD1. Это смеситель? Что производится с цифровыми частотами? Они умножаются друг на друга? Да, это умножитель входного сигнала и опорного. Цитата(Acvarif @ Mar 8 2018, 18:17)  2. Если к примеру взять несущую 100 кГц и частоту выборок в 4 раза выше 400 кГц то будет-ли работать в этом случае такая фапч как на рисунке? Обычно как раз 4 отсчета на символ используют.
|
|
|
|
|
Mar 8 2018, 19:59
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(petrov @ Mar 8 2018, 21:38)  Статья конечно тихий ужас, но в любом случае простая схема костаса не будет работать в условиях коротких пакетов и канала с отражениями. Спасибо. Да. Короткие пакеты это проблема. Только сам пока не определился с пакетами. Что считать короткими? Думаю что явно короткими будут пакеты из нескольких байт. Но, что если использовать формат передачи данных как на картинке
Можно-ли такой формат считать коротким? Если нет, то будет-ли для такого формата работать приведенный выше ФАПЧ? Если не сложно, поскажите пожалуйста (ссылкой, функциональной схемой) как выглядит более серъезная петля костаса.
Сообщение отредактировал Acvarif - Mar 8 2018, 20:02
|
|
|
|
|
Mar 9 2018, 08:02
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(petrov @ Mar 9 2018, 00:14)  Надо исходить из того, что из себя представляют подводные каналы акустические: http://web.mit.edu/millitsa/www/resources/.../chmj-print.pdfСмотрите на OFDM и прочий multicarrier с feed-forward синхронизацией, возможны относительно простые надёжные реализации с дифференциальной демодуляцией и расширением спектра по поднесущим. Спасибо за ссылку. В сторону OFDM уже просматривал, показалось сложной в плане цифровой реализации для новичка. Для начала хотя-бы с BPSK справиться. Если метров на 100 будет сносно работать то хорошо. В этом документе http://trudymai.ru/upload/iblock/9ca/9ca83...bb15e464674.pdf предлагается в ФАПЧ использовать ПИФ (пропорционально интегрирующий фильтр) Скажите пожалуйста насколько это лучше в плане скорости захвата и пр. чем обычная петля ФАПЧ с фильтром LPF?
Сообщение отредактировал Acvarif - Mar 9 2018, 08:25
|
|
|
|
|
Mar 9 2018, 10:13
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Grizzzly @ Mar 9 2018, 13:04)  Я бы, как посоветовал petrov, в вашем случае осуществлял оценку параметров для синхронизации, используя разомкнутые методы (они же feed-forward). В этом случае оценка производится по принятому блоку. Спасибо. Где можно понятно почитать про feed-forward?
Сообщение отредактировал Acvarif - Mar 9 2018, 10:14
|
|
|
|
|
Mar 9 2018, 11:47
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
Цитата(Acvarif @ Mar 9 2018, 13:13)  Где можно понятно почитать про feed-forward? Nezami M.K. RF Architectures and Digital Signal Processing Aspects of Digital Wireless Transceivers: Introduction to Feedorward Synchronization. Feedforward Carrier Frequency and Carrier Phase Offsets Estimation Algorithms. Carrier Acquisition and Carrier Tracking for Burst TDMA Satellite and Mobile Radio Receivers.
|
|
|
|
|
Mar 9 2018, 18:14
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Grizzzly @ Mar 9 2018, 15:47)  Nezami M.K. RF Architectures and Digital Signal Processing Aspects of Digital Wireless Transceivers: Introduction to Feedorward Synchronization. Feedforward Carrier Frequency and Carrier Phase Offsets Estimation Algorithms. Carrier Acquisition and Carrier Tracking for Burst TDMA Satellite and Mobile Radio Receivers. Спасибо. Нашел Nezami https://www.researchgate.net/profile/Mohame...oise-Ratios.pdf Читать не перечитать. Если коротко, чем примечательна схема feed-forward по сравнению с обычной ФАПЧ костаса?
|
|
|
|
|
Mar 9 2018, 19:01
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Grizzzly @ Mar 9 2018, 22:30)  Схема Костаса должна работать с непрерывным потоком символов или достаточно длинной их последовательностью. Это замкнутая система. Разомкнутые системы синхронизации предпочтительны для блоковой передачи. Да, они требуют бОльших вычислительных затрат, но способны произвести оценку параметра по относительно коротким выборкам символов. Спасибо. Понятно. Касательно OFDM. Это ближе к разомкнутой системе? Или все зависит от способа модуляции поднесущих в БПФ?
|
|
|
|
|
Mar 13 2018, 10:11
|

Частый гость
 
Группа: Свой
Сообщений: 95
Регистрация: 27-07-11
Из: Зеленоград
Пользователь №: 66 439

|
Цитата(Acvarif @ Mar 9 2018, 22:01)  Спасибо. Понятно. Касательно OFDM. Это ближе к разомкнутой системе? Или все зависит от способа модуляции поднесущих в БПФ? Да, разомкнутая система, feed-forward.
--------------------
Суббота начинается в понедельник
|
|
|
|
|
Mar 14 2018, 17:29
|

Частый гость
 
Группа: Свой
Сообщений: 95
Регистрация: 27-07-11
Из: Зеленоград
Пользователь №: 66 439

|
Цитата(petrov @ Mar 13 2018, 14:26)  А если OFDM feed-back сделано, то каким образом да? Делал feed-forward OFDM. Приведите пример feed-back?
--------------------
Суббота начинается в понедельник
|
|
|
|
|
Mar 15 2018, 06:09
|

Частый гость
 
Группа: Свой
Сообщений: 95
Регистрация: 27-07-11
Из: Зеленоград
Пользователь №: 66 439

|
Цитата(petrov @ Mar 14 2018, 21:05)  Делал feed-back OFDM. )) И без примеров должно быть очевидно, что OFDM можно сделать и так и так. Это понятно, что очевидно, а Вы все же приведите пример. Интересно же.  В частотной синхре, символьной, фазовой? Эквалайзере?
Сообщение отредактировал quato_a - Mar 15 2018, 06:09
--------------------
Суббота начинается в понедельник
|
|
|
|
|
Mar 15 2018, 10:07
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(quato_a @ Mar 15 2018, 09:09)  Это понятно, что очевидно, а Вы все же приведите пример. Интересно же.  В частотной синхре, символьной, фазовой? Эквалайзере? Всё с обратной связью. Это ж не догма, то что по OFDM в основном друг у друга в книжках переписывают одно и то же, можно сделать и с обратной связью, и без пилот тонов, и без циклических префиксов, и с окнами много большими символьного интервала, и без помехоустойчивого кодирования исправляющего задавленное спектральными нулями, сразу без большого пик-фактора.
|
|
|
|
|
Mar 16 2018, 12:04
|

Частый гость
 
Группа: Свой
Сообщений: 95
Регистрация: 27-07-11
Из: Зеленоград
Пользователь №: 66 439

|
Цитата(petrov @ Mar 15 2018, 13:07)  Всё с обратной связью. Это ж не догма, то что по OFDM в основном друг у друга в книжках переписывают одно и то же, можно сделать и с обратной связью, и без пилот тонов, и без циклических префиксов, и с окнами много большими символьного интервала, и без помехоустойчивого кодирования исправляющего задавленное спектральными нулями, сразу без большого пик-фактора. Шаблон рвется.
--------------------
Суббота начинается в понедельник
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|