Автоматическая передача данных через радиоканал

Схемы, идеи, практики узлов радиолюбительской техники
ru0aog
Сообщения: 48
Зарегистрирован: 25 ноя 2024, 13:52

Re: Автоматическая передача данных через радиоканал

Сообщение ru0aog »

Ну что же - надо попробовать!
Вот скетч на три частоты - 340, 425 и 510 Гц.
Частота сэмплирования - 2 кГц,
N=200 отсчётов.
Спектральное разрешение Fs/N = 2000/200 = 10 Гц
.
0004.rar
(104.09 КБ) 378 скачиваний
.
Уровни на выходе цифровых фильтров без сигнала:
.
Без сигнала.png
.
Размах сигнала 1,25 В р-р, значение минимального/максимального отсчётов 2/1016.
Подаём 337 Гц, максимальный отклик отказался на этой частоте
ширина полосы по -3 дБ (уровень 0,707): 9 Гц = 332...341 Гц
.
337 Гц.png
.
сигнал 428 Гц
ширина полосы по -3 дБ (уровень 0,707): 9 Гц = 424...433 Гц
.
428 Гц.png
.
сигнал 510 Гц
ширина полосы по -3 дБ (уровень 0,707): 9 Гц = 506...515 Гц
.
510 Гц.png
.
Построим графики отклика по реальным измерениям.
Для частоты 337 Гц
.
График отклика фильтра на 337 Гц.png
.
Так как снимать точки приходится вручную, для остальных частот не буду этого делать. Там то же самое.
Последний раз редактировалось ru0aog 27 май 2025, 13:56, всего редактировалось 1 раз.
ru0aog
Сообщения: 48
Зарегистрирован: 25 ноя 2024, 13:52

Re: Автоматическая передача данных через радиоканал

Сообщение ru0aog »

Побочные выбросы меня не удовлетворяют.
Применим оконную функцию Хэмминга
.
0005.rar
(86.03 КБ) 529 скачиваний
.
Строим график
ширина полосы по -3 дБ (уровень 0,707): 13 Гц = 330...343 Гц
.
График отклика фильтра на 337 Гц HAMMING.png
.
Вот такой график меня устраивает гораздо больше!
ru0aog
Сообщения: 48
Зарегистрирован: 25 ноя 2024, 13:52

Re: Автоматическая передача данных через радиоканал

Сообщение ru0aog »

Но по программе выше чтение занимает 100 мс, что много.
Мне нужно быстрее.
Пусть будет:
Fs = 9 кГц,
Fq = 1 кГц,
N = 198.
Тогда длительность чтения составит 22 мс при приемлемом спектральном разрешении 45 Гц.
При этом я попробую выбрать минимумы значений между Хэммингом и отсутствием оконной функции - таким образом я надеюсь повысить крутизну скатов, но получу два вторичных всплеска по краям из-за более плавного спада характеристики Хэмминга.
.
0006.rar
(154.81 КБ) 593 скачивания
Отсчёты для разных частот.rar
(4.88 КБ) 353 скачивания
.
Практический график цифровых фильтров
ширина полосы по -3 дБ (уровень 0,707): 60 Гц = 965...1025 Гц
.
График отклика фильтра 0+HAMMING.png
.
Средний (красный) фильтр нужен мне для определения мощности шума.
Разделение первого и последнего каналов в отсутствие шумов достигают 40 дБ
ru0aog
Сообщения: 48
Зарегистрирован: 25 ноя 2024, 13:52

Re: Автоматическая передача данных через радиоканал

Сообщение ru0aog »

Вот смотрю я на графики функций и хочется мне совместить высокий пик без оконной функции и отсутствие боковых выбросов функции Хэмминга
.
Spectre01.jpg
.
Красные области можно из Хэмминга выкусить (остаются только два выброса), если выбирать минимальные значения при сравнении результатов двух функций. В предыдущем сообщении именно так и сделано :)
Вот как бы ещё добавить жёлтую область?

Пока вижу только одну возможность:
1. Поднять уровень сигнала до вхождение в ограничение. Тогда результат обработки алгоритмом Гёрцеля будет близок к теоретическому максимуму.
2. Если результат обработки без оконной функции близок к теоретическому максимуму (более 1/3 от теор.максимума), то принять результат без оконной функции.
ru0aog
Сообщения: 48
Зарегистрирован: 25 ноя 2024, 13:52

Re: Автоматическая передача данных через радиоканал

Сообщение ru0aog »

Как бы там ни было, стоит пока отложить эту проблему в сторону и
исследовать отклик алгоритма на разрядность АЦП.

Например, при тех же условиях
Fs = 9 кГц,
Fq = 1 кГц,
N = 198
проанализировать спектрограмму при различной глубине битности отсчётов АЦП.

Начнём с 2 бит :)
Осциллограмма включает 3 значения отсчётов сигнала
.
oscillo 2 бит.jpg
.
На спектре мы видим, что ширина характеристики сохранилась, соотношения амплитуд пиков сохранились,
но снизилось абсолютное значение отсчётов на графике
.
Spectre 2 бит.jpg
.
Сравним с глубиной отсчётов в 16 бит
.
oscillo 16 бит.jpg
.
Spectre 16 бит.jpg
.
Для одного тона принципиальной разницы нет. При снижении разрядности немного кривятся побочные выбросы, но некритично.
ru0aog
Сообщения: 48
Зарегистрирован: 25 ноя 2024, 13:52

Re: Автоматическая передача данных через радиоканал

Сообщение ru0aog »

2 бита это, конечно, совсем грустно.
Пусть будет 4 бита.

Проверим, что будет если:
- два постоянных мешающих тона: 900 Гц, 1100 Гц,
- скользящий тон 800...1200 Гц (на осциллограмме он равен 1000 Гц),
- все три тона одного уровня, в сумме составляют около максимума для 4-битного АЦП (см. осциллограмму),
- частота настройки фильтра Fq = 1000 Гц.
.
oscillo 4 бит 3 тона.jpg
.
спектрограмма вполне разбираемая,
только наблюдается подъём подошвы, особенно для графика без обработки оконной функцией
.
Spectre 4 бит 3 тона.jpg
.

А что будет, если мешающие сигналы подойдут ближе к частоте настройки?
Например, на величину спектральной плотности?
то же самое, но
- два постоянных мешающих тона: 950 Гц, 1050 Гц
.
oscillo 4 бит 3 тона 1 сп.лин.jpg
.
ай-ай!
Оконная функция Хэмминга развалилась!
.
Spectre 4 бит 3 тона 1 сп.лин.jpg
.
впрочем, как и все остальные функции
.
Spectre 4 бит 3 тона 1 сп.лин вар.jpg
ru0aog
Сообщения: 48
Зарегистрирован: 25 ноя 2024, 13:52

Re: Автоматическая передача данных через радиоканал

Сообщение ru0aog »

Поможет ли увеличение разрядности собрать график в кучку при недостатке спектрального разрешения?
Смотрим: то же, но 16 бит
.
oscillo 16 бит 3 тона 1 сп.лин.jpg
.
Нет, не помогло.
.
Spectre 16 бит 3 тона 1 сп.лин.jpg
.
Так, ясно:
- если есть мешающие сигналы, отстоящие от частоты настройки на шаг спектрального разрешения или около того, то оконные функции рассыпаются. При этом подошва графика с функцией Хэмминга выше подошвы графика без функций.
- первой "собирается" функция WELCH (на графике частоты 940, 1000 и 1060 Гц при спектральном разрешении 45 Гц)
.
Spectre 16 бит 3 тона 1 сп.лин вар.jpg
ru0aog
Сообщения: 48
Зарегистрирован: 25 ноя 2024, 13:52

Re: Автоматическая передача данных через радиоканал

Сообщение ru0aog »

Работа алгоритма при низком разрешении АЦП наводит на мысль, что определяющей является частота сигнала, а не его амплитуда.

Пусть будет:
Fs = 6 кГц
Fq = 1 кГц
N = 120
ADC = 10 бит

Один тон, 100 % от шкалы АЦП
.
oscillo 10 бит 1 тон 1.jpg
Spectre 10 бит 1 тон 1.jpg
.
покажем только оконные функции
.
Spectre 10 бит 1 тон 1 HAMMING.jpg
.
Один тон, перегрузка х1,5 - начинаем входить в меандр
Видим появление спуров. Ни изменение разрядности, ни даже изменение спектрального разрешения не меняет картину
.
oscillo 10 бит 1 тон 1,5 HAMMING.jpg
Spectre 10 бит 1 тон 1,5 HAMMING.jpg
.
Интересно, что перегрузка выше х10 не приводит к дальнейшему росту спуров
Тут х1000, чистый меандр
.
Spectre 10 бит 1 тон 1000 HAMMING.jpg
Последний раз редактировалось ru0aog 28 май 2025, 11:05, всего редактировалось 12 раз.
ru0aog
Сообщения: 48
Зарегистрирован: 25 ноя 2024, 13:52

Re: Автоматическая передача данных через радиоканал

Сообщение ru0aog »

Посмотрим, как фильтр различает несколько частот в условиях перегрузки.
Уровни трёх частот одинаковы, общая перегрузка х3.
Получается примерно как с перегрузкой - растут спуры, портится характеристика
.
oscillo 10 бит 3 тона 1+1+1 HAMMING.jpg
Spectre 10 бит 3 тона 1+1+1 HAMMING.jpg
.
Уровни трёх частот х1+х3+х3, общая перегрузка х7.
Характеристика разваливается. Дальнейшая перегрузка недопустима
.
oscillo 10 бит 3 тона 1+3+3 HAMMING.jpg
Spectre 10 бит 3 тона 1+3+3 HAMMING.jpg
Вложения
Гёрцель_06a.rar
(135.4 КБ) 380 скачиваний
Последний раз редактировалось ru0aog 28 май 2025, 11:20, всего редактировалось 5 раз.
ru0aog
Сообщения: 48
Зарегистрирован: 25 ноя 2024, 13:52

Re: Автоматическая передача данных через радиоканал

Сообщение ru0aog »

Каков вывод?
0. Чем дольше слушаем сигнал, тем больше накапливается о нём информации :)
При длительности чтения 20 мс спектральное разрешение составит 50 Гц при любой частоте сэмплирования.

1. Можно поднять частоту сэмплирования АТМега 328р с потерей разрядности, только это не поможет - роль играет спектральное разрешение, поднимая частоту сэмплирования нужно будет увеличить количество отсчётов, а это и так излишне нагружает контроллер.
2. Можно немного ввести сигнал в ограничение - и из шумов вытащить полезный сигнал.
Например, так.
Диоды физически ограничат напряжение после резистора на уровне +/-0,7 В, что чуть больше, чем разрешение АЦП.
.
0003.JPG
.
3. Возможно использовать оконную функцию HAMMING.
4. Нужны испытания на шуме эфира :)

делитель - время - частота
2 - 3.04 мкс - 329 000 кГц
4 - 4.72 мкс - 210 000 кГц
8 - 8.04 мкс - 125 000 кГц
16 - 15.12 мкс - 66 100 кГц
32 - 28.04 мкс - 35 600 кГц
64 - 56.04 мкс - 17 800 кГц
128 - 112 мкс - 8 900 Гц
Ответить