Pythonのscikit-rfを活用したマイクロ波フィルタ設計ライブラリを作る 

データ解析等に必要なプログラミングの環境を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で見せたことあるけど

他にもいろいろあるけど今年中に追加できそうな機能はこれくらい。将来的には数値計算ライブラリとも合わせてアンテナ設計とかまで拡張できればいいなーと思っている。あとPyQtとか使ってGUIも設計してみたい

本ライブラリを作るにあたって理論的なところはだいたいPozarを参考にしている。来年はCameronとかもう少し発展的な内容も導入していく予定。あとコーディングに関してもまだまだ素人なので簡略化・短縮化・効率化・高速化できそうなところは徐々にしていきたい。

ちなみにライブラリの名前の由来は好きなキャラから取ってます。モチベ爆上がりするので


コメント

タイトルとURLをコピーしました