Автор |
Сообщение |
|
Дата: 11 Фев 2013 18:09:34 · Поправил: Seapass (11 Фев 2013 18:44:44)
#
Kac61
В варианте поиска в полученных после FFT уровней дискретов скорость должна быть существенно выше. Скажу сразу, мои расчеты приблизительные, могу гдето ошибаться +/- раза в два что на суть мысли не влияет. При длине буфера 8192, частоте выборок ацп 2Мгц и быстром (Более 2ГГц) процессоре для фурье - получается скорость обновления спектров 125 раз в секунду с частотным шагом в полученной таблице FFT порядка 500Гц что вполне достаточно для обнаружения стандартных AM и NFM несущих и чтоб отсеять не промодулированные несущие. Перемножив на полосу в 2МГц получается обзор и поиск в полосе 2*125=250МГц с интервалом 1сек или в полосе 25Мгц 10раз в секунду. Все бы хорошо, но все портит время установки частоты в тюнере более 100мс что дает возможность за 1сек пробежаться блоками по 2МГц только в полосе 20МГц. И тут вопрос. В тюнере используется фракционный синтезатор с высокой частотой сравнения и минимальным временем установки частоты (я предполагаю что время это не более 20мс) - почему выбрано такое большое время ожидания? Неужели флаг установки появляется только через >100мс после ввода новой частоты?
|
|
Дата: 11 Фев 2013 21:16:56 · Поправил: Kac61 (12 Фев 2013 10:37:49)
#
Неужели флаг установки появляется только через >100мс после ввода новой частоты?
Вы неправильно представляете себе процесс обработки сигнала внутри программы.
Опишу процесс по пунктам.
1. Донгл оцифровывает принимаемый в полосе сигнал с частотой дискретизации и отдает пакеты, размером например 16384, по USB . При частоте дискретизации 1.024 МГц это получается в пакете около 16 миллисекунд и пакеты отдаются не ранее чем через каждые 16 мсек.
2. Программа принимает пакеты и собирает их в буфер размером 102400 слов. При 1.024 Мгц это получается 100 миллисекунд. Для 2.048 МГц размер буфера будет 204800 слов и 100 мсек.
3. Как только буфер наполнился начинается обработка этого буфера, но не ранее.
4. Пакеты с донгла начинают заполнять новый буфер и все начинается с начала.
Даже если принять быстродействие вашего компьютера за бесконечность, он не сможет просчитать сигнал до тех пор, пока не заполнится 100 мсек буфер. Единственный вариант ускорить процесс - уменьшить размер буфера. Он будет быстрее заполнятся и чаще отдавать данные на обработку.
P.S. Размер буфера в миллисекундах задается в параметре Latency во вкладке Audio. Поэкспериментируйте.
|
Реклама Google
|
|
|
Дата: 11 Фев 2013 21:51:36 · Поправил: Seapass (11 Фев 2013 22:11:40)
#
Kac61
Тут главное и мне и вам не запутаться в цифрах и протоколах обмена. Для шины USB, в изохронном режиме фактическая пиковая пропускная способность равна 480/10/2=25мегабайт в сек чего вполне хватает для реализации затеи. Для полосы обзора в 2МГц с шагом(после фурье) 500Гц требуется буфер длиной в 16Кб. Учитывая специфику обмена по шине USB и взяв за основу что каждую 1мс с большим запасом по времени передается блок в 16Кб получаем под тысячу спектров в секунду (только успевать их обрабатывать). А дальше думать нужно... Если под напрячься - можно сделать и сканирование в более широкой полосе частот и отображение и сброс на диск панорамы итд.
UP:
Учитывая что с 2832 при полосе обзора 2МГц идет поток в 4Мб в сек получится примерно 4000/16=250 блоков длиной 16КБ в секунду. Каждый блок после фурье дает нам спектр полосой в 2МГц с дискретностью в 500Гц.
P.S.
Вы извините меня заранее что может нагружаю вас информацией. Просто вы спросили о надобности и путях дальнейшего развития ваших модификаций шарпа - вот я и решил подключиться к этой теме.
|
|
Дата: 11 Фев 2013 22:12:02
#
Вы немного не в те дебри полезли. Причем здесь изохорный USB? Какие спектры в секунду передаются по усб? Я вас не понимаю.
Вроде понятно объяснил откуда взялись 100 миллисекунд?
|
|
Дата: 11 Фев 2013 22:27:29 · Поправил: Seapass (12 Фев 2013 00:45:57)
#
Kac61
С большой вероятностью данные от свистка в комп идут в изохронном режиме и передаются кадрами длиной например в 16384 байт.
Для того чтоб отобразить спектр полосой в 2МГц с шагом в 500Гц требуется всего 16384 выборок с частотой дискретизации 4Мгц со встроенного в 2832 АЦП. И понятное дело что не спектры по USB идут :)
Исправил:
По вашим четырем пунктам - простите подправлю первые два.
1. Каждую 4мс 2832 выдает по USB на скорости 480мбит пакеты длиной 16384байт. На один пакет 1мс, но учитывая скорость ацп, приходится 3 такта пропускать. Расчет таков: 4Ms/16K=250 пакетов в секунду(то есть в теории можно получить обзор спектра 2Мгц*250=500Мгц с минимальным шагом в 500Гц за 1сек), но будет меньше так как на практике учитываем скорость перестройки тюнера Е4000.
2. Для того чтоб наполнить буфер длиной 204800(чего у него длина такая?) нужно примерно 13пакетов - итого 4мс*13=52мс (а не 100мс).
В предлагаемом мною варианте (для поиска) - предполагается использование (можно программно в параллель к имеющимся) только блоки в 16Кб для фурье и составления (склейки) спектра из N блоков по 2МГц, а для звука и таймшифта все остается как есть.
Число N - сколько раз в секунду Е4000 может гарантированно перестроиться по частоте (с чего и начал это обсуждение). Учитывая что сканирование идет линейно (мы поднимаемся с каждым шагом на 2МГц - время установки частоты будет минимальным и можно получить порядка 50шагов в секунду что в итоге даст панораму в 100МГц за 1 сек. Все расчеты грубые, но за уши приближенные к реальным. Нюансы типа как склеить учитывая завалы спектра по краям пропущу - все решаемо.
UP:
Вкратце, суть моего меседжа - организовать другой подход к скоростному и одновременно интеллектуальному сканированию (примерно 100МГц в секунду) используя аппаратные возможности свистков. Причем эти 100Мгц можно в таком варианте спокойно разносить по диапазонам - на скорость сканирования это не повлияет. Например за один проход длительностью 1 сек сканируется авиа (136-116=20МГЦ), вся двойка (174-144=30МГц) итд (попробуйте для себя посчитать какие диапазоны вам интересны и сложите эти полосы - получите меньше 100МГц).
Пока приостановлю обсуждение этого варианта - вы и так заняты проработкой своего модуля. Но как появится интерес - давайте вернемся к этому варианту или в вашей или уже в новой теме.
|
|
Дата: 11 Фев 2013 22:44:40 · Поправил: Kac61 (11 Фев 2013 23:17:48)
#
Вы не можете наполнить буфер сигналом который вы ещё не приняли из эфира.
|
|
Дата: 11 Фев 2013 23:27:38
#
Kac61
Если сканировать полосу скажем 10 мгц, отдельные столбики на панораме получаются слишком мелкие, попасть практически не возможно. Как вариант -масштабирование с автоматическим показом того участка, который обрабатывается сейчас.
Не понял как сбросить выделение (все и сразу). Если выделить мышкой, происходит инверсия. Если игноров было много и они сильно разбросаны, приходится выклевывать каждый.
|
|
Дата: 11 Фев 2013 23:43:02 · Поправил: Kac61 (12 Фев 2013 10:18:42)
#
Не понял как сбросить выделение (все и сразу).
Пока никак. Надо добавить сброс или установку на выделенном участке.
Как вариант -масштабирование с автоматическим показом того участка
Очень не хотел панораму делать масштабируемую и мелькающую как окно спектра при поиске. В ближайшее время тут изменений не будет, возможно в дальнейшем. А Step size увеличить не пробовали, или растянуть окно панорамы. Что сканируете в такой полосе?
|
|
Дата: 12 Фев 2013 11:13:49
#
День добрый! Запустил ШарпСДР, всё отлично работает, запускается, всё слышу, но вот Таймшифт скачаный по последней ссылке не запускается вообще. Свисток на Е4000. Ось семёрка 32 бита.
|
|
Дата: 12 Фев 2013 11:24:08
#
Опишите порядок установки и запуска tssdr, как вы это делаете?
|
|
Дата: 12 Фев 2013 18:05:24 · Поправил: demosnt (12 Фев 2013 18:11:40)
#
Kac61
А Step size увеличить не пробовали, или растянуть окно панорамы. Что сканируете в такой полосе?
25 кгц, куда уж. Растягивал на всю(монитор правда 19 " квадратный) Растягивал сколько влезало, оттаскивал за край, растягивал еще (ширина почти 2 экрана) , тогда только можно попасть в отдельную частоту.
Сканирую...ну интересности всякие :) Да хоть авиа диапазон взять......
|
|
Дата: 12 Фев 2013 22:18:04
#
Опишите порядок установки и запуска tssdr, как вы это делаете?
распаковываю архив в корень диска, запускаю екзешник, на полсекунды примерно песочные часы, и потом ничего, в диспетчере задач процесса даже нет.
Если я правильно понимаю, если СДРшарп запускается и работает, то драйвера на свисток установлены правильно и работают.
Если я действую неверно, подскажите пожалуйста, что я делаю не так?
Спасибо!
|
|
Дата: 12 Фев 2013 22:58:49
#
распаковываю архив в корень диска, запускаю екзешник,
Файл readme.txt читали? Архив без файла SDRSharp.Radio.dll. Его надо скопировать в папку из установленного шарпа.
|
|
Дата: 12 Фев 2013 23:39:11
#
25 кгц, куда уж. Растягивал на всю(монитор правда 19 " квадратный)
Не знаю как у вас в регионе, а у нас для авиа 50 минимум, 118 - 137 с шагом 50 отлично работает и на экран влазит. Я признаю, что при низком разрешении монитора могут быть проблемы, но пока в этом плане изменений не планирую.
|
|
Дата: 12 Фев 2013 23:58:21
#
Kac61
Авиа всю дорогу с шагом 25 кГц.
|
|
Дата: 13 Фев 2013 00:06:22 · Поправил: Kac61 (13 Фев 2013 00:09:13)
#
Возможно в более загруженных регионах и 25, у нас в Ростове 50. Я думаю, можно добавить линзу в районе курсора, но на счет прыгающей, масштабируемой панорамы, даже не уговаривайте.
|
|
Дата: 13 Фев 2013 00:11:45
#
у нас в Ростове 50
Все летчики пролетая над Ростовом меняют шаг с 25(а точнее в авиации используется 8,3333) на 50КГц... Даже международный ACARS до полтишки округляется :))
|
|
Дата: 13 Фев 2013 00:13:17 · Поправил: Kac61 (13 Фев 2013 00:17:12)
#
Это сарказм? Он немного не в тему. Я говорю о реальной радио обстановке вокруг нас.
|
|
Дата: 13 Фев 2013 00:20:38
#
В нашей местности на авиа много частот кратных 25КГц - и как быть? В Ростов переезжать?
|
|
Дата: 13 Фев 2013 00:23:47 · Поправил: Kac61 (13 Фев 2013 00:31:18)
#
В нашей местности на авиа много частот кратных 25КГц - и как быть? В Ростов переезжать?
Взять в руки клавиатуру и исправить код под свои нужды, потом выложить здесь. Мои исходники предоставлю всем желающим по запросу, в дальнейшем выложу их на своей страничке.
|
|
Дата: 13 Фев 2013 00:55:01
#
Kac61
не обижайтесь :)
просто будем знать про это ограничение в сканере и не будем использовать. если все будут ваши исходники править, будет ужас
|
|
Дата: 13 Фев 2013 11:56:19
#
Прочитал *.тхт, всё заработало. Спасибо!
|
|
Дата: 13 Фев 2013 13:42:00
#
Возможно в более загруженных регионах и 25, у нас в Ростове 50. Я думаю, можно добавить линзу в районе курсора, но на счет прыгающей, масштабируемой панорамы, даже не уговаривайте.
Предлагаю более простой вариант с минимумом изменений. Ставить игнор по клавиатурному шорт кату. И не обязательно точно попадать. А снимать можно будет выделяя прилегающую область (когда добавите сброс выделенного)
|
|
Дата: 13 Фев 2013 15:16:54 · Поправил: Kac61 (13 Фев 2013 15:17:44)
#
по клавиатурному шорт кату
Не совсем понял. Слова незнакомые.
|
|
Дата: 13 Фев 2013 16:42:27
#
по клавиатурному шорт кату
Не совсем понял. Слова незнакомые.
Ну как это скасать по рюсски... клавиатурные сокращения, комбинации клавиш наверное.
К примеру нажали Сtrl + D и текущая частота перекрашивается в игнор. Без выцеливания мышкой.
|
|
Дата: 13 Фев 2013 19:59:41 · Поправил: Kac61 (13 Фев 2013 21:04:51)
#
Обновил сборку
Из нового:
На панораме цветом отображаются каналы запомненные в менеджере.
Для воспроизводимого канала выводится его частота и название.
В таблицу новых частот заносятся только новые частоты.
Ставить и снимать пропуск каналов можно по одному мышкой или кнопкой Skip, или выделив группу.
Выделенная группа ставится на пропуск левой кнопкой мыши или колесико мыши вперед или кнопкой Skip на окне панорамы. Снимается правой кнопкой мыши или колесико назад или кнопкой No skip.
Работает при оключенной графике.
Несколько мелких доработок, все уже и не помню.
По умолчанию в этой сборке отключен обратный выбор в менеджере частот. Для его включения надо в конфиг добавить <add key="CheckFrequencyOnEntry" value="True" /> |
|
Дата: 13 Фев 2013 20:19:24 · Поправил: vova_sam (13 Фев 2013 20:20:37)
#
Обновил сборку
а сразу догадался. надо было удалить файл scanfrequences.xml |
|
Дата: 13 Фев 2013 20:26:33 · Поправил: Kac61 (13 Фев 2013 20:59:02)
#
Да забыл предупредить, изменился формат этого файла и может выдавать такую ошибку. Лечится удалением scanfrequencies.xml (не путать c frequencies.xml).
p.s. Добавил этот файл в архив, теперь проблем быть не должно.
|
|
Дата: 13 Фев 2013 22:21:56
#
Kac61
А анализатор вида модуляции можно реализовать в сканере,
или это нереально?
|
|
Дата: 14 Фев 2013 07:06:03
#
Теоретически это возможно. Но я пока не настолько "крут".
А необходимость в нем какая? Что-бы был?
|
Реклама Google |
|