Автор |
Сообщение |
|
Дата: 07 Ноя 2014 14:36:41
#
Привет Всем!
Как новобранец на данном форуме, внесу свои 3 копейки в общую кассу. Надеюсь не будут лишними.
Когда-то давно пришлось немного полопатить БПФ, и с тех пор осталась небольшая библиотечка на эту тему,
которую я иногда использую в своих программах для работы с НЧ сигналом.
Одну из таких своих программ "Monitor" я и хочу предложить Вашему вниманию.
Программа писалась для визуализации НЧ сигнала с выхода трансивера/радиоприемника и
позволяет наблюдать форму сигнала (красный) и его спектр (синий) в пределах полосы стандартного ТЛФ канала с дискректом около 5 Гц.
Программа не требует установки и запускается из любой папки. Проверена под Windows XP, Vista и Windows 7.
Для работы программы требуется только подключение с линейного выхода трансивера или приемника к соответствующему входу компьютера.
Лишний раз напомню об общей земле между компьютером и Вашим радио, дабы не пожгли свой саундбластер, подключаясь на "горячую".
Регулиовка уровня сигнала на входе производится стандартными средствами Windows в разделе "Уровень записи".
Других регулировок, кроме выключателей соответствующей индикаци, не предусмотрено.
Две зеленые линии указывают рекомендуемый "зеленый коридор" уровня входного сигнала.
Справа в окне темно-зеленым выводится усредненный уровень громкости (первые 220 Гц полосы в обсчет не принимаются).
Шкалы слева и справа окна - условные. (кстати, кто подскажет, как маштабировать уровень сигнала в децибелах, буду признателен).
Частотная шкала снизу окна - соответвует частоте спектра.
При наезде мыши в окно программы, в самой верхней строке будет выводится текущая частота спектра под указателем.
При желании, можно записать принимаемый сигнал в файл, нажав на клавишу RECORD.
При нажатии на клавишу повторно - STOP, запись прекратится и файл с записью в формате .wav останется в рабочей папке программы.
Имя файла формируется по началу записи, по текущему времени в формате: ччммсс.wav
Программа написана на ассемблере (пакет MASM32 от Хатча), исходники прилагаются.
Программа предельно проста и понятна в обращении и особых пояснений надеюсь не требует.
Распакуйке архив куда Вам нравится и если не собираетесь самостоятельно править программу,
все файлы, кроме monitor.exe, можно удалить (исходники в работе не учавствуют).
Обьективная критика приветствуется, удачи!
З.Ы. Исходники вроде загрузились, но куда не пойму сам :)
Сюда Копилка |
|
Дата: 07 Ноя 2014 17:56:58
#
Действительно, не понятно куда...
|
Реклама Google
|
|
|
Дата: 07 Ноя 2014 18:11:58 · Поправил: DVE (07 Ноя 2014 18:15:20)
#
Первый раз вижу программу под Windows, написанную на асме :)
Это было необходимо из соображений скорости FFT, или чисто для интереса?
|
|
Дата: 07 Ноя 2014 19:02:55
#
DR-technology,
Не пойму, как тут файл прицепить, хотя по ссылке (не моя) открывается и грузится.
DVE,
Да мне кажется проще ассемблера уж ничего нет, всегда только на нем и писал. Программ на АСМЕ навалом, Вы наверное просто мест не знаете.
|
|
Дата: 07 Ноя 2014 19:31:50
#
|
|
Дата: 08 Ноя 2014 12:40:07
#
StrayCat, освойте хотя бы C и будет счастье :) Ассемблер конечно интересно в плане хобби, но в плане читаемости и переносимости кода это сейчас совершенно бесмысленная штука. Даже в микроконтроллерах его и то очень редко используют.
А так, в качестве хобби пойдет конечно :)
> ASM .. Это MASM
Да одна малина :) Я еще могу понять использование экзотических вещей типа MMX-инструкций там где это действительно _надо_, а просто так, смысла мало, разве что для себя.
|
|
Дата: 08 Ноя 2014 14:03:42
#
Я еще могу понять использование экзотических вещей типа MMX-инструкций там где это действительно _надо_, а просто так, смысла мало, разве что для себя.
Для себя иногда тоже бывает полезно - очень способствует более глубокому знанию и пониманию. Но в промышленных масштабах так работать не получится - радикально падает производительность труда.
Так что совет автору - освоить дополнительно хотя бы С - вполне оправдан. Уже хотя бы потому, что приличный компилятор сейчас гораздо лучше, чем среднестатистический, и даже очень хороший, разработчик, понимает, как генерировать максимально быстродействующий код под современный CPU.
|
|
Дата: 08 Ноя 2014 14:15:33
#
DVE,
Ну Вы батенька хамите. Почему Вы решили, что я не знаю "C" ?
Я Вам даже на "Васике" что-нибудь сбацать могу. Я просто не люблю его готовить, не вкусно получается :)
Но это тема затяжная, ввязываться не хочу, сходите на: http://www.wasm.ru/forum
ASV,
Я на Ваш максимально быстродествующий код смотрю чаще изнутри, по результатам реверса, и мягко говоря, не совсем с Вами согласен :)
Но как уже высказался, ввязываться в этот спор не хочу. Для меня это всего лишь хобби, а не средство существования. |
|
Дата: 08 Ноя 2014 14:21:02
#
asv
Я так забросил MASM году так в 1992м, когда после ассемблера посмотрел, как работает кросс-компилятор C на PDP11. Там выходом работы компилятора был MASM файл, который потом уже надо было компилировать в исполняемый код. Когда увидел, что сгенерированный код получается ничуть не хуже, чем если бы я его сам писал, только быстрее.
Что не умаляет заслуг автора, сделавшего прекрасный пример минималистической програмы в лучших традициях демосферы :)
С огромным удовольствием посмотрел код с комментариями, спасибо, StrayCat!
|
|
Дата: 08 Ноя 2014 14:30:20
#
StrayCat ,здОрово, респект, как говорится!
А чего? Нормальный размер, нормальный функционал при таком размере, ни че лишнего.
|
|
Дата: 08 Ноя 2014 15:00:39 · Поправил: asv (08 Ноя 2014 15:17:29)
#
StrayCat
Я на Ваш максимально быстродествующий код смотрю чаще изнутри
Именно на мой? Я-то последние годы все больше на CUDA борюсь за производительность, там это гораздо интереснее.
по результатам реверса
Мне кажется, сопоставлять производительность надо не по исходным (дизассемблированным) текстам, а по скорости вычислений на реальных данных.
Для меня в свое время (очень давно) было большим открытием, что на архитектуре Pentium (и выше) самая красивая реализация на асме может проиграть весьма неизящному коду, сгенерированному компилятором. Для любителей острых ощущений в оптимизации есть весьма интересные документы, описывающие микроархитектуру современного интеловского процессора, руководствуясь которыми можно написать оптимальный по скорости код и вручную. Да только количество учитываемых при этом факторов дает такой перебор вариантов, что быстро становится ясно: пусть лучше этим занимается компилятор. Так или иначе, но например, одна из наиболее популярных высокопроизводительных кроссплатформенных (а это сейчас важно) библиотек для вычисления ДПФ - FFTW, написана в основном на Си.
Но как уже высказался, ввязываться в этот спор не хочу
Я тоже спорить не хотел бы. Хобби - это прекрасный способ реализовать свое стремление к совершенству и действительно не имеет ничего общего с понятием "средство существования".
И лично мне Ваши усилия тоже весьма симпатичны.
|
|
Дата: 08 Ноя 2014 15:38:58 · Поправил: TheKindWizard (08 Ноя 2014 15:53:12)
#
Люблю, понимаешь скриншоты.
Увеличить
Как специалист в области QA, могу сказать следующее:
Программа работает, но так как доподлинно не известно "как она должна работать" - не берусь сказать работает она хорошо, или работает она плохо. Так-же хотелось-бы для чайников типа меня - прикрутить к элементам графического интерфейса - Tooltip подсказки.
Судя по всему мониторится дефолтное аудио-устройство, тогда как у меня например, на данный момент подключено 5 аудио устройств (7 входов).
На первый взгляд - хорошо. Есть что допилить, и это тоже хорошо. |
|
Дата: 08 Ноя 2014 15:54:33
#
Друзья, спасибо за комментарии!
Для 3 копеек уже немало :)
ASV
Извиняюсь, если зацепил нечаянно, употребив обобщающее определение.
Я с Вами не спорю, хороший компилятор дорогого стоит.
Но мы, подчас, говорим о разных вещах. Я по привычке, употребляя слово "ассемблер"
распространяю его на более широкий класс устройств нежели ПК.
Я чаще работаю с контроллерами, причем различных производителей и тут без ассемблера/дизассемблера совсем никуда.
TheKindWizard
Все перечисленное возможно. Будет время, подцеплю.
Так и до "пятачка" докатимся :))
|
|
Дата: 08 Ноя 2014 15:55:42
#
StrayCat
Ну да, там по идее не сложно в реализации.... но существенно облегчит использование.
|
|
Дата: 08 Ноя 2014 17:10:59 · Поправил: DVE (08 Ноя 2014 18:01:18)
#
asv
> Для меня в свое время (очень давно) было большим открытием, что на архитектуре Pentium (и выше) самая красивая реализация на асме может проиграть весьма неизящному коду, сгенерированному компилятором.
Дело еще в том, что в совершенстве знать ассемблер можно было во времена 8086. Инструкции современных процессоров уже вряд ли многие в совершенстве знают.
Про такие банальности как переносимость кода, я уже не говорю. С в этом плане куда лучше.
Но в плане хобби, почему нет конечно. Для программы в стиле "3 кнопки" сойдет, что-то серьезное на асме писать никто не будет.
StrayCat
> Ну Вы батенька хамите. Почему Вы решили, что я не знаю "C" ?
Какое же это хамство, скорее недоумение :) ASM весьма громоздкий язык и банально неудобен для больших проектов.
Хотя это забавно конечно, вспоминаю ZX Spectrum и фанатов демо-сцены которые делали демки на несколько килобайт, были времена :))) Да и под ДОС тоже было.
|
|
Дата: 08 Ноя 2014 17:33:05 · Поправил: asv (08 Ноя 2014 17:38:20)
#
что-то серьезное на асме писать никто не будет.
Из моей практики, до определенного момента имело смыл писать на асме (точнее, с ассемблерными вставками) специфические фрагменты кода с функциональностью, не поддерживаемой языком (префетчи, некэшируемые запросы в память, векторные инструкции и т.п.) Сейчас для этого есть макросы, так что обычно удается обходиться стандартными средствами.
|
|
Дата: 08 Ноя 2014 18:05:06
#
Программа не требует установки и запускается из любой папки. Проверена под Windows XP, Vista и Windows 7.
Проверил на Windows 8.1. Работает отлично.
|
|
Дата: 10 Ноя 2014 15:01:08 · Поправил: Solberg (10 Ноя 2014 15:01:48)
#
Работает программка! Спасибо, было бы не плохо добавить режим "памяти" типа чтобы полный спектр сигнала как бы дорисовывался и застывал, и кнопку очистки "памяти", очень помогает при настройки тембровой окраски сигналов передатчика.
|
|
Дата: 10 Ноя 2014 20:24:42
#
|
|
Дата: 10 Ноя 2014 21:18:07
#
Solberg
Добавить можно, но возможно, придется на этот момент отключать "синусоиду", чтобы не разводить "грязь" в окне.
Правда не уверен, что это еще кому-то нужно ?
Пока воюю с бластерами, ищу где взять и куда воткнуть (в компе всего два слота) :)
supavel
Программы "больших мастеров" не любят нас маленьких за наши, подчас, нестандартные ходы :)
Но уверяю Вас, ничего лишнего я туда не закладывал. Для того и исходники всегда прилагаю, чтобы снять все сомнения.
|
|
Дата: 10 Ноя 2014 21:32:41
#
Почему то волнуется AVAST (подозрительный файл) ?
Аналогично, ссылка блокируется Авастом:
|
|
Дата: 10 Ноя 2014 22:18:26
#
|
|
Дата: 10 Ноя 2014 22:35:34
#
StrayCat
Правда не уверен, что это еще кому-то нужно ?
Я в данный момент использую для настройки SpectraPLUS 5.0, но она очень нагромажденная, а тут простенькая и легкая, ничего лишнего. Многим бы пригодилась. Вам и только Вам решать. Удачи.
|
|
Дата: 10 Ноя 2014 22:54:59
#
StrayCat простите меня :-) Поверьте я,очень уважаю людей, которые делают что либо
своими руками или своей головой. И не хотел,поднимать паники.Как то недавно,были
проблемы с сайтом.Если вы вспомните. Возможно я"перебдил или перебздил" :-))
|
|
Дата: 10 Ноя 2014 23:03:46
#
supavel
"Гавно вопрос", как говорит Пелевин, дело житейское :)
|
|
Дата: 11 Ноя 2014 01:32:51 · Поправил: RadioKoteg (11 Ноя 2014 01:36:03)
#
StrayCat
Предлагаю сделать пользу для общества, программу которая рисует водопад высокого разрешения, картинки водопада программа бросает в графические файлы например в JPG их датируя текущей датой, на водопаде проставляя метки "час минута секунда" в виде черточек и надписей цифр. Рисует или в онлайн с звукового устройства или рисует с файлов PCM.
Если говорить о нужности ко мне обратилось несколько друзей с вопросом "а есть такая прога которая сбросит в картинки записи а я в картинках посмотрю активность на дорожках" , конкретно например так эта пристройка нужна для SDR записей, например записи в I/Q после программы HDSDR или их подобных.
Вот образцы записей http://195.24.243.11/RS/KV_Millytary/
Идея какая, есть запись, так как все не переслушаешь так как для этого надо делать многократные проходы и в онлайне просиживая мега часы в поисках интересного, но можно с записей породить много картинок в виде водопада и потом посмотреть картинки например перелистывая вьювером ACD SEE или подобным, определить частоты на которых шла активность и с нужной дорожки, зная время и частоту потом легко выбрать фрагменты другой программой например в HDSDR перезаписать нужную дорожку в звуковой файл нужной шириной полосы, например из I/Q в обычный вейв слышимый для ушей.
Вот образец картинки с HDSDR http://195.24.243.11/RS/KV_Millytary/3350-6120.jpg .
Это как основа.
Ребята поддержите этот отсутствующий инструмент в мире сигналов. |
|
Дата: 11 Ноя 2014 03:10:42
#
эта пристройка нужна для SDR записей, например записи в I/Q после программы HDSDR или их подобных.
А SDRDataFileAnaliser не пробовали программу?
|
|
Дата: 11 Ноя 2014 03:33:21
#
KarapuZ А SDRDataFileAnaliser не пробовали программу?
minimum system configuration is:
Windows 7 64-bit ХП у меня да и у многих или 32 битка или хп.
|
|
Дата: 11 Ноя 2014 18:26:19
#
RadioKoteg
Ничего определенного сейчас сказать не могу.
Надо покурить по теме и руками пощупать, а там может и конкретные вопросы появятся.
|
|
Дата: 12 Ноя 2014 21:21:42
#
Solberg
Добавил по Вашей просьбе кнопочку на три положения: Start/Stop/Reset - Старт/Стоп/Сброс
TheKindWizard
Добавил выбор бластера через командную строку (надеюсь это не проблема) например: monitor.exe /2
(возможные номера: 1-8) Обычный запуск, без указания номера, цепляет бластер по умолчанию - 1й в системе.
При запуске с указанием номера, номер бластера выскакивает под кнопкой Start/Stop/Reset.
Проверял на доп.бластере ESS Allegro PCI (что под рукой было). Но ни один драйвер на него
в систему ровно не вставал и отказывался корректно работать при 8 бит, моно, 11025 Гц
Запуск одновременно друх копий программы на один бластер одновременно, стабилизировал ситуацию,
уж не знаю за счет чего. Глубоко не копал и не разбирался, так как изначалько грешил на драйвер.
Пробуйте на Ваш страх и риск. Основа программы и алгоритм остался прежний.
Родной бластер, что на борту, работает корректно и без проблем.
Программа:
http://www.radioscanner.ru/uploader/2014/monitor2.zip |
Реклама Google |
|