« 2020年4月 | トップページ | 2020年6月 »
WiFi 6Eが普及した5Gのメリットも薄くなりそうな気がしていたり。(6G=6GHzで5G=5th generationを間違えた番組があったなあ)
このイベント全部登録しました。
Reality.2020(5G/IoT/Cloud) Where hype meets hardware
Kuバンド(12-18GHz)の衛星の受信に使う平面型フェイズドアレイ。
同じく衛星を使う通信のホワイトペーパー。
https://www.microwavejournal.com/articles/34033-radio-over-satellite-solutions
TDRを使った基板誘電率測定。線路に不連続部を設けるのはやったことない。面白いと思った(単にコネクタ間で今までやっていた)
https://www.signalintegrityjournal.com/articles/1716-quick-and-easy-dielectric-constant-measurements
ロケットニュース24で3記事にもわたる不毛な(笑)争いが繰り広げられているので食べに行ってきた(コロナの影響でネタ探しにいけないんだろうな、、、と同情)
https://rocketnews24.com/2020/05/28/1376084/
量はちょっと少なめ、、、だけれど大きなお肉がものすごく柔らかい。スプーンで力入れずとも切れる。
スパイシーさと肉の多さだとごろチキだが、カレー感と柔らかさならこちら。まあちょっと高いのだけが玉に瑕。。。
この記事はバージョンが古いもののためです。今はこちらを使ってください。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
以前、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でグラフにしたもの。
ソースコード:
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()
5/21のGoogleトップページ。とても面白いことをしている。
https://www.google.com/?doodle=122734981&hl=ja&gl=jp&source=sh/tw/do&nord=1
アフリカ・ジンバブエのショナ族古来の民族楽器ムビラを演奏体験ができて、最後には自由に弾けるようになってる。
でやってみたが、、、
5/21のGoogleトップページはアフリカの楽器ムビラ!自由に弾けるのでやってみたが、、、学校のチャイムしか思いつかなかった!https://t.co/cSJih0IHFw pic.twitter.com/BCdI7xt9uy
— tomo (@tonagai) May 21, 2020
まあチャイムしか思いつかなかったのはあれとして、音がめちゃくちゃ悪い。ノイズも。
これはWindows10の標準機能のGameDVRというのを初めて音声込みで使ってみたのだが、なんで?
調べると、GameDVR ノイズ、とかGameDVR 音割れ
で検索している方多数。解決として
https://satoraredeath.hatenablog.com/entry/2019/10/23/191839
https://jp.videoproc.com/record/game-dvr-tutorial.htm
といろいろ見させてもらいましたがどれも解決せず、、、
手でもできる計算ではありますが、とてもめんどくさい
a-b*x1*y1-c*x1+y1=0
a-b*x2*y2-c*x2+y2=0
a-b*x3*y3-c*x3+y3=0
という計算をする必要が出てきた。a,b,cが未知数で、xi,yiは与えられてるデータ。
ここはSympyで計算してみよう。var('.....')で記号と定義して、solveで解く。一瞬、、、だけど表示がテキストでイマイチ。単なるprintを使ってるから、、、
pprint(pretty print)を使うといいと聞いたことがあるのでやってみると、
さっきよりはいいけどアスキーアート感が半端ない。
ここはinit_printing()をつかうとlatex表示するらしいということでやってみた。
表示はdisplayを使う。
おお、キレイにでた。が、長すぎて切れてる。。。
未知数ごとに取り出そうとしてs['a']とかするとエラー。
なんで?辞書型なのに?と思ったら、
s[a]とかしないとダメらしい。やってみると
うまくいった。
もっと簡単にならないかとsimplifyを試すと?
これ以上は単純にはならないか。
フラクタル図形を描くシリーズ続き。今回はジュリア集合(のうちf(z)=z^2+c)。
https://en.wikipedia.org/wiki/Julia_set
ではいろんなcで描いたもの(一瞬で描けます)。
c = −0.7269 + 0.1889i
c = −0.8 + 0.156i
c = 0.285 + 0i
c = −0.835 − 0.2321i
c = −0.4 + 0.6i
プログラムリストはこちら:
import numpy as np
import matplotlib.pyplot as plt
from numba import jit
@jit
def julia_calc(imag, Nx, Ny, xmin, xmax, ymin, ymax, max_iteration):
x=np.linspace(xmin,xmax,Nx)
y=np.linspace(ymin,ymax,Ny)
c= -0.835-0.2321j
for i in range(Nx):
for j in range(Ny):
iteration=0
z=x[i]+1j*y[j]
while z.real**2+z.imag**2<4 and iteration < max_iteration:
z=z**2+c
iteration=iteration+1
imag[j][i]=iteration
Nx=1200
Ny=1200
max_iteration=400
imag=np.zeros((Nx,Ny))
xmax=2.0
xmin=-2.0
ymax=2.0
ymin=-2.0
julia_calc(imag, Nx, Ny, xmin, xmax, ymin, ymax,max_iteration)
plt.figure(figsize=(12,12))
plt.imshow(imag,extent=(xmin,xmax,ymin,ymax),cmap=plt.cm.hot)
# plt.colorbar()
plt.show()
Microwave Journalの特集、Qualcommの歴史。これは参考になると思います。
Microwave Magazineの特集で面白かったのはミリ波フィルタを3Dプリンタで作った例。
https://ieeexplore.ieee.org/document/9084313/
QorvoがBoostシリーズのWiFiフィルタについて説明。
Rogersのミリ波レーダに向けた基板について。
Qorvoがこのコロナウイルスの時だからこそRFを使ったリテールをやろうという話を。
https://www.qorvo.com/design-hub/blog/rf-opportunities-transforming-retail-experience
GSAのミリ波についてのレポート。
マンデルブロ集合、ブッダブロ、の次にメジャーなのはこれかな。
バーニングシップ・フラクタル。
カラーマップを変えて描いてみた。
afmhot
Greys
Spectral
これが一番船が燃えてる感があるな。
ソースリストはこちら:
import numpy as np
import matplotlib.pyplot as plt
from numba import jit
@jit
def burning_calc(imag, Nx, Ny, xmin, xmax, ymin, ymax, max_iteration):
x=np.linspace(xmin,xmax,Nx)
y=np.linspace(ymin,ymax,Ny)
for i in range(Nx):
for j in range(Ny):
iteration=0
c=x[i]+1j*y[j]
z=0+0j
while z.real**2+z.imag**2<4 and iteration < max_iteration:
z=(abs(z.real)+1j*abs(z.imag))**2+c
iteration=iteration+1
imag[j][i]=np.log(iteration)
Nx=2000
Ny=2000
max_iteration=1000
imag=np.zeros((Nx,Ny))
xmax=-1.7
xmin=-1.8
ymax=0.02
ymin=-0.1
burning_calc(imag, Nx, Ny, xmin, xmax, ymin, ymax,max_iteration)
plt.figure(figsize=(15,15))
plt.imshow(imag,extent=(xmin,xmax,ymin,ymax),cmap=plt.cm.afmhot)
# plt.colorbar()
plt.show()
このTweetを見て、おお!懐かしいとか思った。
https://twitter.com/yanatoku/status/1043501621030703104
シャープさんのTweet見ると、
https://twitter.com/SHARP_JP/status/913225395771547648
MZ2000かな。
何かで描きたいな、と思ったが、一番簡単なのはGoogle検索のグラフ表示機能でしょう。
z=100*cos((pi/180)*sqrt(x^2+y^2))-30*cos(3*(pi/180)*sqrt(x^2+y^2)) from -180 to 180
を入力して検索するだけ。
おお、なにかおいしそうなグラフになった。
もっと範囲を広げると(昔のパソコンでは時間がかかりすぎるかもだが、これなら一瞬)、
これはこれで面白いぐるぐるグラフになってる。
先日、マンデルブロ集合を描いてみたけれど、この下準備でした。
ブッダブロ(Buddhabort)と言うのがある。https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%83%E3%83%80%E3%83%96%E3%83%AD
ブッダのお姿?をしたフラクタル図形。では描いてみる。numba使っても繰り返し回数は100万回とかすると
結構な時間かかります。
色違いで2種。colormapsはafmhotとGreysを使ってみた。
プログラムはこちら。
import numpy as np
import matplotlib.pyplot as plt
from numba import jit
@jit
def buddha_calc(imag, Nx, Ny, xmin, xmax, ymin, ymax, max_repeat, max_iteration):
dx=(xmax-xmin)/Nx
dy=(ymax-ymin)/Ny
for n in range(max_iteration):
cx=np.random.uniform(xmin,xmax)
cy=np.random.uniform(ymin,ymax)
c=cx+1j*cy
zpath=[]
z=0+0j
iteration=0
while z.real**2+z.imag**2<4 and iteration < max_repeat:
z=z**2+c
zpath.append(z)
iteration +=1
if iteration < max_repeat:
for k in range(len(zpath)):
i=int((zpath[k].real-xmin)/dx)
j=int((zpath[k].imag-ymin)/dy)
if i<Nx and i>=0 and j<Ny and j>=0:
imag[i][j] += 1
np.random.seed(1)
Nx=1200
Ny=1200
max_iteration=10000000
max_repeat=1000
imag=np.zeros((Nx,Ny))
xmax=2.0
xmin=-2.0
ymax=2.0
ymin=-2.0
buddha_calc(imag, Nx, Ny, xmin, xmax, ymin, ymax,max_repeat, max_iteration)
plt.figure(figsize=(12,12))
plt.imshow(imag,extent=(xmin,xmax,ymin,ymax),cmap=plt.cm.afmhot)
plt.show()
このニュースみた。
これはすごいな。プロジェクトのページを見ると、
The Global Argon Dark Matter Collaboration (GADM)
が中心となって始めたプロジェクトだが、数多くの研究者たちが加わり(Fermilab含む)完成させたということでした。
https://mvm.care/who-we-are-en/
詳細はarXivに出ている。
https://arxiv.org/pdf/2003.10405.pdf
Mechanical Ventilator Milano (MVM):
A Novel Mechanical Ventilator Designed for Mass Production in Response to
the COVID-19 Pandemic
全体の構成図:
ブロック図:Raspberry Pi4を使ってる。
その他にも
https://sci.tea-nifty.com/blog/2020/04/post-f1ec62.html
やiFixitの取り組みを見たけれど、日本ではやはりこういうのはなかなか難しい(認可といい、専門外の人が医療器具を作る敷居の高さといい、)んでしょうね。私もちょっとしり込みする。。。
最近、家にいることが多いのでプログラムでも組んでみようと思った。Pythonなら会社でも使えるしまあいいかなということで
お絵かきから、、、で早速カラーマップで悩む、、、どれがいいんだ、、、
ということでここは実際にお絵かき、Mandelbrot集合あたりがいいだろうということでやってみた。
さすがにnumbaのjitで計算は一瞬です。
Spectral
Spectral_r
amhot
amhot_r
twilight_shifted
coolwarm_r
YlOrRd_r
うーん、afmhotあたりか、、、
プログラムはこちら。cm.????のところを変えれば色が変わる。
import numpy as np
import matplotlib.pyplot as plt
from numba import jit
@jit
def mandel_calc(imag, Nx, Ny, xmin, xmax, ymin, ymax, max_iteration):
x=np.linspace(xmin,xmax,Nx)
y=np.linspace(ymin,ymax,Ny)
for i in range(Nx):
for j in range(Ny):
iteration=0
c=x[i]+1j*y[j]
z=0+0j
while z.real**2+z.imag**2<4 and iteration < max_iteration:
z=z**2+c
iteration=iteration+1
imag[j][i]=np.log(iteration)
Nx=1200
Ny=1200
max_iteration=1000
imag=np.zeros((Nx,Ny))
xmax=1.0
xmin=-2.5
ymax=1.5
ymin=-1.5
mandel_calc(imag, Nx, Ny, xmin, xmax, ymin, ymax,max_iteration)
plt.figure(figsize=(12,12))
plt.imshow(imag,extent=(xmin,xmax,ymin,ymax),cmap=plt.cm.coolwarm_r)
# plt.colorbar()
plt.show()
Qualcommと富士通の発表。3.5GHzのn78と4.9GHzのn79のキャリアアグリゲーションを使って3Gbps以上という高速通信を実現というもの。
ミリ波の基地局がそんなに増えるとも思えないし、こっちのほうが現実的な高速化かな。
5Gの微妙なタイミング制御に合わせてトリガー機能を高度化したMIPI RFFE v3.0の仕様が承認された。
クロックまたあげる話も合ったけどそれは取り入れられなかった。
5Gもまだ普及してないですが6Gはいろんなところがいろんなことを言っている。今回は140GHz帯(Dバンド)。
QorvoがBAW技術を使い、動物の遠隔診断を可能に。
Pythonは本当に電卓的とかグラフ表示とかScikit-RFで高周波の簡単な解析しかしてこなかった初心者なのですが、、、
ちょっとプログラムを組んでみようかと思ってハマった話です。
Numpyで2次元の行列、例えばx,yがあって、ある関数fを定義してx,yを引数にとってfの中でy=xの何か複雑な式
をしようとしておかしくなった。簡単な例として
def f(x,y):
y=x
とかしておいて
x=np.zeros((3,3))
y=np.eye(3)
f(x,y)
とするとyが0行列になってほしいじゃないですか。参照渡しなんだから。
でも結果はそのまま渡す前とidも同じで
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
あれ?と思って調べたら(というかおそらく簡単な話なので逆に調べ方がわからなくて苦労、、、)、
関数の中で配列そのもの(要素ではなくて)に代入してしまうと、別の配列になってしまって
引数が変更されていない様子。
こういう時は参照渡しで受け取った行列をそのまま返すというのが必要で、
(要素ごとに変えるようなもの)
def f(x,y):
y[...]=x
とか、
※三点リーダーはhttps://qiita.com/yubessy/items/cc1ca4dbc3161f84285e Ellipsistというらしい。
配列の全要素を表す。
def f(x,y):
y[:,:]=x
か、後ろの:が省略できるので
def f(x,y):
y[:]=x
とすると、idも変わらず
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
とできた。
まあこれはいいのだが、、、逆パターンの
y=x[:]
はリストとNumpyの配列で振る舞いが違うとか、、、Pythonはなかなかよくわからん、、、
近所のドラッグストアではどこへ行ってもマスクが全く売っていない。
全然業種の違うところ(タピオカ店とか)で売っているのが増えているそうで、私も店頭に並んでいるのを
見たことがある、がちょっと様子見していたら、、、本格的に家のマスクが底をついた。
もう仕方ないなと思って通販ならある、という噂を通じて楽天で。
選びようがないので、その日のレビュー評価順で上位だったこちらで注文。
https://item.rakuten.co.jp/vapeclub/mask100/
昨日の夜注文したら、なんと今日の午前中に届いた。ありがたや。税込み5980円でした。
10枚ずつ包装されてる。
マスクを出したところ。普通に使えそう。
実際に使ってみるとやはり中国製ではあるものの、
普通に使えました。国産と比べてちょっとフィット感が、、、というのはあるけれど贅沢は言わない。
これで今月の非常事態宣言は少なくとも乗り切れる。
会社もほぼ在宅勤務(リモートワーク)とはいうものの、たまの出社はマスク必須になったし。
どんなお話だったか完全に忘れてしまった小市民シリーズ、でもどれも面白くて過去の作品しらなくても大丈夫と思います。
巴里マカロンの謎、は新しくオープンしたお店にマカロンを注文すると四つあった、でもそのお店は三つ出すはず、四つ目の正体は?
紐育チーズケーキの謎、は巴里マカロンの謎で知り合ったある子が通う中学の文化祭でのお話、だが、これは最後のほうのセリフに笑う。
そして読者への挑戦状がある伯林あげぱんの謎。ジャムの代わりにマスタードが入っている揚げパンをロシアンルーレットのように4人が食べて一人当ったはずなのに誰も当たっていないと主張する。その謎は、、、
これも笑う。確かにここまでの情報で推理できるはずだ、と。
最後はまた1話目に知り合った子が飲酒の疑いをかけられて謹慎するのを助ける花府シュークリームの謎。
これは大団円(その子も、小山内さんも)でほほえましい。
人は死なないですが、ちょっとだけ悪意がある人が出てくる謎で、この緊急事態宣言の中 STAY HOME時に読むのにぴったりです。
まあ仕方ないですが、IEEE MTT-Sが2か月延期してかつバーチャル開催になりました。MWCも中止になったし、今後もどんどんこういうのが起きそう。
The timeframe for the virtual event will be August 2020.
https://ims-ieee.org/travelandsafety
インテルのこの発表、ゲーミングPCと高周波関係なさそうですが、案外シミュレーションに使ってたりする(ターボブーストってやつ)
https://newsroom.intel.com/news/intel-delivers-worlds-fastest-gaming-processor/#gs.59am2m
高速差動線路は密結合か疎結合かという話、最近は高周波のロスの観点から疎結合もよく使われている件。
同じくViaの影響を高周波で避ける話
(緊急事態宣言延長で、以前に書いたものが長くなったので分割しました)
まずは日本のPCR陽性者数は厚生労働省が毎日報告してます。
https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/0000164708_00001.html
中国のはWikiPediaに詳しい。
https://en.wikipedia.org/wiki/2019%E2%80%9320_coronavirus_pandemic_in_mainland_China
さて、感染症の微分方程式として
SIRモデル
SIRモデル(感染症の微分方程式、コロナウイルスなども)の計算をカシオの高精度計算サイトkeisan.casio.jpにUP! 4段4次のルンゲクッタ法を使用。
SEIRモデル
SEIRモデル(コロナウイルス感染の微分方程式その2)をカシオの高精度計算サイトkeisan.casio.jpの自作式としてUP!ルンゲクッタ法を使用。
の計算ができる自作式をUPしましたが、データのフィッティングには
もっと簡単なSISモデルから出てくるロジスティック曲線を使います。
https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology
ではまずは中国本土の5/2までのデータ。
うーん、4月くらいからなんか人工的に見えるのは気のせいだろうか。
日本は?
まずリニアスケール。17000人くらいが上限のロジスティック関数でよくフィッティングできる。
ログスケールにすると、なんか3月末とそれ以降で関数形が大きく変わって見える。
5/7に8万人の患者、という予想には至らないようでそこは緊急事態宣言の効果は出てるんでしょう。
---
5/7更新
緊急事態宣言から1か月、8万人よりはずっと少ない。検査数も増えてないとはいえ、これはこれで成果ではないかと。
リニアスケール:
ログスケール:
そして中国。狙ったように毎日1人とか2人とか増やしている。
逆に怪しいというのがわからんのかな(インフルエンザだってもっと患者いるだろう)。
5/17更新
本日から韓国も追加。こう比較するとまだ日本は一定になってない感じ。
5/25追記
本日で緊急事態宣言が全国で解除。グラフではだいぶ収束はしているように見える(逆に韓国ちょっとずつ上がってる)。
中国はまあどこまで信用していいのか、、、ほとんど増えてない。
5/30更新
今日からアメリカも追加。どの国も増えてるが、特にアメリカまったく減ってない感じがする。
これはリニアスケールのほうが分かりやすいので今日はそちらで。
6/7更新
中国以外(まあどこまで正しいデータを出しているかは不明ですが)はまだまだ増えてますね。
USはひどすぎるが、韓国はなんで終息したみたいな雰囲気を醸し出したのか、、、
6/14更新:
東京で集団感染があったということで日本も増えてる、が韓国がめっちゃ増えてるとか中国も市場で感染とか、アメリカも全く減る気配がないなどまだまだ終息の見込みがない?
6/22更新:
どこも終息してないが、特にアメリカと韓国は増加の傾きが増えているようにみえる。第二波か、、、
6/28更新:
どこも増加の速度が上がっているが、特にアメリカは指数関数に近づいているように見える、、、やばい。
7/5更新:そりゃ連日東京で100人越えすればそうなるよな、、、という増加。
アメリカは本格的に指数関数に近づいている。
« 2020年4月 | トップページ | 2020年6月 »
最近のコメント