На прошлой неделе мы познакомились с библиотекой pySmithPlot, научились рисовать с ее помощью диаграммы Смита и графически изобразили работу четвертьволнового трансформатора. Сегодня мы снова воспользуемся pySmithPlot. Но на этот раз библиотека будет применена для анализа антенного тюнера, выполненного по T-образной схеме.

Круговая диаграмма полных сопротивлений, она же диаграмма Вольперта-Смита или диаграмма Смита — это круговая диаграмма, часто используемая для отображения комплексного сопротивления чего бы то ни было. Одно из интересных свойств данной диаграммы заключается в том, что с ее помощью легко производить некоторые вычисления прямо на бумаге. Например, зная входное сопротивление антенны и рабочую частоту, нетрудно определить, как с помощью LC-схемы привести сопротивление к значению 50 Ом. Этим активно пользовались до появления персональных компьютеров, благодаря чему диаграмма Смита и обрела популярность. Давайте же попробуем порисовать диаграммы Смита на языке Python.

Недавно на YouTube-канале Максима, EW7DDR было опубликовано видео Визуальная передача позывного для SDR приемника, которое в свою очередь основано на статье Визуализация позывного на панораме SDR за авторством Сергея, R3AZ. Видео рассказывает о том, как сгенерировать SSB-сигнал, который при просмотре в панадаптере или WebSDR выглядит, как текст или картинка. Идея мне понравилась, и было решено повторить эксперимент.

Недавно мне понадобилось сходить в PostgreSQL из скрипта на Python. Была предпринята попытка воспользоваться для этого библиотекой py-postgresql, поскольку я успешно использовал ее в прошлом. Но оказалось, что py-postgresql не работает с последними версиями постгреса. В моем случае использовался PostgreSQL 11. Ну что же, тогда не будем выпендриваться, и возьмем используемый всеми psycopg2. Поскольку интерфейс psycopg2 заметно отличается от интерфейса py-postgresql, было решено написать небольшую памятку по использованию данной библиотеки.

Один из недостатков антенного анализатора Mini60S заключается в том, что им неудобно смотреть изменение параметров антенны на широком интервале частот (например, от 1 до 30 МГц). Приложение Open60 позволяет строить такие графики, но делает это с большим шагом (около 1 МГц), из-за чего картина получается смазанной. Другой недостаток заключается в том, что иногда приложение подключается к устройству по Bluetooth не с первого раза. Было решено попробовать исправить оба недостатка при помощи небольшого набора скриптов.

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

Я много слышал про библиотеку NumPy, что дескать в ней есть много полезных математических функций, или что-то в этом роде. Однако какой-то практической задачи, где был бы нужен NumPy, мне как-то не подворачивалось, и потому большого интереса изучать данную библиотеку у меня не было. Потом я заинтересовался Software Defined Radio, и, как следствие, цифровой обработкой сигналов. И вот тут иногда возникает желание по-быстрому поиграться в REPL, скажем, с быстрым преобразованием Фурье (Fast Fourier Transform, FFT) или чем-то таким. Оказалось, что это задача как раз для NumPy. Поэтому было решено разобраться в возможностях этой библиотеки как следует, выяснив заодно, что в ней еще есть помимо FFT.

Если вы читали пост Знакомимся с Sigrok и логическим анализатором DSLogic, то помните, что для Sigrok можно писать декодеры протоколов (protocol decoders, в документации к Sigrok часто используется сокращение PD) на Python. Однако в посте ничего не говорится о том, как их, собственно, писать. Пришло время заполнить этот пробел.

Бывает, что нужно по-быстрому визуализировать какие-то данные — построить графики для презентации или вроде того. Есть много способов сделать это. Например, можно открыть CSV-файл в LibreOffice или Google Docs и построить графики в нем. Но что, если диаграммы нужно строить регулярно, а значит предпочтительнее делать это автоматически? Вот тут-то на помощь и приходит Python с его потрясающей библиотекой Matplotlib.

Подготавливая заметку Основы полнотекстового поиска в PostgreSQL, я столкнулся с необходимостью взять где-то много текстовых данных для индексирования. Первой мыслью было индексировать списки рассылок. Но собрать достаточное количество писем за разумное время было не так-то просто, поэтому в итоге я остановился на индексировании дампа Википедии. И хотя задача была успешно решена, мне захотелось разобраться, как можно было бы написать поисковик по мейлинг листам.