« 高周波・RFニュース 2024年8月28日 iFixitのGoogle Pixel 9 Pro XL分解、ミリ波AiPは上部に1つ、TechInsigtsのeBook Chiplets and Advanced Packaging、SEMCOの車載MLCC(X7R,2kV, 470nFまで)、Kyocera AVXのRF MLCC、GSAの4G-5G FWA調査、QualcommがSequansの4G IoTを買収 | トップページ | 高周波・RFニュース 2024年8月30日 Point2の誘電体線路e-Tube解説、AmpleonのRF計算ツール、TDKのMR磁気センサでの心臓計測、SEMCOがFCBGAを50%に、FinwaveとGlobalFoundriesがRF GaN-on-Siで協業、Google Pixel 9 Pro XL分解(ミリ波なしモデル)、3GPPのWG »

2024年8月29日 (木)

高周波エンジニアのためのAI・機械学習入門(10) Pythonの時系列用ライブラリtsleanを使ってRFフィルタ(LPF、BPF、HPF)のSパラメータ周波数特性がクラスタリング(教師なし学習)できるか見てみる。まずはTime Series K-means法で。

前回までは全て教師あり学習だったが、今回は教師なし学習。

Pythonのライブラリtslearnは時系列データのクラスタリングなどができる。

https://tslearn.readthedocs.io/en/stable/#

Sパラメータの周波数特性を時系列と見なしてこれを適用してみよう。

入力データは以前作ったローパスフィルタ、バンドパスフィルタ、ハイパスフィルタが混在したもの。

高周波エンジニアのためのAI・機械学習入門(6)教師あり学習で分類をするためのデータ作成として、Pythonとscikit-rfで作ったLCフィルタ合成ライブラリfiltersynthを使ってモンテカルロシミュレーションでLPF、BPF、HPFをたくさん作ってSパラ入力、出力OneHot表現で分類を行う。

Filterclassification02_20240828173601

 

これを一番簡単なアルゴリズムTime Series K-means法でクラスタリングしてみる。ユークリッド距離を使う。

https://tslearn.readthedocs.io/en/stable/gen_modules/clustering/tslearn.clustering.TimeSeriesKMeans.html

コードはこんな感じで。


import numpy as np
import matplotlib.pyplot as plt
from tslearn.utils import to_time_series
from tslearn.clustering import TimeSeriesKMeans
from tslearn.clustering import KShape
from tslearn.preprocessing import TimeSeriesScalerMeanVariance

data_label = np.load("filter_classification.npz")
data = data_label["data"]
s21dB = 10*np.log10(data[:, :, 3]**2 + data[:, :, 4]**2)
s21dB = to_time_series(s21dB)
n = 3
s21dB_scaled = TimeSeriesScalerMeanVariance().fit_transform(s21dB)
km = TimeSeriesKMeans(n_clusters=n, verbose=True, random_state=42)
pred = km.fit_predict(s21dB_scaled)
freq = np.linspace(0.1,20,s21dB.shape[1])
fig = plt.figure(figsize=(12,4))
for yi in range(n):
    plt.subplot(1, 3, yi + 1)
    for xx in s21dB[pred == yi]:
        plt.plot(freq, xx.ravel(), "b-", alpha=.1)
        plt.ylim(-60, 0)
        plt.xlabel("Frequency[GHz]")
        plt.ylabel("S21[dB]")
        plt.grid(True)
    plt.text(0.55, 0.25,'Cluster %d' % (yi + 1),transform=plt.gca().transAxes)
plt.tight_layout()

まずは3クラスタに分けてみる。

Kmeans1

うーん混ざってるな…もうちょっとクラスタを増やして9クラスタにしてみる。

Kmeans2

これは完全に分類できているな。ローパスの浅いのと深いのまで分類できている。

次は別のアルゴリズム、K-shape法を試してみる。

« 高周波・RFニュース 2024年8月28日 iFixitのGoogle Pixel 9 Pro XL分解、ミリ波AiPは上部に1つ、TechInsigtsのeBook Chiplets and Advanced Packaging、SEMCOの車載MLCC(X7R,2kV, 470nFまで)、Kyocera AVXのRF MLCC、GSAの4G-5G FWA調査、QualcommがSequansの4G IoTを買収 | トップページ | 高周波・RFニュース 2024年8月30日 Point2の誘電体線路e-Tube解説、AmpleonのRF計算ツール、TDKのMR磁気センサでの心臓計測、SEMCOがFCBGAを50%に、FinwaveとGlobalFoundriesがRF GaN-on-Siで協業、Google Pixel 9 Pro XL分解(ミリ波なしモデル)、3GPPのWG »

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

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

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

コメント

コメントを書く

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

« 高周波・RFニュース 2024年8月28日 iFixitのGoogle Pixel 9 Pro XL分解、ミリ波AiPは上部に1つ、TechInsigtsのeBook Chiplets and Advanced Packaging、SEMCOの車載MLCC(X7R,2kV, 470nFまで)、Kyocera AVXのRF MLCC、GSAの4G-5G FWA調査、QualcommがSequansの4G IoTを買収 | トップページ | 高周波・RFニュース 2024年8月30日 Point2の誘電体線路e-Tube解説、AmpleonのRF計算ツール、TDKのMR磁気センサでの心臓計測、SEMCOがFCBGAを50%に、FinwaveとGlobalFoundriesがRF GaN-on-Siで協業、Google Pixel 9 Pro XL分解(ミリ波なしモデル)、3GPPのWG »

最近の記事

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  

最近のコメント

無料ブログはココログ
フォト