|
|
  |
FSK на AVR |
|
|
|
Mar 28 2017, 11:11
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(aiwa @ Mar 28 2017, 13:02)  Реализовали подобную задачу на FX604. Дальность при прямой видимости - до 10 км. Но основные проблемы использования - лицензирование частоты. Дальность вообще-то должна зависеть от радиостанции, её вых. мощности и антенн. Цитата(RA3MAH @ Mar 28 2017, 10:29)  На асме будет тяжко, но тоже не откажусь. Начнём с корня квадратного. TMS320VC5502, CCS3.3: CODE sqrtTable .macro x .loop x .word $cvi($round(1 / $sqrt(1 << x) * 32768)) .eval x - 1, x .endloop .endm sqrtTable 31 ;1/sqrt(2^31)...1/sqrt(2^1) const7FFFh: sqrtT .word 7FFFh ;1/sqrt(2^0)
.arms_off sqrt: MOV #4, BRC1 MOV #sqrtT, AR3 MOV dbl(*AR0+), AC2 ||RPTBLOCAL sqrt_2 MANT AC2, AC0 ::NEXP AC2, T0 ||MOV dbl(*AR0+), AC2 MOV #5E00h << #16, AC1 ||RPTBLOCAL sqrt_1 SQS AC1, AC1 sqrt_1: ADD AC0 << #-1, AC1 XCC AC0 != #0 ||MPYM *AR3(T0), AC1, AC0 sqrt_2: MOV rnd(hi(AC0 << #1)), *AR2+ RET Цитата(RA3MAH @ Mar 28 2017, 10:29)  Спасибо. пожалуйста
|
|
|
|
|
Mar 28 2017, 11:57
|
Местный
  
Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682

|
Цитата(jcxz @ Mar 28 2017, 13:11)  Дальность вообще-то должна зависеть от радиостанции, её вых. мощности и антенн. Да, и от выходной мощности радиостанции зависит лицензия на вещание. Деталей я не знаю, но это основная проблема у пользователя.
|
|
|
|
|
Mar 28 2017, 13:59
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 29-09-10
Пользователь №: 59 816

|
Цитата(rx3apf @ Mar 28 2017, 19:56)  Вот на счет "надежно" - плавали, знаем (применительно к DTMF). В реальном эфире - паршиво. Да, с аппаратным декодером (8870, 8880). А все равно паршиво. А вот модем SmarTrunk-2 (топикстартеру я его в качестве примера приводил) - как часы. Через аудиоконтакт, в шумах - а все равно работает. Но, конечно, на бейсике это не написать... Ресурсы - хватало PIC16x84 @ 4 MHz. Что есть куча решений, лучше чем DTMF, никто не сомневается. Но тогда надо плотно лезть в цос и связь, иметь инструменты для верификации решений. А это немалое время и немалые деньги. Тут уже Тсу решать.
|
|
|
|
|
Mar 28 2017, 17:09
|
Группа: Участник
Сообщений: 11
Регистрация: 27-03-17
Пользователь №: 96 129

|
Все же ассемблер я не потяну... Подскажите, пожалуйста, ссылочки по БПФ на си. Более разумно получится.
|
|
|
|
|
Mar 30 2017, 07:22
|

Практикующий маг
     
Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576

|
Вставлю свои 5 копеек. Конечно ЦОС на DSP это всё здОрово, но для FSK/MSK вполне можно обойтись из без этого. Взять хотя бы тот же CMX469 который выделяет MSK сигнал на фоне шумов без сложных алгоритмов, просто по переходам через ноль, и надо сказать выделяет очень неплохо. А когдато давно были еще АОНыгде весь алгоритм обрабатывался на процессоре типа Z80, правда там битовая (или символьная) скорость очень низкая -несколько символов в секунду, но и AVR куда мощнее процессоров 30летней давности. Основа CMX469 и аналогичных, как я понимаю, это цифровой генератор с ФАПЧ, который во время преамбулы настраивается на среднюю частоту между нулем и единицей и далее по сигналу с ФАПЧа (в режиме частотного дискриминатора) определяет что передается - ноль или единица. Если 1 символ кодировать несколькими периодами сигнала (СМХ работает по одному или половинке периода), то выделение будет еще надежнее ИМХО.
|
|
|
|
|
Mar 30 2017, 07:47
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Alexashka @ Mar 30 2017, 09:22)  Вставлю свои 5 копеек. Конечно ЦОС на DSP это всё здОрово, но для FSK/MSK вполне можно обойтись из без этого. Взять хотя бы тот же CMX469 который выделяет MSK сигнал на фоне шумов без сложных алгоритмов, просто по переходам через ноль, и надо сказать выделяет очень неплохо. "Просто по переходам через 0" - это на фоне даже сравнительно небольших шумов работать не будет. Хотя всё конечно зависит от.... При отсутствии какого-то намёка на ТЗ или хотя бы требований, гадать невозможно. Какая требуется символьная скорость? При каком минимальном SNR требуется устойчивый приём? Какова полоса частот в которой нужно работать? Какова АЧХ тракта передачи (ЦАП/АЦП+цепь_согласования+р/ст) в этой полосе (её линейность)? Какова требуемая скорость работы алгоритма? И т.п. Без этого всё это - гадание на кофейной гуще. Может и AVR справится. Всё зависит от требований. Может есть куча памяти, в которую можно принять поток сэмплов, и куча времени чтобы этот поток потом неспешно декодировать даже самыми сложными алгоритмами хоть на бейсике. Да и ТС никакую теорию изучать не хочет, хочет чужой говнокод прикостылить.... А значит - ничего путнего сделать не сможет.
|
|
|
|
|
Mar 31 2017, 18:53
|
Группа: Участник
Сообщений: 11
Регистрация: 27-03-17
Пользователь №: 96 129

|
Цитата(Alexashka @ Mar 31 2017, 09:42)  С/Ш=12 дБ и ниже до 8дБ -работает нормально. А не подскажите аналоги микросхемы?
|
|
|
|
|
Apr 1 2017, 20:34
|

Практикующий маг
     
Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576

|
Прямых аналогов нет (или я их не встречал), есть как более навороченные, так и узкозаточенные под конкретное применение, с пакетной обработкой и с конкретными протоколами. Например CMX969 с форматами RD-LAP и MDC, CMX909 с mobitex-ом (модуляции FSK и GMSK). Есть CMX7164/7143 -у этих возможностей еще больше, но они и сложнее в использовании. МодемыМой коллега делал функциональный аналог 469го на транзисторах -в симулякре, в духе импортозамещения, вытягивал сигнал из шумов даже когда сигнал визуально не было видно, были варианты для детектирования не только MSK сигнала по типу CMX469, но и MSK-3 и даже манчестерского кода. Основная проблема сколько помню была не столько выделить полезные биты информации, сколько необходимость осуществлять непрерывную битовую синхронизацию. К сожалению дальше симуляции дело не пошло
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|