無料で始めるMATLAB ~ スマホでMATLAB "MATLAB Mobile" ~ フィルターの周波数特性を見る
MATLAB Mobileアプリ
MATLABには、無料のスマホアプリ、"MATLAB Mobile" があります。
通常のMATLABの計算ができるし、グラフも描けてたまに重宝します。
これ、私はずっと、「当然MATLABのライセンスがないと使えない」と思っていたのですが、最近、「無料アカウントでも使える」ということを知りました!
大判振る舞い!!
業務でMATLABを使っていたり、MATLAB包括ライセンスを受けてる学校であれば問題ないのですが、「MATLAB興味はあるけど、HOME版でも数万はするし・・」と思って躊躇しているあなた、まずは無料で試してみませんか!?
ということで、早速使い方を。
登録・インストール
まずは "MATLAB Mobile" のサイトの中程、"MathWorksアカウントを作成" をクリックし、メールアドレスとパスワードを登録します。
途中何度か「アップグレードしませんか?」的な案内が出ますが、一旦ここは丁重にお断りして先に進みます。
そしてサイト頭のリンクから、AndroidまたはiOSアプリをインストールし、先ほどのアカウントでログインします。
iOS版だけ、"ライブエディター" 対応です。
今回は、iOS版での説明になります。
使い方
以下の二通りの使い方ができます。
1.オフライン版と同じように、コマンドウィンドウにコマンドを打つ
右下に小さなグラフが出ます。これをクリックするとそのグラフのみが拡大表示され、右上のアイコンをクリックすればカメラロールに保存等ができます。
2.PCのWebブラウザからログインし、PCで作成したファイルを MATLAB Drive にアップロードする
その後はアプリから、
左上のメニューアイコン -> ファイル
でファイルをタップすると実行できます。
一旦ライブスクリプトを読み込むと、ライブスクリプト画面から、新規ライブスクリプト作成もできます。
またはコマンドウィンドウで、
edit ファイル名.mlx
でも、ライブスクリプトの新規作成ができます。
----> 2021/07/23 追記
今のところ、コントロールの追加等、ライブスクリプトとしての機能が何も使えないようです・・。
PCで作って送るしかないですね。
<---- 2021/07/23 追記
----> 2022/02/04 追記
iPadでは、+ で新規ライブスクリプト作成ができます。
<---- 2022/02/04 追記
ちなみにMATLABをお持ちであれば、"MATLAB Drive Connector" をインストールすることによって、MATLAB Drive を MATLAB 環境へ統合できます。
MATLAB Driveは、PC側でフォルダー毎に「閲覧のみ」か「編集可能」で共有することもできます。
無料アカウントでも、共有を受けることはできます。
共有に招待された場合、iPhoneアプリでは縦表示だと表示が重なってしまうので、横表示にして"フォルダーのコピー" を選びます。こうすることで、アプリ内でアクセスできるようになります。
iPhone 縦表示
iPhone 横表示
biquadフィルター周波数特性表示
今回は例として、各種 biquadフィルターを設計して周波数特性を表示するライブスクリプトを動作させてみます。
MATLAB Mobile アプリ iPhone画面
フィルター特性は、Signal Processing Toolboxがあると、freqz() 一発で求まるのですが、無料アカウントでは使えないので、伝達関数から素直に求めています。
その辺りは、calcFres.m、calculateCoefficientsPEQ.m という別ファイル内で計算しています。
function hdB = calcFres(F, G, Q, Type, Fs)
st = pi/512;
w = (0:st:pi-st)';
sosPEQ = calculateCoefficientsPEQ(F, G, Q, Type, Fs);
h = zeros(size(w));
for k = 1:length(w)
h(k) = (sosPEQ(1,1) + sosPEQ(1,2) * exp(-1i*w(k)) + sosPEQ(1,3) * exp(-1i*2*w(k))) ...
/ (1 + sosPEQ(1,5) * exp(-1i*w(k)) + sosPEQ(1,6) * exp(-1i*2*w(k)));
end
hdB = 20*log10(abs(h));
calcFres.m
calculateCoefficientsPEQ.m は長いので、ファイルをご覧ください。
Qは、Q=1だとFc付近にピークを持つので、私は他の人に使ってもらう場合などは分かりやすいように、Q=Q/√2 して、Q=1を指定するとピークを持たないようにしています。(いいのか?(¬_¬) )
calculateCoefficientsPEQ() 内のコメントに書いてありますが、各タイプごとに、無効なパラメーターもあります。
'LSF' % lowShelf(Fc, G, Q)
'HSF' % highShelf(Fc, G, Q)
'P&N' % P&N(Fc, G, Q)
'LPF' % LPF(Fc)
'HPF' % HPF(Fc)
'BPF' % BPF(Fc, Q)
'LP2' % LPF2(Fc, Q)
'HP2' % HPF2(Fc, Q)
例えばLPF/HPFでは、Fc(カットオフ周波数)以外は変えても特性は変わりません。
sosをわざわざ 2x6 のサイズにしているのは、後々MATLABに持って行く際、この形式でないとMATLABでうまく扱えないからです。
上の添付ファイルを解凍してPCからアップロードし、アプリで、"drawPEQ.mlx" をタップします。
ライブスクリプトが実行されますので、直接操作できます。
スマホ側で実行すると、Webサイトからもその結果を見ることができます。
PCでのWebサイト表示
コマンドウィンドウで普通のスクリプト実行した場合は、Figureだけ見てズームしたりもできるのですが、ライブスクリプトではそういったことはできないようです。
なので、グラフはPCで見た方が扱いやすいですね。
スクリプト実行時のグラフ操作例
それと、数値スライダーも編集フィールドも、数値を直接入れようとするとうまくいきません。
DELが効かないし編集自体もできず、スライダーをスライドさせようとすると画面が動いてしまいますので、"ライブ"ではなく値を変えた後実行が必要となりますが、コントロールを置かない方が良いかもしれません。
この辺りはいずれ改善されていくものと思われます。(u_u)
とりあえず「無料の超高機能電卓」としても使えますので、まずは MATLAB Mobile アプリ、入れてみてはいかがでしょうか?( ̄ー ̄)