« 2025年8月 | トップページ | 2025年10月 »
・Next G Allianceの6Gウェビナーは10月14日
・Ansysのアレーアンテナ設計ウェビナーは本日
Designing with Juliano and Katerina eLearning Series: Antenna Array Design
・QualcommのWi-Fi 8解説記事
Wi-Fi 8 will be a foundational connectivity fabric for the AI era
・Huaweiが5G-AとAIの講演
その他
GSA
今回はこの例題。
Apache Commons MathにはNelderMeadSimplexというクラスはあるのだが全然使い方がわからん…検索してもこれ、というのがない。
そこでGoogle Gemini 2.5 Proに聞いてみた。一発で動くのができた。
コードはこんな感じで。
|
import org.apache.commons.math3.analysis.MultivariateFunction;
import org.apache.commons.math3.optim.InitialGuess;
import org.apache.commons.math3.optim.MaxEval;
import org.apache.commons.math3.optim.PointValuePair;
import org.apache.commons.math3.optim.nonlinear.scalar.GoalType;
import org.apache.commons.math3.optim.nonlinear.scalar.ObjectiveFunction;
import org.apache.commons.math3.optim.nonlinear.scalar.noderiv.NelderMeadSimplex;
import org.apache.commons.math3.optim.nonlinear.scalar.noderiv.SimplexOptimizer;
import java.util.Arrays;
public class RosenbrockOptimizer {
public static void main(String[] args) {
// 1. 目的関数の定義 (5パラメータのRosenbrock関数)
// MultivariateFunctionインターフェースをラムダ式で実装します。
MultivariateFunction rosenbrock = (double[] x) -> {
double sum = 0.0;
// N次元のRosenbrock関数の公式に従って計算
for (int i = 0; i < x.length - 1; i++) {
double term1 = x[i+1] - x[i] * x[i];
double term2 = 1.0 - x[i];
sum += 100.0 * term1 * term1 + term2 * term2;
}
return sum;
};
// 2. オプティマイザの準備 (Nelder-Mead法)
// コンストラクタの引数は収束判定のための許容誤差です。
// (relative threshold, absolute threshold)
SimplexOptimizer optimizer = new SimplexOptimizer(1e-12, 1e-12);
// 3. 最適化の実行
System.out.println("5次元Rosenbrock関数の最小化を開始します...");
System.out.println("アルゴリズム: Nelder-Mead Simplex");
// 初期値 (原点から開始)
double[] startPoint = new double[]{1.3, 0.7, 0.8, 1.9, 1.2};
// Nelder-Meadシンプレックスを5次元で初期化
int dimension = 5;
NelderMeadSimplex simplex = new NelderMeadSimplex(dimension);
// 最適化を実行し、結果を取得
PointValuePair result = optimizer.optimize(
new MaxEval(20000), // 最大評価回数(終了条件)
new ObjectiveFunction(rosenbrock), // 目的関数
GoalType.MINIMIZE, // 目的(最小化)
new InitialGuess(startPoint), // 初期推測値
simplex // 使用するアルゴリズム(シンプレックス)
);
// 4. 結果の表示
System.out.println("----------------------------------------");
System.out.println("計算完了");
System.out.println("評価回数: " + optimizer.getEvaluations());
System.out.println("反復回数: " + optimizer.getIterations());
System.out.println("最小値 (f(x)): " + result.getValue());
System.out.println("その時の点 (x): " + Arrays.toString(result.getPoint()));
System.out.println("----------------------------------------");
System.out.println("理論上の最小値は f(1,1,1,1,1) = 0 です。");
}
}
|
結果:
5次元Rosenbrock関数の最小化を開始します...
アルゴリズム: Nelder-Mead Simplex
----------------------------------------
計算完了
評価回数: 617
反復回数: 386
最小値 (f(x)): 1.129924260917651E-12
その時の点 (x): [1.0000000580197625, 1.0000001155585465, 1.0000002391902205, 1.0000004894555592, 1.0000008896018324]
----------------------------------------
理論上の最小値は f(1,1,1,1,1) = 0 です。
すごいな。もう人間いらない…
なぜかやたらインプレッションが多い。
Google ColabのJulia言語で解読。アレシボメッセージだ! pic.twitter.com/fv2gFzLsKL
— tomo (@tonagai) September 27, 2025
マクドナルドのアレシボメッセージの上にあった数字、オリジナルと同じ読み方すると2025年10月15日20時30分00秒になって何の意味?と思っていたらこのXGの #青いリアタイマクパ 配信の時刻だった。 https://t.co/2eK5Rf7PJl pic.twitter.com/g27bjXoakJ
— tomo (@tonagai) September 29, 2025
前作のダイジェストが最初にあるので忘れていても大丈夫(私は前作も観たけどほぼ忘れていた…)
とにかく潜水艦間のバトルがものすごい迫力でいい。全く見えない中(映画では見えますが)、ソナーマンが音だけで相手を探る。すごい職業だ…相手をだまし、裏をかく海江田、大沢たかおさんがやはりすごい迫力。
私はスタートレックシリーズがめちゃくちゃ好きだが、これも海と宇宙だけの違いで同じ感じでよかった。
あと敵側も深く掘り下げていてそれが深みを与えていた。
政治パートもかなり長く、投票の開票がなぜかリアルで驚いたり。政治パートでは津田健次郎さんがめちゃくちゃかっこよかった。
戦闘はもう一つ米艦隊ともあるが、これはネタバレなしで。
Adoさんのエンディング曲もよかった。これはお勧め。
で劇中でわからなかった言葉を調べた。
GPSは地下鉄に乗ると全く使えないので、地下街はどうかなとホワイティうめだを歩いてみた。Googleマップのタイムラインでもまあまあ疲労が、もっと精度のいいルートヒストリーを使ってみた。
地図はこちらから。
http://umedachikagai.web.fc2.com/
思っていた以上にちゃんと拾っていた。
・Qualcomm Snapdragon Summit2025の動画・資料公開、
https://www.qualcomm.com/company/events/snapdragon-summit
・Snapdragon 8 Elite Gen 5など発表
・6Gは2028年にデバイスが出ると予測 (Amon CEO)
https://www.qualcomm.com/news/press-kits/snapdragon-summit-2025-press-kit
・Qualcommの5G Advanced Rel.19ウェビナー
https://content.rcrwireless.com/5g-advanced-qualcomm-webinar
・5G Americasが北米が5G加入者1位と発表
その他
今回はこちらの例題から。
ローレンツ方程式はこんな形。
\begin{align}
&\frac{dx}{dt} = \sigma (y - x) \\\
&\frac{dy}{dt} = -xz + rx -y \\\
&\frac{dz}{dt} = xy - bz \\\
\end{align}
Appache Commons Mathはいろいろな常微分方程式用のソルバーがある。
| Fixed Step Integrators | |
| Name | Order |
| Euler | 1 |
| Midpoint | 2 |
| Classical Runge-Kutta | 4 |
| Gill | 4 |
| 3/8 | 4 |
| Luther | 6 |
| Adaptive Stepsize Integrators | ||
| Name | Integration Order | Error Estimation Order |
| Higham and Hall | 5 | 4 |
| Dormand-Prince 5(4) | 5 | 4 |
| Dormand-Prince 8(5,3) | 8 | 5 and 3 |
| Gragg-Bulirsch-Stoer | variable (up to 18 by default) | variable |
| Adams-Bashforth | variable | variable |
| Adams-Moulton | variable | variable |
ここはうちのブログでよく使っている8次のDormand Princeにしておこう。
コードはこんな感じで。JFreeChatには罠があって、そのままプロットするとX軸の小さい順にプロットしてしまう。XYSeriesの引数にfalseを付けるとそのままのデータでプロットしてくれる。
import java.awt.BorderLayout;
import java.util.ArrayList;
import javax.swing.JFrame;
import org.apache.commons.math3.ode.FirstOrderDifferentialEquations;
import org.apache.commons.math3.ode.FirstOrderIntegrator;
import org.apache.commons.math3.ode.nonstiff.DormandPrince853Integrator;
import org.apache.commons.math3.ode.sampling.FixedStepHandler;
import org.apache.commons.math3.ode.sampling.StepHandler;
import org.apache.commons.math3.ode.sampling.StepInterpolator;
import org.apache.commons.math3.ode.sampling.StepNormalizer;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
public class LorenzEquation extends JFrame {
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
LorenzEquation frame = new LorenzEquation();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(10, 10, 640, 480);
frame.setTitle("Lorenz Equation");
frame.setVisible(true);
}
public LorenzEquation() {
JFreeChart chart =
ChartFactory.createXYLineChart("Lorenz Equation by Dormand-Prince 8(5,3)",
"X",
"Y, Z",
createData(),
PlotOrientation.VERTICAL,
true,
false,
false);
XYPlot plot = chart.getXYPlot();
XYLineAndShapeRenderer renderer =new XYLineAndShapeRenderer();
renderer.setSeriesShapesVisible(0, false);
renderer.setSeriesShapesVisible(1, false);
plot.setRenderer(renderer);
ChartPanel cpanel = new ChartPanel(chart);
getContentPane().add(cpanel, BorderLayout.CENTER);
}
private static class ODE implements FirstOrderDifferentialEquations {
private double[] param;
public ODE(double[] param) {
this.param = param;
}
public int getDimension() {
return 3;
}
public void computeDerivatives(double t, double[] y, double[] yDot) {
yDot[0] = param[0] * (y[1] - y[0]);
yDot[1] = param[1] * y[0] - y[1] - y[0] * y[2];
yDot[2] = y[0] * y[1] - param[2] * y[2];
}
}
private XYSeriesCollection createData(){
ArrayList<Double[]> ylist = new ArrayList<>();
ArrayList<Double> tlist = new ArrayList<>();
double tstep = 0.01;
double tmax = 200.0;
FirstOrderIntegrator dp853 = new DormandPrince853Integrator(1.0e-8, tstep, 1.0e-10, 1.0e-10);
FirstOrderDifferentialEquations ode = new ODE(new double[] { 10.0, 28.0, 8.0 / 3.0} );
double[] y = new double[] { 1.0, 1.0, 1.0 }; // initial state
StepHandler stepHandler = new StepHandler() {
public void init(double t0, double[] y0, double t) {
}
public void handleStep(StepInterpolator interpolator, boolean isLast) {
double t = interpolator.getCurrentTime();
double[] y = interpolator.getInterpolatedState();
ylist.add(new Double[] {y[0], y[1], y[2]});
tlist.add(t);
}
};
dp853.addStepHandler(stepHandler);
dp853.integrate(ode, 0.0, y, tmax, y);
XYSeriesCollection data = new XYSeriesCollection();
XYSeries series1 = new XYSeries("Y", false);
XYSeries series2 = new XYSeries("Z", false);
for (int i = 0 ; i < ylist.size(); i++){
series1.add(ylist.get(i)[0], ylist.get(i)[1]);
series2.add(ylist.get(i)[0], ylist.get(i)[2]);
}
data.addSeries(series1);
data.addSeries(series2);
return data;
}
}
|
結果はこちら。
前回の特別編はこちら。
今回はiFixitがiPhone Airに続いてiPhone 17 Proも分解している。
Lumafieldの協力でCTスキャンを撮っているので5Gミリ波アンテナ部分を見てみよう。
まずはトップからだんだん下に行く動画。
アンテナは4つ、だけれどパッチアンテナではない?底に45°に傾いた正方形はあるけどそもそも飛び出しているし。
横からCT画像見てもなんかマッシュルームアンテナっぽい?
こんなやつ。
iPhone 17 ProのMLB部分。Wi-FiはAppleのN1チップになってもSiPはUSIが作ってる。
・QorvoがKuバンドSATCOM用ビームフォーマーIC発表
・Verizonが6Gイノベーションフォーラム設立
Verizon launches 6G forum; it’s all about the use cases, CTO says
・SiTimeが超小型MEMS発振器発表
・STMがUWBのFiRaの理事会員に
・GSAの5G RedCapレポート
面白そうな特集だったので買ってきた。
アマゾンリンク:https://amzn.to/3VtKUF9
目次と一言コメント:
・Next G Allianceが6Gレポート発行
・EuMW2025開幕・日本ガイシがSubTHz用複合ウェハなど発表
・Qualcomm Snapdragon Summit 2025は23日から
・MediaTekがDimensity 9500発表
・Nordicの新SoC
・RCRwirelessの6Gレポート
https://content.rcrwireless.com/report-will-6g-be-an-evolution-or-a-revolution
その他
TDK
GSA
今回はこの例題から。
Visual C# (C_sharp)の数学ライブラリ Math.NET Numericsを使う(4) 多項式フィッティングをして、Array.ConvertAllで一括でフィッティングデータを得る。
コードはこんな感じ。
import java.awt.BorderLayout;
import javax.swing.JFrame;
import org.apache.commons.math3.analysis.polynomials.PolynomialFunction;
import org.apache.commons.math3.fitting.PolynomialCurveFitter;
import org.apache.commons.math3.fitting.WeightedObservedPoints;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
public class CubicFit extends JFrame {
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
CubicFit frame = new CubicFit();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(10, 10, 640, 480);
frame.setTitle("Cubic Polynomial Fitting");
frame.setVisible(true);
}
public CubicFit() {
JFreeChart chart =
ChartFactory.createXYLineChart("Polynomial Fitting",
"x",
"y",
createData(),
PlotOrientation.VERTICAL,
true,
false,
false);
XYPlot plot = chart.getXYPlot();
XYLineAndShapeRenderer renderer =new XYLineAndShapeRenderer();
NumberAxis yNumAxis = (NumberAxis)plot.getRangeAxis();
yNumAxis.setRange(-2.0, 2.0);
renderer.setSeriesLinesVisible(0, false);
renderer.setSeriesShapesVisible(1, false);
plot.setRenderer(renderer);
ChartPanel cpanel = new ChartPanel(chart);
getContentPane().add(cpanel, BorderLayout.CENTER);
}
private XYSeriesCollection createData(){
double[] x = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0};
double[] y = {0.0, 0.8, 0.9, 0.1, -0.8, -1.0};
WeightedObservedPoints obs = new WeightedObservedPoints();
for (int i = 0; i < x.length; i++) {
obs.add(x[i], y[i]);
}
PolynomialCurveFitter fitter = PolynomialCurveFitter.create(3);
double[] coeff = fitter.fit(obs.toList());
PolynomialFunction cubicFitFunction = new PolynomialFunction(coeff);
double[] xval = new double[600];
double[] yval = new double[600];
for (int i = 0; i < xval.length; i++) {
xval[i] = -2.0 + (6.0 - (-2.0)) * (double)i / (double) (xval.length - 1);
yval[i] = cubicFitFunction.value(xval[i]);
}
XYSeriesCollection data = new XYSeriesCollection();
XYSeries series1 = new XYSeries("Original Points");
for (int i = 0 ; i < x.length ; i++){
series1.add(x[i], y[i]);
}
XYSeries series2 = new XYSeries("Cubic Fitting");
for (int i = 0 ; i < xval.length ; i++){
series2.add(xval[i], yval[i]);
}
data.addSeries(series1);
data.addSeries(series2);
return data;
}
}
|
結果はこちら。
・iFixitがiPhone Airを分解、MLB(Main Logic Board)めちゃくちゃ小さい。
※追記 Chip IDもやっていた。
売れないので減産という報道のiPhone AirをiFixitがMLB(Main Logic Borad)上のチップが何か同定しているのを見逃していた…
・REWAがiPhone 17 Proを分解、これもMLB小さい
・PBKreviewsがiPhone 17 Proを分解、5Gミリ波AiPは一番上に一個
iPhone17はMLB形状も含めてiPhone16とほとんど同じ
ProでもAirでもない無印iPhone17の分解ではMLBも含めてほとんど構成がiPhone16と一緒。
— tomo (@tonagai) September 22, 2025
iPhone 17&Pro 系列拆解:不标准的 17,更实用的 Pro!【享拆】- 微机分WekiHomehttps://t.co/Jcu7ppnVyv https://t.co/G6SKBOzOU0 pic.twitter.com/oMPHZYlLY4
おまけ
iPhone 17 Proの5Gミリ波AiP(Antenna in Package)。フレキが円弧になってるのが面白い。 pic.twitter.com/g0hL6D0kzV
— tomo (@tonagai) September 21, 2025
鬼滅の刃はあまりに人が多すぎるので公開から2か月ほど経ってから観に行ったがチェンソーマンは早めに行こうと観に来た。
設定や藤本先生と編集の林さんのインタビューなど、貴重な資料が載っている小冊子もらった。
原作は2部も含めて全部読んでいるのだが、そんなこと関係なく面白かった。明らかにあざとく演技しているレゼに惚れていくデンジくんにしっかりしろよと思う前半から、ある出来事から一気に世界観が変わり殺戮大会と爆発大会の後半になる。その効果音と音楽がすごかった。
ずんずん響いてくる。これはIMAXで観るとより効果的だったなとちょっと後悔。
音楽と言えば米津さんのOPのIRIS OUTは知っていたが、EDの情報知らなかったので驚く…
驚くと言えばレゼが歌う劇中歌、これ実際にある曲だと思ったらオリジナルだった。
後半もちょくちょく笑かせに来て面白いし、小冊子をもらうためだけに見てもいいくらいだと思ったり。
・PickeringがLXIスイッチを110GHzまで拡大
・車載EMC試験のケーブル共振の解説
・パナソニックが低損失基板MEGTRONの生産を2倍に
・TDKが樹脂電極1000V C0G特性3225 22nFのMLCC発表
その他
おまけ
ソニーのXperiaの不具合、基板製造時の温湿度管理の問題ってMSL管理(Moisture Sensitivity Level)してない?リフローはんだのときに水分の影響でパッケージがダメージ受けたりはんだが爆ぜる(スプラッシュ)したりする。製造のHuaqinは知ってるはずだが、売れている端末だとhttps://t.co/jBfzfknN73 https://t.co/gU8WqG2Gfn pic.twitter.com/BzUIHp3E1y
— tomo (@tonagai) September 18, 2025
・LitepointがWi-Fi 8用のテストソリューション発表
・BroadcomがホンダセンターのWI-Fiを6GHz帯に
・SEMCOが3224サイズ330μFと車載1005 X7S 470nF MLCC発表
・Telitがデッドレコニング対応のGNSSモジュール発表
その他:
iFixit :
今回はこちらの例題。
コードはこんな感じ。周波数をシフトする関数はなさそうなので手動でやっている。ノーマライズ法はデフォルトにするとMatlabと同じになるようだ。
import org.apache.commons.math3.complex.Complex;
import org.apache.commons.math3.transform.DftNormalization;
import org.apache.commons.math3.transform.FastFourierTransformer;
import org.apache.commons.math3.transform.TransformType;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import java.awt.BorderLayout;
import javax.swing.JFrame;
public class FFT extends JFrame {
public static void main(String[] args) {
FFT frame = new FFT();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(10, 10, 640, 480);
frame.setTitle("FFT");
frame.setVisible(true);
}
public FFT() {
JFreeChart chart =
ChartFactory.createXYLineChart("Fast Fourier Transform",
"freq",
"result",
createData(),
PlotOrientation.VERTICAL,
true,
false,
false);
XYPlot plot = chart.getXYPlot();
XYLineAndShapeRenderer renderer =new XYLineAndShapeRenderer();
renderer.setSeriesShapesVisible(0, false);
renderer.setSeriesShapesVisible(1, false);
plot.setRenderer(renderer);
ChartPanel cpanel = new ChartPanel(chart);
getContentPane().add(cpanel, BorderLayout.CENTER);
}
private XYSeriesCollection createData(){
int n = 256;
double[] t = new double[n];
double[] y = new double[n];
Complex[] result = new Complex[n];
for (int i = 0; i < t.length; i++) {
t[i] = (double)i;
y[i] = Math.sin(t[i]);
}
FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD);
result = fft.transform(y, TransformType.FORWARD);
Complex[] resultShift = new Complex[n];
for (int i = 0; i < t.length/2; i++) {
resultShift[i] = result[n/2 + i];
resultShift[n/2+i] = result[i];
}
XYSeriesCollection data = new XYSeriesCollection();
XYSeries series1 = new XYSeries("Real part");
for (int i = 0 ; i < n ; i++){
series1.add(t[i]/(double)n - 0.5, resultShift[i].getReal());
}
XYSeries series2 = new XYSeries("Imaginary part");
for (int i = 0 ; i < n ; i++){
series2.add(t[i]/(double)n - 0.5, resultShift[i].getImaginary());
}
data.addSeries(series1);
data.addSeries(series2);
return data;
}
}
|
実行するとNumPyの結果と同じになった。
・2025年9月16日 Microwave Journalは自動車特集、supplimentは軍用レーダ
https://www.microwavejournal.com/publications/1
https://www.microwavejournal.com/publications/1/editions/358
・QualcommがSnapdragon 8 Elite Gen 5を解説
・Perasoのミリ波モジュールが90万ドルの受注
・ニューラルネットを使ったPAのDPD解説記事
・Pixel10分解動画
その他
まずは吉野家で肉だく牛魯肉飯をいただく。魯肉飯パートは本格的で美味しい。牛丼部分はもちろん美味しいがこれ一緒にしてもあんまりマッチしない気が。まあこうしないと吉野家でやる意味がないのか。
また別の日、餃子の王将で期間限定の麻婆拉麺をいただく。フェアセットBにした。
辛さは弱めだが豆腐の量が半端なく多い。それがもやしの上に敷き詰められていてボリュームたっぷり。
すき家で月見辛旨すきやき牛丼をいただく。想像していたより結構辛めで美味しかった。ノーマルの方も食べてみたい。
月見がちょっと崩れた…
そして別の日、丸亀製麺で旨辛豚つけ汁うどんをいただく。3玉まで無料なので3玉で。
3玉なのでものすごい量(ただし、上げ底なので見かけよりは少ない)、辛味を増やすのに無料のシビ辛ラー油も追加で。
小松菜ナムルも美味しく、これは当たりだった。
IMAXで観ようとずっと思っていたらいつまでたってもいい席が埋まっていてちょっと驚く…平日も関係なく埋まる。
さすがにそろそろ観に行こうとあまりいい席ではなかったがIMAXで観てきた。よかった!
特典は戦った柱と鬼の声優さんのインタビューというなかなか凝ったもの。
とにかく動きと音がすごい。しかも無限城がずっと変形しているのでその上での戦闘がものすごい。
IMAXだからか音もすごくて、特に剣と剣が当たる音が響く。
原作を全部読んでいても関係なく面白かった。アニメオリジナルもかなり追加されていたと思う。
しのぶの原作ではあれどうなったの?というのを全部見せたり猗窩座の過去もだいぶ膨らまされていたと思った。
花火のシーンがものすごくリアル。泣ける。村田も活躍!
この辺りのストーリーで一番好きなのは鱗滝さんの「最終局面という言葉が何度も頭をよぎる…」というセリフだが思っていた通りにあった。
でも原作知らない人はこのあと何年か待たされる?ちょうどいいところで切れててこれはやばい。
しかも三部作らしいのでそのあとまた何年か…
・SPINNER、潤工社が250GHzまで使える0.5mm同軸コネクタ、ケーブル発表
SPINNER
潤工社
・MPIが250GHzまでのプローブステーション発表
・EricssonのUSエンタープライズレポート
・京大宇治キャンパスで量子コンピュータとマイクロ波ワークショップ開催
IEEE MTT-S 会員各位
IEEE MTT-S Kansai Chapter Chair 河合 正
*******************************************************************
「量子コンピュータとマイクロ波」ワークショップ 開催案内
*******************************************************************
概要:
従来のコンピュータでは計算不可能な種々の問題を解決できる量子コンピュータの開発が進んでいます。 量子コンピュータの基本となるQubitの制御や読み出しにはマイクロ波が用いられており、量子コンピュータの実用化にはマイクロ波回路の進展も不可欠な要素となっております。本ワークショップでは、量子コンピュータの基礎について理解いただいた後に、量子コンピュータの発展について概観し、その中でマイクロ波がどのように活用されているのか、また極低温におけるマイクロ波回路技術と課題について多方面からアプローチします。ワークショップの最後にはパネルディスカッションを行い、量子技術とマイクロ波技術の両面から現状と将来に向けた課題と展望について議論を深めます。
■主催: IEEE MTT-S Kansai Chapter
■日時: 2025年10月4日(土) 13:00~17:00
■場所: 京都大学宇治キャンパス 木質ホール (ZoomによるWeb参加も可能)
■参加資格: どなたでも参加できます
■参加費: 無料
■事前申し込み: 登録は以下のURLからお願いします。
https://us06web.zoom.us/meeting/register/s1qN_zF8SXWph9ijdYNzzQ
■プログラム
テーマ: 量子コンピュータとマイクロ波
オーガナイザー: 井上 晃 (三菱電機株式会社) 、塩見 英久(大阪大学)
講演1
・タイトル:マイクロ波研究者のための量子科学・基礎の基礎
・Title: Foundations of Quantum Science for Microwave Researchers
・講師: 塩見 英久(大阪大学)
Hidehisa Shiomi (Osaka University)
・概要:近年の量子科学の成熟によって、特に量子計算機の実現に関する分野では工学的なアプローチの重要性が増している。特に、量子制御や観測においてマイクロ波工学は重要な役割を担っており、研究者の豊富な知見が求められている。本講演では,量子科学の研究者が日常的に使う用語や記号、考え方をマイクロ波研究者にわかりやすく効率的に解説する。
講演2
・タイトル: 様々な量子ビットのマイクロ波制御
・Title: Microwave Control of Diverse Qubit Platforms
・講師: 大平龍太郎(キュエル)
Ryutaro Ohira (QuEL)
・概要:量子計算機の実現に向け、超伝導、イオン、冷却原子などの多様な物理系を用いた研究開発が進められている。本講演では、これらの量子ビットについて、マイクロ波による量子ビットのコヒーレント制御という観点を中心に解説する。また、各物理系が抱える技術的な課題や今後の技術開発の展望について概観する。講演の後半では、弊社が推進する各種量子ビット向け制御装置の研究開発について、最新の取り組みと今後の展望を紹介する。
講演3
・タイトル: 超伝導量子コンピュータの実用化研究
・Title: Research subjects in practical superconducting quantum computers.
・講師: 田渕豊(理研)
Yutaka Tabuchi (RIKEN)
・概要: 超伝導量子コンピュータは、科学的な原理検証から実用化に向けた研究への転換が進んでいる。爆発する信号配線、極限を求められる低漏話率、小型化するパッケージング、超伝導を用いたゼロ抵抗コンタクト、超低磁性部品など、解決すべき課題は多岐にわたる。本講演では、量子コンピュータのシステム全体を俯瞰しながら、マイクロ波研究者に超伝導量子コンピュータの課題を共有し、共に解決に向けた糸口を模索する。
講演4
・タイトル: 超伝導量子コンピュータのためのマイクロ波回路と産総研の評価技術
・Title: Microwave circuits for superconducting quantum computers and testbed system in AIST
・講師: 加屋野 博幸 (産業技術総合研究所)
Hiroyuki Kayano (AIST)
・概要: 量子コンピュータは現在稼働しているスーパーコンピューターを用いても困難な新薬の開発や配送の最適化などに大きな貢献が期待されている。量子コンピュータはいろいろな方式があり、その一つである超伝導量子コンピュータは量子情報を取り出すためにたくさんのマイクロ波回路が使われている。超伝導量子コンピュータの量子信号は微弱な信号であるため受信系を0Kに近い温度で動かす必要がある。そのため低温でのマイクロ波回路開発が必要であり、産総研における評価系開発を紹介する。
パネルディスカッション
・タイトル: 量子応用技術におけるマイクロ波研究のこれからについて考える
・Title: Perspectives on microwave research for applied quantum Technologies : a panel discussion
・概要:量子科学において様々な用途でマイクロ波技術が活用されている。量子応用技術の実用化に向けてマイクロ波技術にもさらなる高度化と研究が求められている。超伝導量子コンピュータをはじめとした量子科学におけるマイクロ波研究の展望について、会場のマイクロ波研究者も交え量子科学の最先端をリードする研究者と考える。
追記:
・IEEE Journal of Microwaves発行・チップレットFMCWレーダ等
https://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=9171629
・QualcommのWi-Fi 8ウェビナー
https://content.rcrwireless.com/wi-fi-8-qualcomm-webinar
・Samsung Galaxy S25 FE分解・廉価版だが基板間RFはフレキ
https://www.youtube.com/watch?v=eIUkJ3gr5hk
・Silicon LabsがSub-GHz IoT用SoC発表
その他
・Apple iPhone 17/Air/Pro/Max発表、やはり日本は5Gミリ波モデルなし、Wi-FiチップはN1 chip、Airはミリ波なしでモデムはC1X
https://www.apple.com/iphone-17-pro/specs/
https://www.apple.com/jp/iphone-17-pro/specs/
・YoleがRFフロントエンドモジュールは中国企業が台頭とレポート
・CMTが新2ポートVNAを発表
・KYOCERA AVXがスタック型MLCC発表
その他
今回は補間。
いろいろあるがリニアとAkima(秋間)スプラインを使ってみよう。
コードはこんな感じ。
import org.apache.commons.math3.analysis.UnivariateFunction;
import org.apache.commons.math3.analysis.interpolation.AkimaSplineInterpolator;
import org.apache.commons.math3.analysis.interpolation.LinearInterpolator;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import java.awt.BorderLayout;
import javax.swing.JFrame;
public class Interpolation extends JFrame {
public static void main(String[] args) {
Interpolation frame = new Interpolation();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(10, 10, 640, 480);
frame.setTitle("Interpolation");
frame.setVisible(true);
}
public Interpolation() {
JFreeChart chart =
ChartFactory.createXYLineChart("Interpolation",
"x",
"y",
createData(),
PlotOrientation.VERTICAL,
true,
false,
false);
XYPlot plot = chart.getXYPlot();
XYLineAndShapeRenderer renderer =new XYLineAndShapeRenderer();
renderer.setSeriesLinesVisible(0, false);
renderer.setSeriesShapesVisible(1, false);
renderer.setSeriesShapesVisible(2, false);
plot.setRenderer(renderer);
ChartPanel cpanel = new ChartPanel(chart);
getContentPane().add(cpanel, BorderLayout.CENTER);
}
private XYSeriesCollection createData(){
int n = 10;
double[] x = new double[n];
double[] y = new double[n];
for (int i = 0; i < n; i++) {
x[i] = 2.0 * Math.PI * (double)i / (double)(n - 1);
y[i] = Math.sin(x[i]);
}
int m = 50;
double[] xval = new double[m];
double[] yline = new double[m];
double[] yakima = new double[m];
LinearInterpolator linearInterpolator = new LinearInterpolator();
AkimaSplineInterpolator akimaSplineInterpolator = new AkimaSplineInterpolator();
UnivariateFunction lineFunction = linearInterpolator.interpolate(x, y);
UnivariateFunction akimaFunction = akimaSplineInterpolator.interpolate(x, y);
for (int i = 0; i < m; i++) {
xval[i] = 2.0 * Math.PI * (double)i / (double)(m - 1);
yline[i] = lineFunction.value(xval[i]);
yakima[i] = akimaFunction.value(xval[i]);
}
XYSeriesCollection data = new XYSeriesCollection();
XYSeries series1 = new XYSeries("Original Points");
for (int i = 0 ; i < n ; i++){
series1.add(x[i], y[i]);
}
XYSeries series2 = new XYSeries("Linear");
for (int i = 0 ; i < m ; i++){
series2.add(xval[i], yline[i]);
}
XYSeries series3 = new XYSeries("Spline");
for (int i = 0 ; i < m ; i++){
series3.add(xval[i], yakima[i]);
}
data.addSeries(series1);
data.addSeries(series2);
data.addSeries(series3);
return data;
}
}
|
実行結果。
ちゃんと補間されている。
ゲームはやったことないが内容はだいたい知っていて、それを一体どんな映画にするのか全然想像つかなかったので興味を持って観に行った。
かなり面白かった。
ゲーム内容的には主人公は演技しようがない感じだがそこは「こども」というテーマを決めて、それに沿って主人公の心が動くストーリーになっているので二宮和也さんの演技の見せ場も多くある。一番最後が特に。
そして歩くおじさんこと河内大和さん。もうゾッとしっぱなし。しかしなぜ歩いているのか、人間なのか?もその経緯も物語に取り込んでいてそれも面白い。
そしてあの8番出口ができた理由もそのテーマにそっている。
ホラーというほどでもないが、ビビるシーンは多くて特に最後のはちょっと特定の方にとっては注意書きがいるのかも、と思ったり。
異変は登場人物はわからなくて観客だけわかるのが「志村うしろー」みたいだった。
エンドクレジットでヒカキンが出たときは驚く…どこに出てた?
・Samsung Galaxy S25FEが発表、USモデルにも5Gミリ波、UWBなし
https://www.samsung.com/us/smartphones/galaxy-s25-fe/buy/galaxy-s25-fe-256gb-unlocked-sku-sm-s731udbexaa/
・iFixitがGoogle Pixel 10を分解。5Gミリ波AiP搭載で基板間のRFはFPC。
https://www.youtube.com/watch?v=Q0OGwjH8eBQ
その他
・Microwave Magazineの特集は量子素子のデザイン自動化・超広帯域GaN-PA
https://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=6668
・Qualcommが6Gウェビナーの資料を公開
・TechInsightsがGoogle Pixel 10 Pro分解・5Gミリ波なしモデルはAiPの位置に物理SIM
https://www.youtube.com/watch?v=daecUVkI8Is
ミリ波ありはこちらを。
・太陽誘電の1005 22μF基板内蔵用MLCC
その他:
Quectel launches KCMCA6S series Wireless M-Bus modules with variable sub-GHz frequency support
猪苗代湖で行われたフェスでのみ配布されていた小冊子7年分をまとめて単行本化し、そこになかったもう1年分を文庫に加えたものだそう。実在の歌の歌詞は随所にはさまれる。トレーディングカードのようなカードもついてくる。
アマゾンリンク:https://amzn.to/426nPMj
あらすじは
「付き合っていた彼女に振られた社会人一年生、どこにも居場所がないいじめられっ子、いつも謝ってばかりの頼りない上司……。でも、いま見えていることだけが世界の全てじゃない。知らないうちに誰かを助けていたり、誰かに助けられたり。残業中のオフィスで、事故現場で、フェス会場で、奇跡は起きる。優しさと驚きに満ちた現代版おとぎ話。 」
というもの。とにかく繋がっていることがわかるスパイパートと社会人パートだが、だが全貌はどうなのか全然分からない。
それが7年続いて、伊坂幸太郎さんらしく鮮やかに伏線が回収されていくのも見事で面白かった。
・50Ω標準とスルーを使う改良2xThru De-embeddingの論文
・様々な材料での5Gミリ波アンテナのレビュー論文
・SEMCOの車載向け高キャパシタンス低ESL MLCC提案
・Motorola Moto G86 Power 5Gの分解動画
https://www.youtube.com/watch?v=5oTr2r8kJg4
トランジスタ技術の2025年9月号の特集2は「必見!回路シミュレーションの新常識」でQSPICEが大きく取り上げられていた。
その中でも素子モデリングにC++を使う事例も多くあったので、「あれ?これファイル読み込んだりできるならTouchstoneフォーマットのファイルでSパラメータ読み込んで高周波QSPICEができるんじゃ…」と思った。
QSPICEとLTSPICEの作者マーク・エンゲルハートさんはForumで高周波に興味なし、そういう機能は入れないと言っていたので…
(まあuSimmics(旧QucsStudio)使えばいいだけかもしれないが…)
でやってみた。普通に#includeができるのはすぐわかった。
こんなテキストファイル
1,2
3,4
5,6
7.8
を読み込むコードを簡単に
というコードでやってみると、
波形は変換してデータ読んでる。
読んでるが…これ波形データ1個来るたびに読んでるな…だめだ。
初期化とか最初のデータが来た時だけ読むようにしないと。
でもなんかうまい手はありそう。暇になったら試してみるかも。
・EE Worldも電気・電子向けAIを提供
https://www.eeworldonline.com/?s
・Mercury Systemsが4-20GHzのチューナブルバンドパス発表
・太陽誘電が150℃対応のフェライトパワーインダクタ発表
・RCRWirelessのプライベート5Gと生成AIウェビナー
https://content.rcrwireless.com/webinar-private-5g-and-generative-ai-in-industry-4.0
その他
DuPont Champions Semiconductor Talent and Innovation at SEMICON Taiwan
最初に若いパット・モリタさんとラルフ・マッチオが出てきて驚くが過去のPartIIの映像だそう。
中盤までレジェンドの2人が全然活躍しないで別ストーリーになってるのであれ?と思うが後半はちゃんと想像通りの展開になる。
特訓シーンが2人が自分のやりたい放題でリー君がぼこぼこにされて笑える。しかもどう考えても傍迷惑な場所で特訓したり。
いやあの木の特訓装置中国から持ってきたの?とか。
ジャッキー・チェンはガラケーを使っていたのも笑える。
しかし一番笑ったのはアラン君のサービス精神。
最後はお約束だけどぐっとくる勝利…だったがそのあとの最後の最後で驚く展開。
この人が全部持って行った気も…
あと昔の曲が大量にかかる。エンドクレジットでえ?こんなに使われていたの?と驚いた。
・Microwave JournalがAI in RFサミット開催
https://www.microwavejournal.com/events/2326-rf-microwave-summit-ai-in-rf
・Qualcommが6Gウェビナー開催
https://content.rcrwireless.com/webinar-empowering-next-generation-user-experiences-at-scale-with-6g
・GSAが5Gスタンドアロンレポート発行
https://gsacom.com/paper/5g-standalone-august-2025/
・Samsung Galaxy A17 5G分解動画
https://www.youtube.com/watch?v=xrPCvHBLx7s
SシリーズやFoldなんかと違って典型的な中華圏スマホの構成。
その他
今回はこちらの例題をJavaに移植。
Visual C# (C_sharp)の数学ライブラリ Math.NET Numericsを使う(1) 複素行列を定義して一次方程式や逆行列、行列式などを計算する。
複素行列のためにはApache Commons Mathのバージョンは3.6.1にしないとだめなのは前回の通り(4.0-beta1から複素数はNumbersライブラリに移ったのでそこの整合がとれてない?)。複素行列のためには
CreateFieldMatrix
を使わないとだめで、実数だけなら
CreateRealMatrix
などでOK。
System.out.printlnは便利だがなんかアプリっぽくないのでSwingを使ってみる。
コードはこんな感じで、
import org.apache.commons.math3.complex.*;
import org.apache.commons.math3.linear.FieldLUDecomposition;
import org.apache.commons.math3.linear.FieldMatrix;
import org.apache.commons.math3.linear.MatrixUtils;
import javax.swing.*;
import java.awt.*;
public class MatrxCalc {
public static void main(String[] args) {
Complex[][] m =
{
{new Complex(2.0, 0.0), new Complex(1.0, 0.0), new Complex(1.0, 0.0)},
{new Complex(-1.0, 0.0), new Complex(1.0, 0.0), new Complex(-1.0, 0.0)},
{new Complex(1.0, 0.0), new Complex(2.0, 0.0), new Complex(3.0, 0.0)}
};
Complex[] v = {
new Complex(2.0, 0.0),new Complex(3.0, 0.0),new Complex(-10.0, 0.0)
};
var A = MatrixUtils.createFieldMatrix(m);
var b = MatrixUtils.createFieldVector(v);
var decomp = new FieldLUDecomposition<Complex>(A);
var solver = decomp.getSolver();
var det = decomp.getDeterminant();
var sol = solver.solve(b);
var inv = solver.getInverse();
JFrame frame = new JFrame("Linear Algebra");
frame.setBounds(100, 100, 640, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
p.setLayout(new BoxLayout(p, BoxLayout.PAGE_AXIS));
JTextArea solArea = new JTextArea();
JTextArea detArea = new JTextArea();
JTextArea invArea = new JTextArea();
JLabel solLabel = new JLabel("Solution");
JLabel detLabel = new JLabel("Detarminant");
JLabel invLabel = new JLabel("Inverse Matrix");
solArea.setFont(new Font("Arial", Font.PLAIN, 15));
detArea.setFont(new Font("Arial", Font.PLAIN, 15));
invArea.setFont(new Font("Arial", Font.PLAIN, 15));
p.add(solLabel);
p.add(solArea);
p.add(detLabel);
p.add(detArea);
p.add(invLabel);
p.add(invArea);
String s = "";
for (int i = 0; i < 3; i++) {
s += sol.getEntry(i) + "\n";
}
solArea.append(s);
detArea.append(det.toString());
invArea.append(MatrixString(inv));
frame.getContentPane().add(p, BorderLayout.CENTER);
frame.setVisible(true);
}
private static String MatrixString(FieldMatrix<Complex> m) {
String s = "";
for (int i = 0; i < m.getRowDimension(); i++) {
s += "[";
for (int j = 0; j < m.getColumnDimension(); j++) {
s += m.getEntry(i, j).toString();
if (j < m.getColumnDimension() - 1) {
s += ", ";
}
}
s +="]\n";
}
return s;
}
}
|
実行結果。
なるほど計算できてそうだ。次行ってみよう。
・Google Pixel 10 Pro XL分解、5Gミリ波AiPは1つで基板間のRFはフレキで基板内は同軸
・Ericssonのモバイルイノベーションレポート
・Qorvoの5G,SATCOMアレイアンテナ設計ツール
・3GPPのRel.19フリーズに向けた動き
« 2025年8月 | トップページ | 2025年10月 »
最近のコメント