« 御霊神社(大阪 淀屋橋)でお参り。 | トップページ | 松屋でごろごろ創業ビーフカレー生野菜セット(大盛)をいただく。ごろごろ煮込みチキンカレー派の私でもかなり美味しかった。 »

2020年5月28日 (木)

Python+scikit-rf(高周波関連ライブラリ)でNポートのSパラメータをTDR波形に変換してExcelで読めるcsvファイルに吐き出せようとしてハマる、、、やっとできた。

この記事はバージョンが古いもののためです。今はこちらを使ってください。

Google Colab(Colaboratory)でPythonの高周波用ライブラリscikit-rfを使う(3) 評価基板のインピーダンスずれ、不整合部分が一目でわかるTDR(Time Domain Reflectometry)を試す。データはQucsStudioで伝送線路モデルを作って実施。TDRデータをCSVファイルで保存する方法も。 

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

以前、SパラをTDRには変換できるようにはなった。

しかしデータをテキスト(できれば.csv)で吐き出させたい。いろいろやったけどハマった、、、

その記録:

①z_time_stepが動かない、、、

plot_z_time_stepでお絵かきできたんだから、データはz_time_stepで取り出せると思うでしょう、、、

https://scikit-rf.readthedocs.io/en/v0.15/api/generated/skrf.network.Network.z_time_step.html

でも何やってもエラー。

調べると、同じことを聞いている人がいた。

https://teratail.com/questions/248227

やっぱり同じところでエラー。

回答は、、、グラフ表示されているaxesから直接データを読み取れ、とのことでした、、、

(ちょっと納得いかないが仕方ない。)ax.get_linesで読める。

②subsetとplot_z_time_stepのポート数が1個ずれてる!

 ここもハマった、、、

 前はrf.ntwk.s11.plot_z_time_step()

  みたいにすればすぐに表示されたが、s11とか使わないで任意のポート数nにしたい。

  rf.ntwk[:,0,0]とすればいいか?と思ったらエラー?あれ?かといって

 rf.ntwk.plot_z_time_step(m=0,n=0)

   としてもエラー。

 うーん、といろいろ調べると最初の[]と()の中身のポート番号が1個ずつずれてる!

 rf.ntwk[:,1,1].plot_z_time_step(m=0,n=0)

   これで動いた。

 

グラフとcsvファイルを読んでExcelでグラフにしたもの。

Tdr_script Tdr_script2

ソースコード:

 

import skrf as rf
import matplotlib.pyplot as plt
import numpy as np
import os
from tkinter import filedialog
rf.stylely()

typ = [('タッチストーンファイル','*.s*p')]
dir = "C:\\Users\\tomoh_000\\Documents\\Python Scripts"
filename = filedialog.askopenfilename(filetypes = typ, initialdir = dir)
TL=rf.Network(filename)
Port_numbers=TL.number_of_ports
TLdc=TL.extrapolate_to_dc(kind='linear')
fig=plt.figure()
ax=plt.axes()
for i in range(Port_numbers):
    TLdc[:,i+1,i+1].plot_z_time_step(m=i,n=i,ax=ax,window='hamming', pad=1000)

lines=ax.get_lines()
DataX=[]
DataY=[]
x=lines[0].get_xdata()
DataX.append(x)
for i in range(Port_numbers):
    y=lines[i].get_ydata()
    DataY.append(y)

Data=np.concatenate([DataX,DataY]).T
dirname = os.path.dirname(filename)
barefilename=os.path.splitext(os.path.basename(filename))[0]
np.savetxt(dirname+'\\'+barefilename+'-TDR.csv',Data,delimiter=',')
plt.xlim(-1,5)
plt.show()

 

« 御霊神社(大阪 淀屋橋)でお参り。 | トップページ | 松屋でごろごろ創業ビーフカレー生野菜セット(大盛)をいただく。ごろごろ煮込みチキンカレー派の私でもかなり美味しかった。 »

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

コメント

コメントを書く

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

« 御霊神社(大阪 淀屋橋)でお参り。 | トップページ | 松屋でごろごろ創業ビーフカレー生野菜セット(大盛)をいただく。ごろごろ煮込みチキンカレー派の私でもかなり美味しかった。 »

最近の記事

最近のコメント

2025年1月
      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 29 30 31  
フォト
無料ブログはココログ