-
05.05.2006, 14:51 #1
- Регистрация
- 17.12.2005
- Адрес
- Москва
- Возраст
- 79
- Сообщений
- 406
- Поблагодарили
- 59
- Поблагодарил
- 5
Приём CW при отношении с/ш < 1 (0 dB)
Предлагается на тестирование програмка для приёма кода Морзе через звуковую карту при отношении сигнал/шум меньше 1 основанная на накоплении полезного сигнала за некоторый промежуток времени до уровня с некоторой вероятностью (шум предполагается случайным процессом) превышающего шум. Естественно, полоса пропускания очень узка (1000+-10 Гц), что требует достаточной стабильности и соответствующего шага перестройки и, так же естественно, имеется ограничение по скорости принимаемых сигналов. Для обработки звука используется чуть модифицированная библиотека bass.dll, которая и прилагается (если компьютер не находит её в папке с программой, переместите её в системную папку Windows).
Подключать приёмник к компьютеру желательно через разделительный НЧ трансформатор (и прочие вещи для уменьшения помех - заземление, сетевые фильтры и т. д. - не забываем). При начале работы установите источник звука (микрофонный или линейный вход), установите время накопления сигнала (максимальные значения скорости приёма в зн/мин и отношение сигнал/шум высвечиваются) и язык CW. "Пуск" и программа начинает работу. Три индикатора показывают работу: средний уровень НЧ на входе, средний уровень в отслеживаемой полосе - 1000+-10 Гц и индикатор максимального уровня - особое внимание: он не должен сверкать красным, нарушится случайный характер шума! Случайные и принимаемые точки-тире высвечиваются на синей полосе вверху, декодированные сигналы - на белой полосе, сформированные строки перемещаются в поле текстового редактора, где их можно редактировать и сохранить в текстовом файле.
Для тестирования можно установить связь и попросить коллегу постепенно уменьшать мощность сигнала одновременно контролируя приём на слух и программой.
Жду Ваших предложений, замечаний и критики. При положительных итогах тестирования буду делать 15-ти канальный вариант (скриншот прилагается). Так же прилагается скриншот исходника программы.Последний раз редактировалось Леонид3; 05.05.2006 в 19:37.
-
06.05.2006, 09:32 #2
- Регистрация
- 05.04.2002
- Адрес
- Абакан, Хакасия
- Возраст
- 68
- Сообщений
- 24
- Поблагодарили
- 1
- Поблагодарил
- 3
Скачал - попробовал..
Что-то у меня ничего не декодирует?!
Не совсем понятен выбор средней частоты 1000+-10 гц, т.к. в основном народ работает на прием на частотах 400-900 гц.
Имитировать прием (взамен реального приемника) в данном случае удобно программой MorzeRunner - она то и выдает случайные морзе последовательности.
Как насчет средней частоты в 700 ГЦ??
-
06.05.2006, 10:38 #3
- Регистрация
- 17.12.2005
- Адрес
- Москва
- Возраст
- 79
- Сообщений
- 406
- Поблагодарили
- 59
- Поблагодарил
- 5
UAOWL, выбрать можно любую частоту, но чем ниже частота, тем больше времени занимает накопление по N шт периодов, т. е. ниже максимальная скорость приёма CW или больше минимальное соотношение сигнал/шум, в этом смысле более подходит 11 кГц! (Есть продвинутые звуковые карты с частотой дискретизации до 382 кГц - ещё бы чуть и можно работать на промежуточной!).
Попробуйте настроится на уверенно принимаемые сигналы, проверьте работоспособность программки.
-
06.05.2006, 11:15 #4
- Регистрация
- 19.04.2004
- Адрес
- Николаев, Украина
- Возраст
- 70
- Сообщений
- 51
- Поблагодарили
- 3
- Поблагодарил
- 15
Леонид,
Какие минимальные требования к компу, Р133 под W98 годится?
Олег UX8ZA
-
06.05.2006, 11:23 #5
- Регистрация
- 28.03.2004
- Адрес
- пос. Правдинский Московсой области
- Возраст
- 50
- Сообщений
- 48
- Поблагодарили
- 0
- Поблагодарил
- 0
Сообщение от Леонид3Сергей (RU3DKW)
-
06.05.2006, 11:59 #6
- Регистрация
- 05.04.2004
- Адрес
- Николаев
- Возраст
- 70
- Сообщений
- 443
- Поблагодарили
- 78
- Поблагодарил
- 122
Леонид3, а SHA файл не подбросите, чтоб в алгоритм врубиться?
ХЭМ/UR5ZQV
-
06.05.2006, 13:17 #7
- Регистрация
- 17.12.2005
- Адрес
- Москва
- Возраст
- 79
- Сообщений
- 406
- Поблагодарили
- 59
- Поблагодарил
- 5
amsatuser, у меня P-IY 2400 мГц XP, нагружает процессор на 4-5%, 15-ти канальный на 20% (обработка звука с частотой дискретизации 44100 Гц!), на других не испытывал, (если бы я был Програмистом, то смог бы сделать программу обращения к звуковой карте в машинных кодах, и 133 мГц P-III вполне подошли).
Pilgrim, ХАМский designe, логика (алгоритм) следующая: за время накопления, равное целому числу N периодов анализируемой частоты, вычисляются 4 суммы по N мгновенных значений через 0, 90, 180, 270 градусов, шум, как случайная величина стремится к "0", а регулярный сигнал, если он есть, накапливается, накопленный сигнал сравнивается со средним значением величины шума и делается вывод о наличии регулярного сигнала. Численные значение сравнения выбраны по достоверной вероятности 0.99.Последний раз редактировалось Леонид3; 06.05.2006 в 22:15.
-
06.05.2006, 13:34 #8
- Регистрация
- 17.12.2005
- Адрес
- Москва
- Возраст
- 79
- Сообщений
- 406
- Поблагодарили
- 59
- Поблагодарил
- 5
Добавил *.SHA, он в процессе работы, есть лишние точки.
-
10.05.2006, 08:44 #9
- Регистрация
- 05.04.2002
- Адрес
- Абакан, Хакасия
- Возраст
- 68
- Сообщений
- 24
- Поблагодарили
- 1
- Поблагодарил
- 3
Сообщение от Леонид3
-
10.05.2006, 09:48 #10
- Регистрация
- 17.12.2005
- Адрес
- Москва
- Возраст
- 79
- Сообщений
- 406
- Поблагодарили
- 59
- Поблагодарил
- 5
UA0WL, чуть переделал с возможностью выбора обрабатываемой частоты, берите!
-
10.05.2006, 10:45 #11
- Регистрация
- 05.04.2004
- Адрес
- Николаев
- Возраст
- 70
- Сообщений
- 443
- Поблагодарили
- 78
- Поблагодарил
- 122
Леонид3, Какая версия ХИАСма использовалась? Что то под b154 у меня не идет (хотя exeшник запускается).
UA0WL, по видимому в участке кода элемента InLineCode:
" for i:=0 to len-1 do
begin
St.Read(Vhod,2);
AbsVhod:=abs(Vhod);
_Signal[4]:=_Signal[4]+AbsVhod;
_Shum:=_Shum+AbsVhod;
if _Max<absVhod then _Max:=absVhod;
j:=j+1;
if j>=44 then j:=0;//j>=88 для частоты 500гц
if j=0 then _Signal[0]:=_Signal[0]+Vhod;
if j=11 then _Signal[1]:=_Signal[1]+Vhod;//J=22 для 500гц
if j=22 then _Signal[0]:=_Signal[0]-Vhod;//j=44 для 500Гц
if j=33 then//j=66 для 500 гц
begin
_Signal[1]:=_Signal[1]-Vhod;
_Signal[2]:=_Signal[2]+_Signal[0];
_Signal[3]:=_Signal[3]+_Signal[1];
k:=k+1;"
пропорционально требуемому уменьшению частоты увеличить величины при переменной j (или подождать пока Леонид не введет эту опцию, у него есть неиспользуемая точка Freq)
-
10.05.2006, 10:59 #12
- Регистрация
- 05.04.2004
- Адрес
- Николаев
- Возраст
- 70
- Сообщений
- 443
- Поблагодарили
- 78
- Поблагодарил
- 122
Сорри, Леонид опередил (hi).
-
10.05.2006, 11:05 #13
- Регистрация
- 05.04.2004
- Адрес
- Николаев
- Возраст
- 70
- Сообщений
- 443
- Поблагодарили
- 78
- Поблагодарил
- 122
Леонид, понял. У Вас последняя версия. Поставил предыдущий BASS - все пошло.
-
10.05.2006, 13:12 #14
- Регистрация
- 17.12.2005
- Адрес
- Москва
- Возраст
- 79
- Сообщений
- 406
- Поблагодарили
- 59
- Поблагодарил
- 5
ХАМский designe, насчёт bass.dll во вступительном слове
Мне хочется услышать критику, замечания и предложения, т. к. не знаю, что делать дальше - продолжить-ли работу (есть возможности для улучшения) или выбросить её, как не находящую практического применения
-
11.05.2006, 04:21 #15
- Регистрация
- 05.04.2002
- Адрес
- Абакан, Хакасия
- Возраст
- 68
- Сообщений
- 24
- Поблагодарили
- 1
- Поблагодарил
- 3
Сообщение от Леонид3
К, сожалению, реалии жизни таковы, что корреспонденты отвечают в некоторой полосе 200-300 гц от центральной частоты вызова - причем эта частота заранее неизвестна - вот здесь первая задача: определить ее и захватить. Либо <автоматом> , либо вручную при помощи спектра или <водопада>. На популярной программе MorzeRunner, где обстановка 100% отображает реальный эфир декодирования сигналов корреспондентов почти не происходит - нет захвата и удержания частоты корреспондента.
В последней версии есть явная ошибка - при переборе выпадающего списка <частота приема> наилучший прием у меня получался при значении 848 гц...(1002 гц передача..)
На моем Win98 при закрытии проги крестиком она виснет, повторная загрузка возможна только при перезапуске компа
А в общем, идея интересная - и имеет право на жизнь, желательно с открытыми кодами - может кто и подкинет стоящую идейку...
Успехов в дальнейшем проектировании!Последний раз редактировалось UA0WL; 11.05.2006 в 09:15.
|
Социальные закладки