« 松屋でごろごろチキンのバターチキンカレーをいただく。どちらかというと通常のごろチキがスパイシーで好きだが、これもチキンが本当にごろごろでとても美味しい。 | トップページ | 高周波・RFニュース 2024年9月30日 ロームのテラヘルツデバイス発表、Samsung Galaxy S24 FE分解・5Gミリ波AiP、TDKのESD可視化、MetaのQuest 3SはSnapdragon XR2 Gen 2 Platform、Huaweiのアルファシリーズアンテナ、6Gシンポジウムの内容解説、GSAの5Gレポート »

2024年9月30日 (月)

Google Colab(Colaboratory)でPythonの高周波用ライブラリscikit-rfを使う(1)まずは準備とTouchstone形式でSパラメータファイルを読み込んでdB表示をする。事例はMarki MicrowaveのQuadplexer(4バンド分離)のs5pを使う。

Pythonの高周波用ライブラリscikit-rfはいろんな人にお勧めしている。最新バージョンはv1.3.0で、IEEEP370 de-embeddingやmultiline TRLも実装されてより使いやすくなった。

https://scikit-rf.readthedocs.io/en/latest/index.html

ただ、Python環境を作るのに苦戦している人も結構いて、またvenvで仮想環境を作るのも敷居が高いという話も聞く。

そこで、Pythonと有名なパッケージ(NumPy, Matplotlib, SciPy, Pandasなどなど)とAI関連のパッケージがすでに入っていて、Googleのアカウントさえあればだれでも使えるGoogle Colab(Colaboratory)を使って簡単に試せるようにしてみる。GPUやTPUも使えて、Googleドライブとも接続できて便利。さらにGoogleのAI、Geminiも搭載されていて分からなくなったら質問できるし、コードの続きを推定もしてくれる。

https://colab.research.google.com/?hl=ja

ただし、残念ながらscikit-rfは入っていない。でも使うようにできる方法はあるので1からやってみる。

まずリンクを開き、ファイル→ドライブの新しいノートブックを選ぶとUntitled0.ipynbというファイルができる。名前をここではscikitrf-01.ipynbに変更した。

こんな画面になっているはず。まさにJupyter Notebookと同じような画面になる。セルにプログラムを入力してSHIFT+ENTERで実行できる。

Scikitrf011

まずは!pip install scikit-rfとする。これでscikit-rfがインストールできる。ただしいったん閉じると消えてしまうことに注意。

これを毎回やらないといけない(Googleドライブに保存する方法があるがそれはまた別の機会に)。そんなに時間はかからない。

Scikitrf012

次はGoogleドライブをマウントする。

from google.colab import drive
drive.mount('/content/drive')

とする。このノートブックは"/content/drive/MyDrive/Colab Notebooks/"に保存されている。

Scikitrf013

必要なパッケージをインポートする。

import numpy as np
import matplotlib.pyplot as plt
import skrf as rf
さて、いつも例題にTDKさんのSパラメータを使っているが、今回はMarki MicrowaveのQuadplexer(1つのアンテナからの入力は4つに分ける)を使う。

このファイルをGoogleドライブに置き、以下のようにしてTouchstoneフォーマットのSパラメータが読み込める。

path = "/content/drive/MyDrive/Colab Notebooks/"
ntwk = rf.Network(path + "MMPX-00002PSM.s5p")
これだけ。簡単!
dB表示で図示するにはntwk.plot_s_db()だけでOKだが…

Scikitrf014

 

何も指定しないと全部表示されてしまう。必要なものだけ表示するには

ntwk.plot_s_db(m=1, n=0)のようにする。注意する点としてはm, n はSmnの添え字を表すが、1から始まるのではなく0始まり。

なのでS21を表示させたかったらm=1, n=0にする。ここではS21,S31,S41,S51をプロットしてみる。

Scikitrf015

確かにQuadplexerになってる。ただ周波数の単位がHzでe+10がごちゃごちゃしている。

周波数だけ変換してもいいのだが、読み込むときに単位を設定するのが簡単。f_unitを使う。

ntwk = rf.Network(path + "MMPX-00002PSM.s5p", f_unit="GHz")

Scikitrf016

予期した通りの結果になった。またrf.stylely()というのを使うともうちょっとすっきりしたグラフになる。

Scikitrf017

Y軸の範囲を変えたいときはmatplotlibのplt.ylim範囲を使えばいい。

Scikitrf018

あと便利なのはntwk["0-10ghz"]みたいに直接周波数を使ってスライシングできる。

 

Scikitrf019

ここまでをまとめてテキストデータにしておく。


!pip install scikit-rf

from google.colab import drive
drive.mount('/content/drive')

import numpy as np
import matplotlib.pyplot as plt
import skrf as rf
rf.stylely()

path = "/content/drive/MyDrive/Colab Notebooks/"
ntwk = rf.Network(path + "MMPX-00002PSM.s5p", f_unit="GHz")

ntwk.plot_s_db(m=1, n=0)
ntwk.plot_s_db(m=2, n=0)
ntwk.plot_s_db(m=3, n=0)
ntwk.plot_s_db(m=4, n=0)
plt.ylim(-100, 0)

たったこれだけでなかなかきれいな表示ができる。次はスミスチャートを描いてみよう。

« 松屋でごろごろチキンのバターチキンカレーをいただく。どちらかというと通常のごろチキがスパイシーで好きだが、これもチキンが本当にごろごろでとても美味しい。 | トップページ | 高周波・RFニュース 2024年9月30日 ロームのテラヘルツデバイス発表、Samsung Galaxy S24 FE分解・5Gミリ波AiP、TDKのESD可視化、MetaのQuest 3SはSnapdragon XR2 Gen 2 Platform、Huaweiのアルファシリーズアンテナ、6Gシンポジウムの内容解説、GSAの5Gレポート »

パソコン・インターネット」カテゴリの記事

学問・資格」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« 松屋でごろごろチキンのバターチキンカレーをいただく。どちらかというと通常のごろチキがスパイシーで好きだが、これもチキンが本当にごろごろでとても美味しい。 | トップページ | 高周波・RFニュース 2024年9月30日 ロームのテラヘルツデバイス発表、Samsung Galaxy S24 FE分解・5Gミリ波AiP、TDKのESD可視化、MetaのQuest 3SはSnapdragon XR2 Gen 2 Platform、Huaweiのアルファシリーズアンテナ、6Gシンポジウムの内容解説、GSAの5Gレポート »

最近の記事

最近のコメント

2025年2月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28  
フォト
無料ブログはココログ