高周波エンジニアのためのAI・機械学習入門(19)PythonとKeras3.0とscikit-rfを使ってディープラーニング(DNN)で同軸コネクタがついたマイクロストリップラインのSパラメータからTDRを使わずに特性インピーダンスを予測する。今回は学習データをモンテカルロで作る。
フィルタ、アンテナとAI・機械学習の事例をやってきたので今回は伝送線路系。
測定治具は通常、同軸コネクタ(SMAなど)→同軸の芯と基板との接続部(不連続部)→基板に形成された伝送線路(マイクロストリップラインなど)のような構成をとる。特に不連続部の反射が大きかったりばらついたりして、マイクロストリップラインの特性インピーダンスがSパラメータだけからはよくわからない。通常使われるのはTDR(Time Domain Reflectometry)。
今回はTDRを使わず、不連続部と線路幅がばらついたSパラメータと特性インピーダンスを学習させて、Sパラメータのみで特性インピーダンスを予測する。
前回で、測定治具のモデリングの関数を作っておいた。これを使ってモンテカルロシミュレーションを行う。
基本、フィルタのときと同じなので説明は略。
不連続部をLとCでモデリングして、これと線路幅を乱数で振っている。そのSパラメータをdata, 特性インピーダンスをlabelとして10000個のデータを作る。
import numpy as np
import matplotlib.pyplot as plt
import skrf as rf
from skrf.media import Coaxial, MLine
rf.stylely()
def mesurement_jig(fstart, fstop, n, coaxial_length, cap, ind, width, length, height, er):
"""
測定治具を模したSパラメータ及び基板の特性インピーダンスを返す関数
測定治具は
同軸コネクタ→シャントC→シリーズL
→基板に形成されたマイクロストリップライン
→シリーズL→シャントC→同軸コネクタの構成
導体損・tanδは今回は固定されている。
Parameters
----------
fstart : float
最低周波数[GHz]
fstop : float
最高周波数[GHz]
n : int
周波数分割数
coaxial_length : float
同軸コネクタ部分の長さ[mm]
cap : float
同軸コネクタ・基板接続部キャパシタンス[pF]
ind : float
同軸コネクタ・基板接続部インダクタンス[nH]
width : float
線路幅[mm]
length : float
線路長さ[mm]
height : float
基板厚み[mm]
er : float
基板比誘電率
Returns
-------
Stl : scikit-rfのNetwork
測定治具のSパラメータ
z0 : float
中央周波数の特性インピーダンス
"""
#周波数範囲設定
freq = rf.Frequency(fstart, fstop, n, "GHz")
#同軸コネクタのパラメータ(SMA相当)
coax = Coaxial(frequency=freq, Dint=1.3e-3, Dout = 4.59e-3, epsilon_r=2.29, tan_delta=4e-4, sigma=1/0.022e-6, z0_port=50)
#マイクロストリップラインのパラメータ
msl = MLine(frequency=freq, z0_port=50, w=width*1e-3, h=height*1e-3, t=35e-6, ep_r=er, tand=0.01, rho=1e-8, rough=0.127e-6)
#同軸コネクタの長さ決定
coax_line = coax.line(coaxial_length, unit="mm", name="coax_line")
#マイクロストリップラインの長さ決定
msl_line = msl.line(length, unit="mm", name = "msl_line")
#同軸コネクタと基板の接続部のLC
C = msl.shunt_capacitor(cap * 1e-12)
L = msl.inductor(ind * 1e-9)
#Casccade接続する
Stl = coax_line ** C ** L ** msl_line ** L ** C ** coax_line
#中心周波数の基板の特性インピーダンスを求める。
z0 = msl.z0[n // 2].real
return Stl, z0
#周波数の設定
fstart = 0.1
fstop = 20
n = 200
#固定する項目の設定
er = 4.0
length = 100
coaxial_length = 10
height = 0.254
#モンテカルロシミュレーションではL, C, 線路幅を乱数で振るがそれの最大最小
Lmin = 0.05
Lmax = 0.2
Cmin = 0.01
Cmax = 0.1
wmin = 0.2
wmax = 0.8
#測定治具データ1つ分作る関数
def tl_data(fstart, fstop, n, coaxial_length, cap, ind, width, length, height, er):
"""
Kerasで読めるような形で測定治具の2ポートSパラメータと特性インピーダンスを
1つ分のdata, labelとして出力する。具体的にはdataは(1, points, 5), labelは(1, 1)。
dataが5なのは対称的なのでS11=S22、S21=S12かつ複素数データなので
freq, S11real, S11imag, S21real, S21imagだから。Sパラメータは絶対値1なので規格化はせず
周波数のみ最大周波数で割っている。
"""
Stl, label = mesurement_jig(fstart, fstop, n, coaxial_length, cap, ind, width, length, height, er)
freq = Stl.f
Spara = Stl.s
data = np.array([freq[:]/fstop*1E-9,Spara[:,0, 0].real, Spara[:,0, 0].imag,
Spara[:,1, 0].real, Spara[:,1, 0].imag]).T.reshape(1, Spara.shape[0],5)
return data, label
#モンテカルロシミュレーションでデータ作成して保存する。
N = 10000
np.random.seed(1)
data = np.empty((0, n, 5))
label = np.empty((0, 1))
for i in range(N):
L = Lmin + (Lmax - Lmin) * np.random.rand()
C = Cmin + (Cmax - Cmin) * np.random.rand()
w = wmin + (wmax - wmin) * np.random.rand()
x, y = tl_data(fstart, fstop, n, coaxial_length, C, L, w, length, height, er)
data = np.vstack((data, x))
label = np.vstack((label, y))
#保存
np.savez_compressed("tl_data.npz", data=data, label=label)
|
最初の1000個のS11をプロットしたもの。まあまあ波形がばらついている。
さて準備ができたので次はDNNをやってみる(続く)。
« 捜査線上の夕映え(有栖川有栖さんの火村シリーズ)を読んだ。コロナ禍で最中で起きた殺人事件。容疑者も少なくすぐに解決すると思われたが、意外なジョーカーが…ジョーカーの正体には驚いた。また表紙にもなっている場所が本当に良さそうなところで旅行したくなった。 | トップページ | 高周波・RFニュース 2024年12月13日 TDKの新パワーインダクタと解説、SEMCOの1608 X7T 10㎌ 10V 車載MLCC、Qualcommの6G Foundry記事、STMのIoTモジュール、アナログデバイセズのソフトウェア無線学習モジュール、TechInsightsのHuawei Mate 70解析など »
「パソコン・インターネット」カテゴリの記事
- RF Weekly Digest (Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ) 2025/11/9-2025/11/16(2025.11.16)
- Visual Studio 2026がリリースされたので早速新しいPCにインストール。全面的にGitHub Copilotを使うようになっている。とりあえずC#でMath.NET numericsを使って連立方程式を計算するコードを書いてもらったら一発で動く。他の例として固有値や非線形計算もコードを出してくれた。(2025.11.14)
- 家で使うPCをゲーミングノートPC、ASUS TUF Gaming A16に買い替えた。CPUはAMD Ryzen 9 8940HX、メモリ32GB、GPUはNVIDIA GeForce RTX 5060 Laptop GPU、SSD 1TB。ゲームをしたいわけでなくてNVIDIAの最新GPUで機械学習・数値計算やろうかと。(2025.11.13)
- RF Weekly Digest (Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ) 2025/11/3-2025/11/9(2025.11.09)
- RF Weekly Digest (Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ) 2025/10/27-2025/11/3(2025.11.04)
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2025年11月19日 NTTドコモが6Gに向けAI無線の実証実験、Yoleが光衛星通信のレポート発行、Omdiaが東南アジアのスマートフォン売り上げランキング発表、ベイパーチャンバーの技術解説など(2025.11.19)
- 高周波・RFニュース 2025年11月17日 Microwave Journalの特集は5G/6G/IoT, Special Focusも5G/6G、IDTechExの低損失材料レポート、6GHz帯の世界政策とWi-Fi 8についてのウェビナー開催、iFixitがPixel BUds 2aを分解、OnePlus15分解動画など(2025.11.17)
- RF Weekly Digest (Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ) 2025/11/9-2025/11/16(2025.11.16)
- Visual Studio 2026がリリースされたので早速新しいPCにインストール。全面的にGitHub Copilotを使うようになっている。とりあえずC#でMath.NET numericsを使って連立方程式を計算するコードを書いてもらったら一発で動く。他の例として固有値や非線形計算もコードを出してくれた。(2025.11.14)
- 高周波・RFニュース 2025年11月13日 QorvoがTWTA置き換えの広帯域SSPA発表、iFixitがiPad Pro M5分解、KYOCERA AVXが0.9Vで動く超小型クロック発表、Mini-Circuitsが様々なBALUNやトランス解説、軍用5G解説、imecの110GHz可能な300mm GeSiウェハー(2025.11.13)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2025年11月19日 NTTドコモが6Gに向けAI無線の実証実験、Yoleが光衛星通信のレポート発行、Omdiaが東南アジアのスマートフォン売り上げランキング発表、ベイパーチャンバーの技術解説など(2025.11.19)
- 高周波・RFニュース 2025年11月17日 Microwave Journalの特集は5G/6G/IoT, Special Focusも5G/6G、IDTechExの低損失材料レポート、6GHz帯の世界政策とWi-Fi 8についてのウェビナー開催、iFixitがPixel BUds 2aを分解、OnePlus15分解動画など(2025.11.17)
- RF Weekly Digest (Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ) 2025/11/9-2025/11/16(2025.11.16)
- Visual Studio 2026がリリースされたので早速新しいPCにインストール。全面的にGitHub Copilotを使うようになっている。とりあえずC#でMath.NET numericsを使って連立方程式を計算するコードを書いてもらったら一発で動く。他の例として固有値や非線形計算もコードを出してくれた。(2025.11.14)
- 高周波・RFニュース 2025年11月13日 QorvoがTWTA置き換えの広帯域SSPA発表、iFixitがiPad Pro M5分解、KYOCERA AVXが0.9Vで動く超小型クロック発表、Mini-Circuitsが様々なBALUNやトランス解説、軍用5G解説、imecの110GHz可能な300mm GeSiウェハー(2025.11.13)
« 捜査線上の夕映え(有栖川有栖さんの火村シリーズ)を読んだ。コロナ禍で最中で起きた殺人事件。容疑者も少なくすぐに解決すると思われたが、意外なジョーカーが…ジョーカーの正体には驚いた。また表紙にもなっている場所が本当に良さそうなところで旅行したくなった。 | トップページ | 高周波・RFニュース 2024年12月13日 TDKの新パワーインダクタと解説、SEMCOの1608 X7T 10㎌ 10V 車載MLCC、Qualcommの6G Foundry記事、STMのIoTモジュール、アナログデバイセズのソフトウェア無線学習モジュール、TechInsightsのHuawei Mate 70解析など »



コメント