На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 48,
участников - 5 [ muha131, crimea, John79, Iceman, autosat]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Радиосигналы —› Компенсация погрешности звуковой карты ПК 
Широкополосные связные радиоприемники в нашем магазине


Icom IC-R6
руб.

Yaesu VR-120D
руб.

Icom IC-R75
руб.

Yaesu VR-160
руб.

Icom IC-R20
руб.
Автор Сообщение
Vit
Участник
Offline1.0
с сен 2007
Сообщений: 10

Дата: 12 Сен 2007 14:46:35 #  

Задача (в усечённом виде): Идентификация на ЛЮБОМ ПК некой частотной сетки. Для простоты, пусть - двух частот 1000Гц и 2000Гц при частоте дискретизации 8000Гц, используя FFT с блоком 1024smpl.

Проблема: Частота дискретизации звуковой карты произвольного ПК может иметь погрешность. Реально попался ПК с погрешностью +100Гц. Таким образом, при частоте дискретизации в 8000Гц имеем соответствующие индексы частот:(шаг~7.81) 128~1000Гц и 256~2000Гц. Но при 8100Гц (шаг~7.91) - 126~996.68, 127~1004.59, 252~1993.36, 253~2001.27. Таким образом, рушится искомая частотная сетка.

Вопрос: Многие программы требуют каллибровки звуковой карты перед использованием. Как использовать заранее известную погрешность звуковой карты для правильной идентификации частот???

P.S. В обработке сигналов - новичок, так что не судите строго и по возможности помогите!
Dominic
Участник
Offline3.0
с ноя 2005
Сообщений: 1423

Дата: 12 Сен 2007 15:45:16 #  

Первый раз слышу такие чудеса. Хотя писал проги с DFT для обработки оцифрованных сигналов, испытанные на сотнях компов.
Частота дискретизации должна соответствовать некому стандартному ряду, в противном случае звук, оцифрованный на данной карте, не будет правильно воспроизведён на другой. Может, ваша карта просто бракованная? А может, частота дискретизации выставляется софтом (не знаю, как там у ультрасовременных карт это делается) - тогда проблема в компе.
Тем не менее погрешность оцифровки около 1% не должна никак влиять на алгоритм обработки сигнала, учитывайте допуски программно. У меня обработка сигнала, рассчитанная на 8000 кГц, прекрасно справлялась с оцифровкой 8192 кГц :)
Реклама
Google
Vit
Участник
Offline1.0
с сен 2007
Сообщений: 10

Дата: 12 Сен 2007 16:12:30 #  

Мимо меня прошло два NoteBook (Toshiba) с погрешностью +100 именно на 8000Гц. На остальных частотах почти точно. Сам сначала не верил. Заметил, что если подсунуть не родные драйвера при установке - также случается данная проблема.

Вопрос в том и соостоит : как учитывать, если частот несколько, и шаг достаточно короткий (например, MFSK16)? Как я понял из радиолюбительских сайтов : для программ один раз считается погрешность звуковой карты, в программе этот коэффициент выставляется и в путь... (STREAM)
Dominic
Участник
Offline3.0
с ноя 2005
Сообщений: 1423

Дата: 12 Сен 2007 17:22:44 #  

Могу представить себе калибровку погрешности только в виде оцифровки эталонного аналогового сигнала. Что довольно труднореализуемо практически (особенно если собираетесь распространять свою программу среди сравнительно широкого круга пользователей). Проще сделать алгоритм более толерантным! Тут может возникнуть проблема, только если определяемые частоты отстоят друг от друга на шаг, сравнимый с величиной погрешности. Но такие сигналы вряд ли применимы на стандартных каналах связи.
Vit
Участник
Offline1.0
с сен 2007
Сообщений: 10

Дата: 12 Сен 2007 17:32:56 #  

В STREAMе же это как-то учитывается, и шаг между частотами 8-16Гц.
Может можно до FFT преобразований проделать какие-то манипуляции со спектром? Ведь фактически требуется слегка сжатьрастянуть (в зависимости от погрешности) спектр.
shadows_x
Участник
Offline3.2
с фев 2007
ХМАО-Югра
Сообщений: 891

Дата: 12 Сен 2007 17:58:27 #  

Мимо меня прошло два NoteBook (Toshiba) с погрешностью +100 именно на 8000Гц. На остальных частотах почти точно. Сам сначала не верил. Заметил, что если подсунуть не родные драйвера при установке - также случается данная проблема.

Такая проблема действительно есть особенно это проявляется на АС97 на HDA это побороли.
Карту можно калибрануть и не используя эталон WWV
но точность будет значительно меньше
Утилита из пакета микс http://www.radioscanner.ru/uploader/2007/checksr.zip
Vit
Участник
Offline1.0
с сен 2007
Сообщений: 10

Дата: 13 Сен 2007 11:13:56 #  

"Карту можно калибрануть" - правильно ли я понимаю: это означает всего лишь узнать её погрешность? Или за этими словами стоит нечто большее?

Checsr.exe - это одна из программ, позволяющая (с некоторой достоверностью, большую достоверность дают программы работающие с "радиомаяками") определить погрешность. А что с этой погрешностью делать дальше, вот в чём вопрос! Ну знаю я, что карта вместо 8000 выдаёт 8100, как это учесть ??? Смешно же делать передискретизацию!
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 13 Сен 2007 11:27:40 #  

Vit Смешно же делать передискретизацию! Гы, честное слово если вы ответите на вопросы, то будем смеятся вместе отдуши. ;)

Как вы получили сетку частот в первом посте для дискретизации в 8000 гц и в 8100? Формулу приведите пожалуйста. ;)
Vit
Участник
Offline1.0
с сен 2007
Сообщений: 10

Дата: 13 Сен 2007 11:37:58 #  

FFT даёт индексы частот спектра до половины частоты дискретизации с шагом = частота дискретизации делённая на блок отсчётов : 8000/1024=7,8125. Соответственно, зная, что реальная частота составляет 8100 получаем 8000/1024=7,91015625 . Что не так?
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 13 Сен 2007 11:54:18 #  

Vit ;) Да всё так. Хочу что бы вы поняли то о чём будем говорить, а не просто знали что делать надо так то и так то. Теперь смотрите, как только отсчеты записаны в память, время роли не играет! Если мы запишем 1024 отсчёта и скажем что частота дискретизации была 100 герц, FFT не сойдёт с ума, оно прекрасно вычислит всё что умеет, усекаете? По большому барабану какая там реально частота вообще. ;)
Если вы делаете фильтр на 2 килогерца для частоты дискретизации на 8, он будет так же работать и на частоте в 100 герц или 50 килогерц, вот только частота среза будет у него всегда равная Fd/4! Вам нужно получить абсолютные значения частот, вы знаете что карта врет на 100 герц, и карта говорит что дает 8000 дискретизации, ну скажите вы FFT что это не так а 7900 дискретизации, и получите свои абсолютные 1000 и 2000 герц. ;)
Vit
Участник
Offline1.0
с сен 2007
Сообщений: 10

Дата: 13 Сен 2007 14:50:20 #  

Как Вы правильно отметили, само по себе вычисление FFT от частоты дискретизации не зависит. Для FFT (как я понимаю) определяющим является массив отсчетов и величина блока. Поэтому, не понимаю, что значит "ну скажите вы FFT...7900". Не могли бы пояснить на пальцах для не обладающих знаниями.

Программа которую надо довести до ума использует старую Intel-овскую библиотеку SPL. Таким образом, заполняем соответствующую Windows структуру (один из параметров частота дискретизации) и стандартными API функциями считываем поток отсчётов со звуковой карты, который по мере необходимости отправляем соответствующей функции Intel (параметры: массив отсчётов и размер блока). На выходе имеем частоты в комплексом виде. Далее анализ...... Задача: определить наличие частоты в данный момент времени. К сожалению при погрешности карты (126~996.68, 127~1004.59) я не могу сказать присутствует частота 1000 Гц или нет.
Igor 2
Участник
Offline2.0
с авг 2006
analogtrx.com
Сообщений: 2697

Дата: 13 Сен 2007 15:03:59 · Поправил: Igor 2 (13 Сен 2007 20:06:03) #  

Vit
Наибольшее отклонение частоты из проверенных мною сейчас 8 компьютеров на частоте 16 кГц составляет всего- навсего 0.1 Гц. Тон генерился Adobe Audition с частотой дискретизации 48 кГц. Полная стыковка с логикой и здравым смыслом- даже самый поганый кварц шестой знак обязан держать. Как на 8 кГц можно получить погрешность 100! Гц ума не приложу, и если это действительно так, то в качестве измерительного прибора комп с таким кварцем использовать просто нельзя. Это просто уже даже и не кварц в классическом понимании, если он уже ушёл во 2 знаке, то где гарантия, что его деградация остановится? У LC контура стабильность выше.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 13 Сен 2007 17:17:41 #  

Vit Не, это только начало, думал вы сразу заметите, что я не прав, насчёт 7900, надо ставить во все формулы реальную частоту карты, для реальной картины, что и делают, по крайней мере с времеными интервалами проблемы решаются именно так. Но вопрос не в этом, как уже установили, FFT не важно какая имено частота дискретизации, зато очень важны внутренние соотношения, частота Fd/(1024/128) и частота Fd/(1024/256) всегда будут занимать эти позиции, для 8000 герц это 1000 и 2000 герц. Неточность карты это нарушает, смотрите, карта сигнал испортила, нарушено соотношение 1/8 и 1/4 между сигналами, реальная частота дискрета 8100, есть только один путь вернуть всё на место, это восстановить соотношения. Собствено это самое смешное в этой истории, only передискретизация. ;) Можно конечно было сказать это сразу, типа передискретизация и баста, но неизбежны вопросы, а почему, а как же весь софт и всё такое. В том то и дело, что подобные задачи, вставить частоты точно на места FFT позиций по другому не решаются, а вот решают ли их всегда или выкручиваются какими либо приближениями или допущениями вопрос другого сорта. Не всегда это нужно так строго. А если сюда добавить ещё и сдвиг сигнала, или к примеру сигнал формируется на частоте дискрета 8400 герц, а об этом не известно заранее, то вот кино так кино выходит. А то что карты разные и иногда уходят далеко, это известно, было тут на форуме про это.
Vit
Участник
Offline1.0
с сен 2007
Сообщений: 10

Дата: 13 Сен 2007 20:01:54 #  

"only передискретизация" - Вы меня чертовски огорчили. Признаться, я надеялся, что есть какой-либо другой метод. (Почему-то даже и сейчас уверен, что люди выкручиваются без данной ресурсозатратной процедуры. Может уверенность вытекает из недостатка знаний, хотя за последнее время достаточно много прочитал по теме.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 13 Сен 2007 21:39:38 #  

Vit Не, ну это вы же так хотите, что бы линия занимала точно отведенное ей место, зависит от задачи наскока оно и в правду нужно, чем плохо определить наличие частоты с точностью в два герца? Вам же нужно просто есть она или нет эта задача много проще чем демодулировать ofdm где дейсительно нужно попасть в точку.
Vit
Участник
Offline1.0
с сен 2007
Сообщений: 10

Дата: 14 Сен 2007 12:31:19 #  

"...наличие частоты с точностью в два герца" - меня бы вполне устроило.

Однако для этого, как я понимаю, необходимо повысить разрешение по частоте или увеличить FFT блок. Возникает вопрос, если реальная информация занимает 1024 Smpl, то как повлияет на результат FFT преобразование с наполовину пустым 2048 блоком или с на четверть заполненным 4096 блоком? Помимо понижения амплитуды сигнала это как-то ещё влияет на сами частоты?

Второй вопрос. Исходя из предположения, что в данный момент времени в спектре присутствует только одна из частот заданной сетки (не учитывая помехи), достаточно ли для идентификации частоты проводить анализ спектра по МАХ амплитуды, или это не грамотно?
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 14 Сен 2007 15:10:42 #  

Vit Не, давайте так. Я не решу вашу задачу и не дам вам гарантированое решение. Вы спрашивали как поставить сетку точно на узлы FFT, я не знаю других подходов кроме описаного, на который же ссылаются и некоторые иследования по приёму ofdm сигналов. Как именно это делается оптимально или быстро, решают разработчики в каждом конкретном случае по своему. То что вам это возможно и не надо для вашей задачи мне вроде понятно из того что вы легко соглашаетесь на точность в 2 герца. А десять чем тогда плохо, это всего один процент от 1000? Чё то мне кажется мы решаем какую то абстрактную задачу, для меня это так. Абстрактные вещи не очень интересны, можно говорить о путях решения очень много и долго.
attache
Участник
Offline3.4
с окт 2004
Донецк-Москва
Сообщений: 692

Дата: 14 Сен 2007 15:35:28 #  

Такой уход частоты будет слышен "невооруженным ухом"
Vit
Участник
Offline1.0
с сен 2007
Сообщений: 10

Дата: 14 Сен 2007 16:15:36 #  

10Hz конечно не плохо, но для сетки с шагом в 8Hz - неприемлемо.
А по поводу вопроса дополнения нулями FFT блока что-нибудь сказать можете?
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 14 Сен 2007 17:45:57 #  

Vit По поводу нулей, а что тут говорить, ничего не появляется из неоткуда, в каких то случаях это может помочь, в каких то оно безполезно. Надо пробовать, и проверять, вот так сказать это подойдёт или неподойдёт нельзя. Виртуально оно всё просто, как делать начинаешь появляется хуча проблем. Вообще же пока задача не обрисована в деталях, каждый из нас будет говорить о своём.
Vit
Участник
Offline1.0
с сен 2007
Сообщений: 10

Дата: 17 Сен 2007 10:40:36 #  

Задача достаточно простая (и где-то банальная) - определение значений одинаковых по длительности с непрерывной фазой частот (из заданной сетки с шагом 8Гц) поступающих на вход звуковой карты произвольного ПК, далее идёт интерплетация этих значений.

"Надо пробовать, и проверять" - в программе я этим успешно пользуюсь, но хотелось бы теоретического обоснования, что это не влияет на частотные значения, чего я нигде не нашёл.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 17 Сен 2007 13:37:26 #  

Vit Задача настолько же и проста, насколько может быть и невыполнимой. Частот сколько? Амплитуды одинаковы или нет? Откуда сигнал берётся в карте? Из приёмника? Из файла? С какой степенью нужно определять что это имено то что нужно а не случайная помеха? Какое время на определение даётся? Это ничего не известно, и всё это решающие вещи, для конкретной задачи. Одно дело охрана автомобиля, другое запуск ядерной боеголовки, то что легко сработает в охране бибики, не покатит ни под каким соусом для боеголовки. Задача не ясна по определению. ;(
Реклама
Google
 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.045; miniBB ®