thermit 1 17 марта Опубликовано 17 марта · Жалоба 3 часа назад, repstosw сказал: Перечитал посты. Не нашёл как нормировать отсчёты мгновенной частоты. Кроме как что их надо как-то нормировать: Пока сделал Rail-to-Rail Clipper: отсекаю значения всё что выше от 1/4 максимального размаха. Потому что при отсутсвии полезного сигнала, амплитуды шумов в 4 раза выше, чем полезный сигнал. Есть ещё возможность установить по-больше усиление в Si4463 - отсчёты фазы будут больше. Цепочка такая: Отсчёты фазы => отсчёты частоты => Клипирование => Масштабирование => Корень приподнятого косинуса => Блок синхронизации => Бинарный слайсер Декодирование пакета работает правильно. Можно ли улучшить? Второй вопрос: возвращаясь к мягким отсчётам битов. Сейчас слайсер режет сигнал на биты. Как теперь найти "мягкое значение" для каждого бита? Вернуться к отсчётам частоты и времени максимума символа, найденного фильтром косинуса? Или как? Ну, грубо говоря, находите минимум модуля разности между принятым символом и символами решетки, для которых соответствующий бит ноль. От этого вычитаете минимум модуля разности между принятым символом и символами решетки, для которых соответствующий бит 1. Получаете софтбит. В действительности все немного сложнее. Ддя начала и так сойдет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 17 марта Опубликовано 17 марта (изменено) · Жалоба Добавил аттенюатор приёмнику -30 дБ. Мощность передатчика -10 дБм. Передатчик отдалялся от приёмника в пределах 3 комнат. Зафиксированы отсчёты бит с помехами. На рисунке ниже показан бит, начиная с которого пакет терпит неудачу при проверке (длина пакета 6080 байт): Мгновенная частота и фаза (отсчёты) в момент, когда данные не восстанавливаются: Чистый сигнал (для сравнения): Как я понял, что нельзя считать "плoщадь отсчётов" на 1 бит для получения мягкого решения. Есть ли способ восстановить эти биты? Изменено 17 марта пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 17 марта Опубликовано 17 марта · Жалоба 2 часа назад, repstosw сказал: Есть ли способ восстановить эти биты? Не-а. А если у вас подряд 100 одинаковых бит? А если 1000? Как их разделить? Особенно на вашей не вполне равномерной сетке? Вы пытаетесь решить не решабельную задачу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
komah 4 17 марта Опубликовано 17 марта (изменено) · Жалоба Это про нормировку: В 10.03.2024 в 16:40, komah сказал: Выход частотного детектора нужно поделить на (h * M_PI), где h - индекс модуляции. Мягкие решения для (G)FSK2 - это амплитуда на выходе синхронизатора. Если нужны целочисленные - умножьте на максимальное значение и округлите. Изменено 17 марта пользователем komah Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
komah 4 17 марта Опубликовано 17 марта · Жалоба 9 часов назад, repstosw сказал: Есть ещё возможность установить по-больше усиление в Si4463 - отсчёты фазы будут больше. Так-то не должны быть больше. Главное, чтобы динамического диапазона хватало. 9 часов назад, repstosw сказал: Просто для выхода демодулятора в виде PAM с несколькими уровнями, нужно для каждого бита значения как-то нормировать. А это про мягкие решения для многоуровневой PAM. Весь диапазон выходных напряжений синхронизатора нужно разделить на области, соответствующие принятым символам. И нормировать значение относительно размера этих областей. Но если символ соответствует двум и более битам, а декодеру нужно мягкое решение для каждого бита, придется подумать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 17 марта Опубликовано 17 марта (изменено) · Жалоба 3 hours ago, komah said: Так-то не должны быть больше. Главное, чтобы динамического диапазона хватало. Проверил: выставлял разный Gain для PGA, DAC - результат одинаковый. Ибо AРУ ещё есть потому что. 4 hours ago, komah said: Мягкие решения для (G)FSK2 - это амплитуда на выходе синхронизатора. Если нужны целочисленные - умножьте на максимальное значение и округлите. Ну если так, тогда вот мягкие отсчёты - на выходе синхронизатора (умноженные на 0.5, для приведения к [-1..+1] ) - слева преамбула, потом синхрослово 0x5A0FBE66 и потом данные: байты от 0 до 255 : Это 50 кбит/c, девиация +/- 25 кГц. 12 отсчётов на бит(среднее). Запустил на несколько минут симуляцию в GNU Radio (циклически одни и те же анные с файла сигнала). В итоге, протестил все пакеты - все без ошибки. И что самое интересное, мой "детский" алгоритм тоже декодирует пакеты правильно. Но там, где начинает падать отношение сигнал-шум, вариант с синхронизатором работает лучше (больше пакетов даёт валидных, чем "детский" способ). 4 hours ago, komah said: Это про нормировку: On 3/10/2024 at 11:40 PM, komah said: Выход частотного детектора нужно поделить на (h * M_PI), где h - индекс модуляции. Для 2FSK индекс модуляции понятно как считается. А как он считается для 4FSK? берется inner или outer девиация? P.S. Усовершенствовал забор данных отсчётов фазы с Si4463: теперь данные можно забирать со скоростью 1.615 млн. отсчётов в секунду. Это соответствует заполнению одной половины кольцевого буфера 128 отсчётов за 0.079 мс. По-хорошему надо интерполировать, так как некоторые смежные отсчёты фазы одинаковые. Изменено 17 марта пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 17 марта Опубликовано 17 марта · Жалоба - 11 минут назад, repstosw сказал: Для 2FSK индекс модуляции понятно как считается. Ога. 3/4? 1/4 Понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 18 марта Опубликовано 18 марта · Жалоба Итак... Настало время вернуться к вопросу о манипуляции с данными с двух приёмников, чтобы спастись от плоских замираний. Есть 2 приёмника с антеннами, которые разнесены на лямбда пополам или с взаимно-ортогональной ориентацией. Есть доступ к мгновенным фазам с фазового детектора: atan2 и знак +/-. Вопрос, как правильно "складывать" мощность сигналов чтобы убрать вредительство от замирания? Допустим, с одной антенны сигнал хороший, с другой плохой. Нужно постоянно с каждым отсчётом манипулировать данными отсчётов фазы. petrov что-то говорил пр EGC. Но точно не уверен. Интересует - какие операции нужно проделать над сигналами? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 18 марта Опубликовано 18 марта · Жалоба Для Equal Gain Combining нужен выход с квадратур, после жёсткого ограничения у вас собственно уже нет Equal Gain. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 18 марта Опубликовано 18 марта · Жалоба 7 minutes ago, petrov said: Для Equal Gain Combining нужен выход с квадратур, после жёсткого ограничения у вас собственно уже нет Equal Gain. Есть отсчёты мгновенных фаз: Ф1(t) и Ф2(t). Из которых можно получить квадратуры I1(t)=cos(Ф1(t)) Q1(t)=sin(Ф1(t)) I2(t)=cos(Ф2(t)) Q2(t)=sin(Ф2(t)). Или отсчёты частоты F1(t) F2(t). С них можно сделать EGC? О каком ограничении идёт речь? Если нельзя, тогда вторая часть вопроса: допустим есть две пары квадратур I1,I2, Q1, Q2. Для простоты считаем их комплексными отсчётами во времени. Что дальше с ними делать для EGC? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 18 марта Опубликовано 18 марта · Жалоба atan2 и есть жёсткое ограничение. Нужно суммировать после частотного детектора до жёсткого ограничения. Вы выше постили схему частотного детектора с DSPlib, деление на мгновенную мощность и есть жёсткое ограничение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 18 марта Опубликовано 18 марта (изменено) · Жалоба 31 minutes ago, petrov said: atan2 и есть жёсткое ограничение. Нужно суммировать после частотного детектора до жёсткого ограничения. Вы выше постили схему частотного детектора с DSPlib, деление на мгновенную мощность и есть жёсткое ограничение. Просто просуммировать два сигнала как комплексные числа? То, что в числителе на схеме. Изменено 18 марта пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 18 марта Опубликовано 18 марта · Жалоба В выше приведённой схеме частотного детектора никаких комплексных чисел уже нет. Произвольный фазовый сдвиг между каналами устранён частотным детектором, почёму и можно просто всё сложить до операции деления. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 18 марта Опубликовано 18 марта · Жалоба 11 minutes ago, petrov said: В выше приведённой схеме частотного детектора никаких комплексных чисел уже нет. Произвольный фазовый сдвиг между каналами устранён частотным детектором, почёму и можно просто всё сложить до операции деления. Приведённая схема частотного детектора с DSPlib и выход фазы демодулятора - это разные вещи. Я ничего не делю. По отсчётам фазы нахожу мгновенную частоту. Можно ли по отсчётам фазы просуммировать сигналы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 18 марта Опубликовано 18 марта · Жалоба На этот вопрос уже ответил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться