見出し画像

無料で始めるMATLAB ~ スマホでMATLAB "MATLAB Mobile" ~ フィルターの周波数特性を見る


MATLAB Mobileアプリ

MATLABには、無料のスマホアプリ、"MATLAB Mobile" があります。

通常のMATLABの計算ができるし、グラフも描けてたまに重宝します。

これ、私はずっと、「当然MATLABのライセンスがないと使えない」と思っていたのですが、最近、「無料アカウントでも使える」ということを知りました!

大判振る舞い!!


業務でMATLABを使っていたり、MATLAB包括ライセンスを受けてる学校であれば問題ないのですが、「MATLAB興味はあるけど、HOME版でも数万はするし・・」と思って躊躇しているあなた、まずは無料で試してみませんか!?


ということで、早速使い方を。


登録・インストール


まずは "MATLAB Mobile" のサイトの中程、"MathWorksアカウントを作成" をクリックし、メールアドレスとパスワードを登録します。

途中何度か「アップグレードしませんか?」的な案内が出ますが、一旦ここは丁重にお断りして先に進みます。

そしてサイト頭のリンクから、AndroidまたはiOSアプリをインストールし、先ほどのアカウントでログインします。

iOS版だけ、"ライブエディター" 対応です。
今回は、iOS版での説明になります。


使い方

以下の二通りの使い方ができます。

1.オフライン版と同じように、コマンドウィンドウにコマンドを打つ

画像12

右下に小さなグラフが出ます。これをクリックするとそのグラフのみが拡大表示され、右上のアイコンをクリックすればカメラロールに保存等ができます。

画像2

2.PCのWebブラウザからログインし、PCで作成したファイルを MATLAB Drive にアップロードする

その後はアプリから、
 左上のメニューアイコン -> ファイル
でファイルをタップすると実行できます。

画像3


一旦ライブスクリプトを読み込むと、ライブスクリプト画面から、新規ライブスクリプト作成もできます。
またはコマンドウィンドウで、
 edit ファイル名.mlx
でも、ライブスクリプトの新規作成ができます。

----> 2021/07/23 追記
今のところ、コントロールの追加等、ライブスクリプトとしての機能が何も使えないようです・・。
PCで作って送るしかないですね。
<---- 2021/07/23 追記

----> 2022/02/04 追記
iPadでは、 で新規ライブスクリプト作成ができます。
<---- 2022/02/04 追記


ちなみにMATLABをお持ちであれば、"MATLAB Drive Connector" をインストールすることによって、MATLAB Drive を MATLAB 環境へ統合できます。

画像5

MATLAB Driveは、PC側でフォルダー毎に「閲覧のみ」か「編集可能」で共有することもできます。

画像4

無料アカウントでも、共有を受けることはできます。

共有に招待された場合、iPhoneアプリでは縦表示だと表示が重なってしまうので、横表示にして"フォルダーのコピー" を選びます。こうすることで、アプリ内でアクセスできるようになります。

画像6

iPhone 縦表示

画像7

iPhone 横表示


biquadフィルター周波数特性表示

今回は例として、各種 biquadフィルターを設計して周波数特性を表示するライブスクリプトを動作させてみます。

画像8

MATLAB Mobile アプリ iPhone画面

フィルター特性は、Signal Processing Toolboxがあると、freqz() 一発で求まるのですが、無料アカウントでは使えないので、伝達関数から素直に求めています。

その辺りは、calcFres.m、calculateCoefficientsPEQ.m という別ファイル内で計算しています。

以前は無料アカウントでも使える Toolbox は Symbolic Math Toolbox だけだったのが、 

Control System Toolbox
Curve Fitting Toolbox
Deep Learning Toolbox
Image Processing Toolbox
Optimization Toolbox
Signal Processing Toolbox
Statistics and Machine Learning Toolbox
Symbolic Math Toolbox
Text Analytics Toolbox

も使えるようになりました!

なので、上記添付スクリプト中、sosPEQ から hdB を求めるには
 hdB = mag2db(freqz(sosPEQ,512,Fs));
でも OK です。

2023/07/16



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サイトからもその結果を見ることができます。

画像9

PCでのWebサイト表示

コマンドウィンドウで普通のスクリプト実行した場合は、Figureだけ見てズームしたりもできるのですが、ライブスクリプトではそういったことはできないようです。
なので、グラフはPCで見た方が扱いやすいですね。

画像10
画像11
画像12

スクリプト実行時のグラフ操作例

それと、数値スライダーも編集フィールドも、数値を直接入れようとするとうまくいきません。

DELが効かないし編集自体もできず、スライダーをスライドさせようとすると画面が動いてしまいますので、"ライブ"ではなく値を変えた後実行が必要となりますが、コントロールを置かない方が良いかもしれません。

この辺りはいずれ改善されていくものと思われます。(u_u)

とりあえず「無料の超高機能電卓」としても使えますので、まずは MATLAB Mobile アプリ、入れてみてはいかがでしょうか?( ̄ー ̄)


この記事が気に入ったらサポートをしてみませんか?