« RF Weekly Digest (Codex(GPT-5.5)で作ったOllama経由のgemma4-26B-A4B QAT、DuckDuckGo Searchを使った高周波・RF情報の週刊まとめアプリ)2026/6/21-6/28 | トップページ | 高周波・RFニュース 2026年6月30日 Pythonの高周波ライブラリscikit-rfがv2.0.0に・遅延ロードで高速化、InfineonがUWBチップを発表、GSMAが通信業界向けOpen Telco AIに向けコーパス発表、3GPP Rel.20 5G-Advanced解説など »

2026年6月29日 (月)

高周波エンジニアのためのAI・機械学習入門(GPU編35) MATLAB OnlineのAntenna Toolboxのパッチアンテナのアンテナ利得(ゲイン)計算機能を使ってモンテカルロシミュレーションをして、サロゲートモデルのためのデータを作る。

前回は周波数と比誘電率を与えて基板厚み、パッチサイズ(W,L)、フィード位置を推定してみた。

今回はMATLABのAntenna Toolboxのゲインを計算する機能を使って、周波数、比誘電率、基板厚み、パッチサイズ(W,L)、フィード位置を与えるとアンテナ利得(ゲイン)が出てくるサロゲートモデルを作ってみよう。
今回は学習データをモンテカルロシミュレーションで作る。

コードはこちら。これもMATLAB Copilotに聞きながら作った。

Matlabmlgain01


monteCarloPatchMicrostrip([6, 12],[2.2 4.4], 3000,'patch_mc_gain3000.csv')

function monteCarloPatchMicrostrip(freqRangeGHz, epsrRange, N, csvFilename)
% monteCarloPatchMicrostrip Generate Monte Carlo dataset of patchMicrostrip designs
%   monteCarloPatchMicrostrip(freqRangeGHz, epsrRange, N, csvFilename)
%
% Inputs:
%   freqRangeGHz  - [f_min f_max] in GHz (e.g. [2.4 2.5])
%   epsrRange     - [epsr_min epsr_max] (relative permittivity)
%   N             - number of Monte Carlo samples (positive integer)
%   csvFilename   - output CSV filename (string)
%
% Output:
%   Writes a CSV file with columns:
%     f_GHz, epsr, h_mm, W_mm, L_mm, feedX_mm, feedY_mm, gain
%
% Notes:
%   - Requires Antenna Toolbox (patchMicrostrip and design).
%   - Frequency is converted to appropriate units internally.
%   - The design uses the 'patchMicrostrip' element and the builtin 'design'
%     function to obtain h, W and L for the given resonant frequency.
%
% Example:
%   monteCarloPatchMicrostrip([2.4 2.5],[2.2 2.3],100,'patch_mc.csv')

arguments
    freqRangeGHz (1,2) double {mustBeFinite, mustBeNonnegative}
    epsrRange (1,2) double {mustBeFinite, mustBePositive}
    N (1,1) double {mustBeInteger, mustBePositive}
    csvFilename (1,:) char
end

% Preallocate results
results = nan(N,8); % f_GHz, epsr, h_mm, W_mm, L_mm, feedX_mm, feedY_mm, Gain
az = 0:5:355;
el = -90:5:90;

rng('shuffle');

for k = 1:N
    % Random sampling (uniform)
    fGHz = rand*(freqRangeGHz(2)-freqRangeGHz(1)) + freqRangeGHz(1);
    epsr = rand*(epsrRange(2)-epsrRange(1)) + epsrRange(1);
   
    % Convert units
    fHz = fGHz*1e9;
   
    % Create dielectric substrate
    substrate = dielectric('Name','mcSubstrate','EpsilonR',epsr);
   
    % Create patchMicrostrip with placeholder W,L; feedOffset set later
    pm = patchMicrostrip('Substrate',substrate);

    % Use design to compute patch geometry for the desired resonant frequency

    % design returns tuned element; use copy to extract h,W,L
    pmDesigned = design(pm, fHz);
    GdBi = pattern(pmDesigned, fHz, az, el);
    [maxdBi, idx] = max(GdBi(:));

    % Extract dimensions (meters)
    W_m = pmDesigned.Width;
    L_m = pmDesigned.Length;
    h_m = pmDesigned.Height;
    feedX_m = pmDesigned.FeedOffset(1);
    feedY_m = pmDesigned.FeedOffset(2);

    % Patch center is at x=0, y=0 in patchMicrostrip.
    % Convert to mm for output.
    W_mm = W_m*1e3;
    L_mm = L_m*1e3;
    h_mm = h_m*1e3;
    feedX_mm = feedX_m*1e3;
    feedY_mm = feedY_m*1e3;

    results(k,:) = [fGHz, epsr, h_mm, W_mm, L_mm, feedX_mm, feedY_mm, maxdBi];

end

% Write CSV with header
header = {'f_GHz','epsr','h_mm','W_mm','L_mm','feedX_mm','feedY_mm','Gain_dBi'};
T = array2table(results,'VariableNames',header);
writetable(T, csvFilename);

end

前回よりは計算時間がかかるのでデータ数は3000個にしてみた。こんな感じでデータができる。

Matlabmlgain02

次回はこれをDNNを使って推定しよう。

« RF Weekly Digest (Codex(GPT-5.5)で作ったOllama経由のgemma4-26B-A4B QAT、DuckDuckGo Searchを使った高周波・RF情報の週刊まとめアプリ)2026/6/21-6/28 | トップページ | 高周波・RFニュース 2026年6月30日 Pythonの高周波ライブラリscikit-rfがv2.0.0に・遅延ロードで高速化、InfineonがUWBチップを発表、GSMAが通信業界向けOpen Telco AIに向けコーパス発表、3GPP Rel.20 5G-Advanced解説など »

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

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

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

コメント

コメントを書く

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

« RF Weekly Digest (Codex(GPT-5.5)で作ったOllama経由のgemma4-26B-A4B QAT、DuckDuckGo Searchを使った高周波・RF情報の週刊まとめアプリ)2026/6/21-6/28 | トップページ | 高周波・RFニュース 2026年6月30日 Pythonの高周波ライブラリscikit-rfがv2.0.0に・遅延ロードで高速化、InfineonがUWBチップを発表、GSMAが通信業界向けOpen Telco AIに向けコーパス発表、3GPP Rel.20 5G-Advanced解説など »

最近の記事

2026年7月
      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  

最近のコメント

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