Форум по радиосвязи предназначен прежде всего для постояльцев портала, которые кроме паяния жучков умеют жать на тангенту, проводить QSO, которые возлюбили свои антенны, и трансиверы как самого себя. Правила данного форума в рамках пп 6.6., 6.7.8., 6.7.9 соответствуют регламенту проведения радиосвязей
Чета опять фигня какая-то: 1. caddetect не используется. 2. корпус опять какая-то левая коробка.
Модуль только другой, но в чём новизна?
Ну ладно, ждем версию 3.
Однако, надо отдать должное трудолюбию автора. кто еще с таким качеством подхода похвастается разработкой своего устройства подобной сложности. еще и публично комментируя...
Группа: Автор
Сообщений: 12972
Пользователь №: 55667
Регистрация: 10-November 09
Место жительства: BY
QUOTE (veteran_vrtp @ Apr 20 2017, 07:21 PM)
Зато теперь есть возможность взять исходный звук с микрофона реальной рации включить вокодер в режим обучения и составить кодовую книгу на голоса пользователей рации
Вот это хороший шаг.
Ну и для интереса...если увеличить книгу сэмплов в несколько сотен/тысяч раз (вплоть до распознования слогов) - насколько можно пожать поток ?
Ну и для интереса...если увеличить книгу сэмплов в несколько сотен/тысяч раз (вплоть до распознования слогов) - насколько можно пожать поток ?
В исходной кодовой книге MELP кодовая книга занимает (2^7)+(2^6)+(2^6)+(2^6)=128+64+64+64=320 векторов LSF-коэффициентов (линейные спектральные частоты). Это четырех-ступенчатое векторное квантование, 7+6+6+6 = 25 бит.
Много-ступенчатое векторное квантование (MSVQ) ускоряет поиск в кодовой книги и уменьшает требования к объему ПЗУ для хранения кодовой книги. Однако же, эксперименты показали, что отношение сигнал/шум у таких кодовых книг меньше, чем у кодовых книг с одной ступенью квантования (FSVQ или просто VQ) при той же разрядности.
В данном вокодере применено FSVQ разрядностью 13 бит, что даёт 8192 векторов LSF. Такой разрядности бодет очень много для одного голоса, много нулевых LSF-векторов.
Дальнейшее увеличение размера кодовой книги ведёт к вычислительным затратам и затратам на память хранения кодовой книги.
И построение такой кодовой книги из исходных речевых выборок дикторов займет несколько часов.
В данном вокодере 4 кодовых книги, проквантованы все параметры: LSF-векторы, основной тон, энергия, 4-полосный признак тон/шум. Параметры квантуются отдельно - по 2,4,8 фреймов.
В итоге все параметры вокодера НЕ ПЕРЕДАЮТСЯ в эфир - передаются соответствующие индексы кодовых книг. Это помимо нехилого сжатия, несёт еще и секретность данных, корреляция которых очень мала и практически невозможно из перехваченных 32 бит получить исходные 2,4,8 речевых фрейма по 22,5 мс
Иными словами, векторно кодируется траектория изменения параметров в соседних фреймах - за счет этого жмется сильнее и деградация разборчивости речи падает медленно. При простом усечении разрядности параметров или удлинении речевого фрейма: голос будет иметь мало что общего с человеческим, или нечленораздельная речь. Поэтому производить сжатие нужно, объединяя фреймы, а не кастрируя параметры одного фрейма.
Пожать поток можно, только нужно увеличивать разрядность ВСЕХ кодовых книг, однако же это приводит к росту битрейта. В тех примерах что выкладывал, режим 200 бит/с был получен за счет увеличения разрядности на +1 всех кодовых книг по сравнению с режимом 178 бит/с.
При квантовании надо смотреть на суммарное отношение сигнал/шум (отностительное изменение) всех кодовых книг - по нему можно судить о разборчивости речи.
Протестировал вторую плату LoRa1278F30. Напряжение питания: 4 свежих пальчиковых батареи суммарным напряжением 6.49 V. При максимальной выходной мощности напряжение питание падает до 5.63 V (просадка 0.86 V). На ВЧ вольтметре при этом напряжение 11.25 V, что соответствует мощности 1.265 W. Частота модуля была меньше расчётной на 6.5 kHz, откалибровал множитель синтезатора с помощью частотомера. Все измерения проводились в режиме FSK на частоте 430 MHz, девиация частоты +/- 0.1 kHz. Вывод: годен.
Присоединённое изображение (Нажмите для увеличения)
С программированием возникли огромные проблемы. Вначале контроллер не определялся, программатор(отладочная плата DISCOVERY в режиме ST-LINK) не видел контроллер и напряжение платформы(Target Voltage). Причина как оказалась, в разном напряжении питания контроллера программатора и целевого устройства. При подаче питания с программатора к входу стабилизатора целевого устройства, контроллер стал определяться, но SWD до 15 кГц (вместо 4 МГц). Дальше много чего делал, спас вывод NRST - его с программатроа всё-же надо тянуть на контролеер целевого устройства. При этом контроллер стабильно определяется и шьётся со скоростью 4 МГц. В итоге: при разных питающих напряжения программатора(2.9 V) и целевого устройства(3.3 V) кроме SWDIO и SWDCLK нужен ещё NRST.
Применён электретный микрофон с сотового телефона в защитном резиновом чехле (противоветровая и противовлаговая защита и защита от пик-факторов звука). Испытания показали, что при передаче, в звуковой тракт микрофона мощный ВЧ-сигнал с антенны не попадает - звук чистый (за счёт коротких соединений и ВЧ-дросселей). А вот в колонках акустической системы компа будет слышно передачу пакетов(эффект лопастей вертолёта
Так как вторую плату ещё не спаял, проверил с Oper-Quad-M. Все Oper-Quad совместимы между собой (Oper-Quad, Oper-Quad-M, Oper-Quad-2).
Присоединённое изображение (Нажмите для увеличения)
Группа: Автор
Сообщений: 12972
Пользователь №: 55667
Регистрация: 10-November 09
Место жительства: BY
Ну, наверное последний, не дающий покоя вопрос...
Как по-вашему, насколько будет оправдано применить какой-нить ФНЧ на входе в мк, далее АЦП. Ну, или наоборот, оцифровать и софт ФНЧ (говорю так, ибо слабо представляю процедуру ФНЧ в коде мк)
Затем, блоками по 1 сек (например) всё это дело упаковывать в подобие rar,zip или ещё как ?
Понимаю, что если бы это было актуальнее кодовых сэмплов, это бы уже давно использовалось...
Просто хочется удовлетворить свой интерес в таком векторе, спасибо
Это сообщение отредактировал Ferrum-1827 - Apr 23 2017, 05:46 PM
Также была составлена своя кодовая книга. Были взяты выборки русскоговорящих дикторов: 30 мужских и 30 женских голоса. Голоса были очищены от лишнего, и нормализованы. Путём векторного квантования в режиме обучения были построены базисные центроидные векторы - кодовая книга собственно.
Оригинал речевого образца и их пожатые результаты прикреплены в архиве ниже:
Сори, если немного не в тему. Если абстрагироваться от конкретных радиостанций: и соединить два вокодера, на вход первого подавать сигнал с микрофона, то с выхода второго в канал может вещать голос незнакомого человека? ... Либо знакомого для слушающего?
Это сообщение отредактировал DonPatron - Apr 23 2017, 06:36 PM
С программированием возникли огромные проблемы. Вначале контроллер не определялся, программатор(отладочная плата DISCOVERY в режиме ST-LINK) не видел контроллер и напряжение платформы(Target Voltage). Причина как оказалась, в разном напряжении питания контроллера программатора и целевого устройства. При подаче питания с программатора к входу стабилизатора целевого устройства, контроллер стал определяться, но SWD до 15 кГц (вместо 4 МГц). Дальше много чего делал, спас вывод NRST - его с программатроа всё-же надо тянуть на контролеер целевого устройства. При этом контроллер стабильно определяется и шьётся со скоростью 4 МГц. В итоге: при разных питающих напряжения программатора(2.9 V) и целевого устройства(3.3 V) кроме SWDIO и SWDCLK нужен ещё NRST.
У Вас вроде присутствует кнопочка ресет на плате... в такой момент спасает..
Как по-вашему, насколько будет оправдано применить какой-нить ФНЧ на входе в мк, далее АЦП.
Теоретически и практически это будет работать. Только прийдётся разрулить: 1) Подобрать хороший ФНЧ (тип схемы, порядок, качество монтажа) 2) Правильно развести цепи АЦП (фильтрация питания, блокировка ВЧ) 3) Грамотно реализовать алгоритм работы контроллера с АЦП и остальными частями (вычислительный ресурс, шина, тайминги)
QUOTE (Ferrum-1827)
Ну, или наоборот, оцифровать и софт ФНЧ (говорю так, ибо слабо представляю процедуру ФНЧ в коде мк)
Можно и так, но лучше поставить аналоговый ФНЧ - так как из-за п.3) выше - надо экономить вычислительный ресурс.
Мне не удалось нормально использовать внутренний АЦП, потому что в отладочной плате DISCOVERY, которая у меня есть, питания на АЦП не отфильтровано. В идеале, оно должно браться от отдельного LDO и выполнена соответствующая разводка платы с учётом разделения полигонов питания/земли... Но разработчик отладочной платы почему-то решил иначе.
Вокодер просто тонул в бульканиях из-за неотфильтрованного Uref, что понижало сигнал/шум и делало речь трудно узнаваемой.
Поэтому в Oper-Quad-* было решено применить внешний кодек - это: 24-битный АЦП/ЦАП + усилитель НЧ микрофона/выхода+ ресемплер + буфер FIFO(сберегает вычислительные ресурсы главного контроллера) + софт фильтров ВЧ, НЧ + кодеки ADPCM/OGG/MP3/... Ну и аналоговые цепи все внутри микросхемы.
QUOTE (Ferrum-1827)
Затем, блоками по 1 сек (например) всё это дело упаковывать в подобие rar,zip или ещё как ?
Считаем для MELP 711,11111 бит/с:
32 бита на 2 фрейма = 16 бит/фрейм 46 фреймов дадут 736 бит (92 байта) за 1.035 с Пожав 92 байта RAR-ом (максимальная опция сжатия) получим 146 байт > 92 - сжатия нет - наоборот раздулось.
Теперь возьмем в 10 раз больше: 920 байт - это 10.35 с Пожав 920 байт тем же RAR-ом - вышло 567 байт - сжатие есть, но это уже не реалтайм.
На бОльших временных интервалах - сжатие будет эффективнее.
На меньших битрейтах вокодера - эффективность сжатия будет падать, так как корреляция битов будет падать - поток будет представлять из себя шум, который уже плохо жмется. В пределе - получится уникальный шум с нулевой корреляцией, который не жмется ни вокодером, ни архиваторами...
QUOTE (Ferrum-1827)
Понимаю, что если бы это было актуальнее кодовых сэмплов, это бы уже давно использовалось...
Это оправдано, если нужно огранизовать систему для сбора информации с последующим её сжатием и передачей. Или если задержка по времени между корреспондентами не принципиальна.
Можно взять тот же вокодер на 2400 и передавать его фреймы на скорости 600 бит/с. Правда ждать ответа прийдётся в 4 раза дольше и делать паузы (класть фреймы на 2400 в память, а потом передавать - но тут будет ограничение по времени на передаваемое сообщение). Зато чутьё приемника вырастет на +6 дБ, что равностильно теоретически выигрышу в дальности связи в 2 раза (в сферическом пространстве).
QUOTE (gen34)
У Вас вроде присутствует кнопочка ресет на плате... в такой момент спасает..
В Oper-Quad нажатие на RESET и её удержание на 1 секунду с последующим отпусканием при программировании прокатывало. Но в Oper-Quad-2 такой трюк не прокатывет, так как напряжения питания программатора и целевого устройства - разные.
Софт программатора и его FirmWare проапдейчены последней версией.
Vdd Target на программаторе не используется: отсутствует резистор R2 на программаторе, соединяющий вывод Vdd Target со входом АЦП программатора. Подпайка этого резистора и заведения на Vdd Target питания с целевого устройства - ничего не дали.
QUOTE (DonPatron)
и соединить два вокодера, на вход первого подавать сигнал с микрофона, то с выхода второго в канал может вещать голос незнакомого человека? ... Либо знакомого для слушающего?
В теме уже пролетал голос робота... Можно поиграться с изменением основного тона.
Практически эту задачу сделать реально, только прийдётся курить теорию вокодеров.
Как пример, приложил несколько звуковых образцов:
1) инверсия тона 2) изменение тона по закону синуса 3) тон выше в 1.5 раза 4) тон ниже в 1.5 раза 5) постоянный высокий тон
Группа: Cоучастник
Сообщений: 42
Пользователь №: 120002
Регистрация: 7-March 17
Место жительства: Россия
Автор, Ваша целеустремленность поистине заслуживают уважения и всяких похвал! Мне хотелось бы что-то тоже сделать для проекта. Я в данный момент рисую плату и схему под использование Oper-Quad-2 в корпусе раций Midland GX-400 и BELLSOUTH T-388, но хотелось добавить новому устройству несколько функций, а именно: - Возможность использования кнопок (6 шт.) и небольшого OLED дисплея 0.66 дюймов для ввода и вывода минимального количества параметров, таких как громкость, частота, RSSI, BER, Vbat, и тд. - Bluetooth модуля для настройки и передачи через терминал текстовой информации. - Подключение потенциометра между выходом VS1063 и входом LM4871 (есть сомнения в работоспособности, так как используется дифференциальный сигнал) Так же есть предложение добавить еще один небольшой МК с открытым кодом для работы с периферией, а на STM32f405 и VS1063 возложить только функции кодека. Если надежда на помощь автора в данном вопросе или для реализации нового устройства придется самому писать код с нуля?
использование Oper-Quad-2 в корпусе раций Midland GX-400
В этом корпусе - три пальчика дадут 4,5V. Будете Lora1278F30 питать от 4,5V ? Ничего если мощность получите меньше 1 Ватта?
QUOTE
BELLSOUTH T-388
В этом корпусе 4 пальчика - сойдёт.
QUOTE
Я в данный момент рисую плату и схему под использование Oper-Quad-2
Периферия подключена как в Oper-Quad или по-другому?
QUOTE
Возможность использования кнопок (6 шт.) и небольшого OLED дисплея 0.66 дюймов для ввода и вывода минимального количества параметров, таких как громкость, частота, RSSI, BER, Vbat, и тд.
Приветствуется. Только вешать их на свободные ноги контроллера.
QUOTE
Bluetooth модуля для настройки и передачи через терминал текстовой информации
Вот это лишнее ИМХО. Если у вас будут кнопки и табло, то надобность в синем зубе отпадает - только жрать электроэнергию и занимает место на плате (а его увас на сколько я понял итак маловато).
QUOTE
Подключение потенциометра между выходом VS1063 и входом LM4871 (есть сомнения в работоспособности, так как используется дифференциальный сигнал)
Тоже ИМХО лишнее. Если кнопки+табло присутствуют.
QUOTE
Так же есть предложение добавить еще один небольшой МК с открытым кодом для работы с периферией, а на STM32f405 и VS1063 возложить только функции кодека.
Чем программирование STM32 не устраивает? Не говоря уже о программировании ядра VS1063...
QUOTE
Если надежда на помощь автора в данном вопросе или для реализации нового устройства придется самому писать код с нуля?
С нуля писать не прийдется!
Если сделаете всё как в Oper-Quad-2 и на свободные ноги контроллера довешаете своё, то останется дописать только те фрагменты кода, которые работают с добавленным.
Я могу сбилдить и отдать вам на тестирование прошивку с документированнойвходной точкой или задействовать программное прерывание, которое будет вызываться в main loop каждый раз. Всё что вам остаётся сделать - написать свой обработчик прерывания или энтри-пойнт-процедуру, которая инициализирует ваше добавочное железо и работает с Oper-Quad. При этом инициализировать периферию Oper-Quad уже не надо, можно её использовать по своему усмотрению (например: перестройка частоты или считывание RSSI). Собрать два бинарника в один - я тоже помогу.
Но это я сделаю лишь только в том случае, когда вам удастся собрать плату и запустить исходную прошивку Oper-Quad на 2400 bps (выложена на форуме и в статье). Ну и фотоотчет конечно же не помешал бы (можно в личку, если в форум нельзя).
Группа: Cоучастник
Сообщений: 42
Пользователь №: 120002
Регистрация: 7-March 17
Место жительства: Россия
Тогда остановлюсь на BELLSOUTH T-388 это доступная и дешевая (350р за шт.) рация с 4ААА и в нее можно легко установить прямоугольный Li-ION 4.2 V. По документации на выходной транзистор модуля 1278F30 при таком напряжении с него можно снять 0.5 – 0.8 Вт. Периферия подключается также как в Oper-Quad-2. Я изначально планировал тестирование с вашими прошивками. Модуль Bluetooth нужен, что бы использовать станцию как текстовый трансивер с максимальной чувствительностью -139 (XTAL) и -147(TCXO), передача планировалась с терминала телефона. Пока рисую схему в EAGLE, платы делать буду, когда придут T-388.
Там аккумулятор 7.2-8.4v надо ставить DC-DC конвертор, да и большие они привлекать внимание будут.
Ага, ага
Эта коробка: Ширина, мм 181.5 Глубина, мм 65 Высота, мм 27.6
И картинка с рукой.
Нет, там аккум. - 3.7 в., придется ставить повышающий преобразователь. Можно найти вариант корпуса где есть 7.2-8.4v, да придется ставить понижающий преобразователь. И что? их для того и делают, я имею ввиду преобразователи. Весь мир так живет.
Это сообщение отредактировал _Sergeyka_ - Apr 26 2017, 02:30 PM
Присоединённое изображение (Нажмите для увеличения)
Группа: Cоучастник
Сообщений: 42
Пользователь №: 120002
Регистрация: 7-March 17
Место жительства: Россия
QUOTE (_Sergeyka_ @ Apr 26 2017, 02:29 PM)
QUOTE (Varelka @ Apr 26 2017, 09:32 AM)
Там аккумулятор 7.2-8.4v надо ставить DC-DC конвертор, да и большие они привлекать внимание будут.
Ага, ага
Эта коробка: Ширина, мм 181.5 Глубина, мм 65 Высота, мм 27.6
И картинка с рукой.
Нет, там аккум. - 3.7 в., придется ставить повышающий преобразователь. Можно найти вариант корпуса где есть 7.2-8.4v, да придется ставить понижающий преобразователь. И что? их для того и делают, я имею ввиду преобразователи. Весь мир так живет.
Дороговато получается, к тому же нет дисплея. Рация Т-388 дешевле и любой литий от телефона впихнуть можно. Не нравиться в ней только отсутствие антенного разъёма.
В сотовых и переносных рациях я не видел, что бы делали питание выходного ВЧ каскада от DC-DC конвертера. Каскад как правило проектируются на питание напрямую от источника питания для лучшего КПД.
Это сообщение отредактировал Varelka - Apr 27 2017, 04:19 PM
текстовый трансивер с максимальной чувствительностью -139 (XTAL) и -147(TCXO)
За 2 минуты непрерывной работы на передачу LoRa1278F30 частота уменьшилась на 0,36 кГц. Стоит кварц(вроде), написано: SJK, ниже 32.000 И два конденсатора рядом (что даёт мне думать, что кварц а не генератор).
TCXO прийдётся довешивать проводами, так как ставить его на место кварца чревато (выводы 1-3 (или 2-4 ?) звонятся на корпус кварца).
QUOTE (Varelka)
Для LoRa1278F30 планирую заказать отдельные на 26MHz
В моих LoR1278F30 стоят кварцы на 32 МГц ! С вашими 26 МГц прошивка Oper-Quad выдаст 349.98 МГц и все частотно-зависимые узлы поплывут. Неизвестно, заработает ли вообще или нет (без корректирования программы).
QUOTE (Ferrum-1827)
Существует поверье, что чем плотнее сигнал упакован в полосу 6,25 (или 12,5) - тем больше шанс на успешную передачу
Что есть успешная передача? Это когда пакет успешно передаётся? Так он всегда нормально передаётся...
Если имеется в виду максимальная дальность приёма, что чем уже полоса, тем выше дальность. Если имеется в виду устойчивость приёма, то узкая полоса - всего-лишь один из важных факторов.
Спред-фактор - немаловажный фактор в получении устойчивого приёма. И чем больше спред-фактор, тем ниже значение SNR нужно детектору приемника для выделения сигнала - тем лучше чутье приемника и его робастность (иммунитет к интерференциям, затуханиям). Но из-за выскокого спред-фактора расширяется полоса пропускания приёмника, что наоборот, снижает чутье.
Если связь не в космосе а в плотном городе, то приоритеты выбираются в другом порядке:
1) Максимальная коррекция ошибок - в LoRa это ведёт к снижению скорости передаваемых данных в 2 раза (это пожертвование в пользу преодоления интерференций всех видов).
2) Выбирается оптимальное сочетание спред-фактора(!) и полосы пропускания(!!) приемного тракта с целью обеспечить хорошую чувствительность и заданный битрейт (время пакета в эфире), чтобы отведенные кадры вокодера успевали передаться быстрее, чем битрейт аудио-потока.
3) Учитывается дрейф частоты в приемнике/передатчике - выбирается не слишком узкая полоса.
Вот поэтому MELP 711.111 бит/с предпочтительнее по качеству голоса, чем стандартный MELP 600 бит/с, так как чутьё -130 дБм достигается с минимальной задержкой. А с применением MELP 600 чутьё ниже -130 дБм в LoRa не получить, так как чутьё меняется дискретно на 3 дБ и следующее значение -133 дБм обеспечивается MELP 355.555 бит/с. Применение стандартного битрейта 400 бит/с не даст чувствительности -133 дБм при задержке звука менее 1 с. Аналогично: для получения небольшой аудио-задержки и бОльшей чувствительности в -136 дБм в LoRa, нужен битрейт 177.777 бит/с, а не 200.
Ну и собственно, 1 фрейм = 32 бита = 22,5 мс. Объединение 2,4,8 фреймов в супер-фрейм дадут соответственно: 711.(1) бит/с (-130 дБм), 355.(5) бит/с (-133 дБм) и 177.(7) бит/с (-136 дБм) с задержками по звуку соответственно: 0.315, 0.63 и 1.26 секунд.
Последний битрейт 177.(7) bps - в стадии проработки...
QUOTE (Ferrum-1827)
Начитался, что многогранное созвездие даёт более плотный спектр, в котором можно больше информации впихнуть
В LoRa нет ODFM, там LFM. Поэтому выбирать не приходится.
Кстати, напомню, что LoRa-приёмник - не самый лучший, который можно получить, и до предела Шеннона ему ещё далеко. Хороший приёмник не собирается на одной микросхеме, а делается на дорогой рассыпухе.
QUOTE (Ferrum-1827)
про корпус - это очень знакомо для инженера, корпус остаётся на самом последнем месте, это факт
Для использования пойдёт, главное чтоб не отвалилось и не замкнуло ничего внутри.
----------
Написал свой векторный квантователь по алгоритму k-means. До этого использовал квантователь одного китайского гражданина по алгоритму LBG.
Почему-то, низкая степень сходимости у k-means - центроиды стабилизируются после 200-й итерации для двух-мерных векторов. В то время как LBG-алгоритм даёт результат быстрее, но мультистадийное квантование даёт низкий SNR, чем k-means. Начальные значения - случайные N векторов из обучающей выборки.
----------
Если на выходных погода не подкачает, проведу испытания.
----------
А пока 2 образца:
Первый образец: 13-битное векторное квантование LSF. VQ(13) - невысокая скорость кодирования/декодирования (поиск в 8192 значениях) Второй образец: 7+6 -битное мультиэтапное квантование LSF. MSVQ(7+6) - выскокая скорость кодирования/декодирования (поиск в 192 значениях)
Какой из них звучит лучше?
Мне кажется что тот, который MSVQ7+6 звучит глуше, за счёт уменьшения SNR в кодовой книге.
Группа: Cоучастник
Сообщений: 42
Пользователь №: 120002
Регистрация: 7-March 17
Место жительства: Россия
QUOTE (veteran_vrtp @ Apr 28 2017, 08:09 AM)
QUOTE (Varelka)
текстовый трансивер с максимальной чувствительностью -139 (XTAL) и -147(TCXO)
За 2 минуты непрерывной работы на передачу LoRa1278F30 частота уменьшилась на 0,36 кГц. Стоит кварц(вроде), написано: SJK, ниже 32.000 И два конденсатора рядом (что даёт мне думать, что кварц а не генератор).
TCXO прийдётся довешивать проводами, так как ставить его на место кварца чревато (выводы 1-3 (или 2-4 ?) звонятся на корпус кварца).
QUOTE (Varelka)
Для LoRa1278F30 планирую заказать отдельные на 26MHz
В моих LoR1278F30 стоят кварцы на 32 МГц ! С вашими 26 МГц прошивка Oper-Quad выдаст 349.98 МГц и все частотно-зависимые узлы поплывут. Неизвестно, заработает ли вообще или нет (без корректирования программы).
В начале тестировать буду со стандартными кварцами LORA1278F30, а будущем планирую замену на TCXO 0.5ppm 26MHz (он самый доступный). Впаять на место можно, только надо перерезать одну дорожку на SX1278 и питание завести на ТСXO проводком. Прошивку по любому менять надо будет. А какой там типоразмер кварца?