データ解析等に必要なプログラミングの環境をMATLABからPythonに本格的に移行してから1年くらい経った。これまで本ブログでもちょくちょく登場してきたscikit-rf (RF回路解析用ライブラリ)、以下skrf、をschemdraw (回路描画ライブラリ)と組み合わせてRF回路の設計に役立ちそうな拡張ライブラリを仕事の合間を縫って作ってみた。
scikit-rfはシミュレーションや測定で得られたTouchstoneファイルをもとにしたSパラメータ解析やデータのプロット等に非常に役に立つが、設計段階でskrfの機能を最大限活用するための補助的な役割をもつモジュールが必要だとけっこう思っていたのでためしに自分で作ってみようと思ったのが動機。
githubという素晴らしいプラットフォームもあることだし、まだ中途段階ではあるけどVersion0.0.1として公開してみたので本ブログでも記述しておく。
ライブラリの名前はmaia (Microwave Passive filter design assistant)
githubのリンクはココ。一応、githubを通してpipでインストールできるようになってるけど、依存パッケージ情報等々まだ書ききっていないので数日中にいろいろ修正する予定。ライブラリの内容はgithub上で説明しているのでここでまた書き直すことはないけど、まぁ一言でいえばフィルタの設計仕様入力したらLCはしご回路のLC値とSパラメータ、回路図まで出力してくれるというもの。現在はMethodも二つしかなく、機能も限られているけど今後の拡張内容として考えているのは
・High pass filter(HPF) とBand stop filter(BSF)の追加
・バターワース、チェビシェフ特性に加えて解析的に計算できる線型位相特性 (Phase Linear)の追加、余裕があれば楕円形特性も
・scikit-rfのmediaパッケージを活用したマイクロストリップ線路等の伝送線路特性情報をもとに、典型的なステップインピーダンス線路やオープン/ショートスタブ等を用いた実装機能の追加。一度Twitterで見せたことあるけど
ちょっと機能追加。scikit-rf使って、マイクロストリップ線路の構造パラメータ(h,t,Er,tanD)とインバータの高低Z0値を入力すれば、前回集中定数素子で得られた特性を分布乗数回路で勝手に再現してくれる。例は6段バターワースLPF。MLでなくとも解析・近似解が分かる伝送線路であれば応用可能だと思う pic.twitter.com/TXnCJac2tC
— Hiro🇦🇹 (@yuyusamalife) September 29, 2021
他にもいろいろあるけど今年中に追加できそうな機能はこれくらい。将来的には数値計算ライブラリとも合わせてアンテナ設計とかまで拡張できればいいなーと思っている。あとPyQtとか使ってGUIも設計してみたい
本ライブラリを作るにあたって理論的なところはだいたいPozarを参考にしている。来年はCameronとかもう少し発展的な内容も導入していく予定。あとコーディングに関してもまだまだ素人なので簡略化・短縮化・効率化・高速化できそうなところは徐々にしていきたい。
ちなみにライブラリの名前の由来は好きなキャラから取ってます。モチベ爆上がりするので
コメント