CW маяк. пейджер

Аватара пользователя
ru0aog
Сообщения: 1033
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 134 раза
Поблагодарили: 147 раз

CW маяк. пейджер

Сообщение ru0aog » 03 ноя 2024, 19:48

В стареньком ноутбуке 80-ых годов тоже был встроенный модем на 300-1200 бод.
И там вот такой фильтр предусматривался
modem.png
.
Тут просто полосовой фильтр с переключающейся частотой
modem_A.png
modem.rar
(670.72 КБ) 27 скачиваний

Аватара пользователя
ru0aog
Сообщения: 1033
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 134 раза
Поблагодарили: 147 раз

CW маяк. пейджер

Сообщение ru0aog » 04 ноя 2024, 18:50

Сделал всё на одной плате, чтобы не ворошить макетные сопли.
Буду играться с настройками.
.
FLTR_02_SCH.JPG
FLTR_02_PCB.JPG
IMG_20241104_221449.jpg
.
FLTR_02.rar
(1.33 МБ) 23 скачивания


Аватара пользователя
ru0aog
Сообщения: 1033
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 134 раза
Поблагодарили: 147 раз

CW маяк. пейджер

Сообщение ru0aog » 06 ноя 2024, 12:40

Всё же зря я исключил диодный ограничитель перед компаратором.
Надо бы сделать так:
FLTR_03_SCH.JPG
.
При положении подстроечника компаратора в положении - посередине (одинаково ограничивает сигнал сверху и снизу), компаратор работает как усилитель-ограничитель с максимальным коэффициентом усиления. При этом самые малые сигналы не отсекаются, а усиливаются.
Но можно немного сместить точку компаратора и отсечь сигналы малой громкости, оставив средние и сильные по силе.
В итоге сигнал теряет информацию об амплитуде, остаётся только частота. Думаю, её наличие уже можно вычислить программно.

Аватара пользователя
ru0aog
Сообщения: 1033
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 134 раза
Поблагодарили: 147 раз

CW маяк. пейджер

Сообщение ru0aog » 08 ноя 2024, 15:54

Переходим к программной части.
Сейчас АЦП читает последовательность длиной в 84 сэмпла с частотой дискретизации 7140 SPS (сэмпла в секунду).
На получение одного отсчёта нужно 1 000 000 мкс / 7140 = 140,056 мкс.
84 сэмпла считаются за 84*140 = 11 764,7 мкс ~ 11...12 мс. С обработкой данных пусть 13 мс.

Допустим, мы увеличим период чтения круглым счётом до 20 мс.
Тогда принимаемый сигнал квантуется следующим образом:
(внизу исходный сигнал в шумах, вверху - прошедший через аналоговые фильтры)
01.JPG
.
Алгоритм Гёрцеля позволяет определить мощность заранее известной частотной компоненты в пределах кванта.
У нас это 1020 Гц.

В конце каждого кванта мы получаем его мощность (для частоты 1020 Гц).
Можно ввести некое пороговое значение. Выше - 1, ниже - 0

Аватара пользователя
R9OFG
Сообщения: 1256
Зарегистрирован: 03 ноя 2019, 22:30
Позывной: R9OFG, ex R0AEK
Город: Новосибирск
Имя: Саша
Благодарил (а): 194 раза
Поблагодарили: 299 раз
Контактная информация:

CW маяк. пейджер

Сообщение R9OFG » 08 ноя 2024, 16:04

Станислав, в осу можно добавить скрипт для правильного генерирования посылки в CW, с правильной огибающей

Аватара пользователя
ru0aog
Сообщения: 1033
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 134 раза
Поблагодарили: 147 раз

CW маяк. пейджер

Сообщение ru0aog » 08 ноя 2024, 16:11

Имхо, из шумов алгоритм вытаскивает получше фильтров:
03.jpg
.
естественно, что когда шумов поменьше, то тоже работает:
02.jpg
.
Кстати, на осциллограммах видна задержка в 12 мс - пока не дочиталась последовательность, результата нет.
.
decoder27.rar
(1.25 КБ) 19 скачиваний
Последний раз редактировалось ru0aog 08 ноя 2024, 16:26, всего редактировалось 1 раз.

Аватара пользователя
ru0aog
Сообщения: 1033
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 134 раза
Поблагодарили: 147 раз

CW маяк. пейджер

Сообщение ru0aog » 08 ноя 2024, 16:16

Александр, наверное, можно.
Но задача стоит не сгенерировать Осой красивую CW-посылку, а принять посылку из шумов. Сгенерированная из меандра - для опытов даже лучше :)
Естественно, потом подправлю генератор.
Пока просто проигрываю звуковой карточкой записанный Web-SDR-ом сигнал.

Аватара пользователя
R9OFG
Сообщения: 1256
Зарегистрирован: 03 ноя 2019, 22:30
Позывной: R9OFG, ex R0AEK
Город: Новосибирск
Имя: Саша
Благодарил (а): 194 раза
Поблагодарили: 299 раз
Контактная информация:

CW маяк. пейджер

Сообщение R9OFG » 08 ноя 2024, 16:22

ru0aog, я с намеком, что можно и неправильный ;) , хотя да, с вебсдра реальный получается, хоть и в записи.

Аватара пользователя
ru0aog
Сообщения: 1033
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 134 раза
Поблагодарили: 147 раз

CW маяк. пейджер

Сообщение ru0aog » 09 ноя 2024, 05:30

На неустойчивых сигналах могут возникать ошибки.
- иголки
06.jpg
.
- провалы
07.jpg
.
- размытые фронты
10.jpg
.
Это нужно как-то скорректировать.
Например, иголку можно починить, задержав сигнал ещё на какое-то время, обработать и понять, что там иголки быть не должно.

Допустим, будем запоминать состояние последних трёх квантов. И если они равны 010 или 101, то чинить средний квант.

Аватара пользователя
R9OFG
Сообщения: 1256
Зарегистрирован: 03 ноя 2019, 22:30
Позывной: R9OFG, ex R0AEK
Город: Новосибирск
Имя: Саша
Благодарил (а): 194 раза
Поблагодарили: 299 раз
Контактная информация:

CW маяк. пейджер

Сообщение R9OFG » 09 ноя 2024, 06:45

ru0aog писал(а):
09 ноя 2024, 05:30
Это нужно как-то скорректировать.
Например, иголку можно починить, задержав сигнал ещё на какое-то время, обработать и понять, что там иголки быть не должно.

Допустим, будем запоминать состояние последних трёх квантов. И если они равны 010 или 101, то чинить средний квант.
А если продумать алгоритм примерно так, несвязный набор букв, не то, выстраивается слово значит идем дальше.

Ответить

Вернуться в «Микроконтроллеры и программирование»