
長らく各関数を舐めてきたIPCVは前回で終わり、今回からScilabの「信号処理関係のデモ」を調べていきたいと思います(まだ、IPCVのカメラ制御関数どもは練習していないけど見送りということで。)いや、デモを動かすのは簡単ではあるのだけれども、トートツ過ぎて何をやっているのかお惚け老人には分からないデス。困った。
※「手習ひデジタル信号処理」投稿順 Indexはこちら
※Windows11上の Scilab2024.0.0を使用させていただいております。(Scilabについては御本家 Scilab 様へ)
Scilabのデモ
Scilabひらいたら、コンソールにフォーカスを置いて、以下のメニューをクリックすることでScilabのデモ選択画面が開きます。
開いたところが以下に。別件シリーズで一番末尾の「Xcosのデモ」をさらっています。Xcosの場合はデモが開いてもXcosのフローが開かれるだけで、XcosでRUNしないと動作は開始されません。しかし、それ以外のデモについては即座にデモが走り始めるようです。
今回は、「信号処理」からその最初の「スペクトル推定」を選択すると以下のようなウインドウが開きます。
お惚け老人にも、何か正規化されたスペクトルのグラフ、であることは分かりますが、トートツにグラフ見せられてもナンジャラホイという感じっす。コンソールを見ると、
というプロンプトがでてます。ボタン(Enterキーですが)を押してみるとこんな感じ。
さらにもうイッチョ、ボタンを押せと表示されるので押したところがこれ。
デモのソースの在処
Scilabのインストールパス内のどこかに「実体」がある筈なので探してみました。上記の「信号処理」>「スペクトル推定」については、手元のバージョンでは以下の場所に「オリジナルのソースと思われるもの」が格納されてました。
Scilabのインストールパス\modules\signal_processing\demos\spect.dem.sce
ただし、デモを選択したときに走るものとは明らかに違うところがある感じです。上記の「ソース」のグラフタイトルなどは全て英文表示、一方、上記のデモ実施例では上2枚のグラフのタイトルが日本語です。どうもデモでは一部日本語化した後で、バイナリにコンパイルしたものを走らせている?ような。お惚け老人の勝手な想像っす。
でもま、実際に実施している処理そのものは上記のソース通りと思われるので、何をやっているんだかソースを読んでみました。信号処理素人老人が理解したところが以下に。
-
- Whiteノイズを生成し、FIRローパスフィルタをeqfir関数で生成したものを適用している。
- 上記のフィルタ後にFFTかけて、第1の「データスペクトル」のグラフを描いている。
- さらにpspect関数を使って、Welchの平均ペリオドグラム法によるスペクトル推定を行って、第2のグラフを描いている
- 最後にcspect関数を使って、相関法によりやはりスペクトル推定を行って、第3のグラフを描いている
いいのかな、そういうことで。それにつけても信号処理素人老人にはWelchの平均ペリオドグラム法とかナンジャラホイ状態です。
Google Gemini様光臨
いつもお世話になっておりますGoogle Gemini様が最近アップデートされたみたいです。無料で使わせていただいております下々からも、
-
- 2.0 Flash Thinking (experimental)
- Deep research
などが使えるようになってました。太っ腹だな。別件で早速 Deep research使ってみましたが超強力。人間がやったら数日かかりそうな調査レポート(立派なものです。お惚け老人などの及ぶところではありませぬ)を数分程度で仕上げてご提示いただけます。もはや人間など要らんな。
さて今回は、信号処理素人老人にはサッパリなところを 2.0 Flash Thinking (experimental)様にご解説願いました。
まずはパワースペクトル密度(PSD)について(以下は結果の一部抜粋です。黄色のマーカは当方が描き加えたものです。)
つづいて、Welchの平均ペリオドグラム法についてお伺い。(以下は結果の一部抜粋です。黄色のマーカは当方が描き加えたものです。)
Gemini様が懇切丁寧に教えいただいてますが、老人には分かったような、そうでもないような。。。しかし、ScilabのHelpファイルの pspect関数(Welchの平均ペリオドグラム法によるもの)と cspect関数(相関法によるもの)を読んでいて気付きましたぞ。
デモのソースはpspect, cspect関数それぞれのhelpファイル処理例を一本化したもの
であると。なあんだ、最初からそう言ってよ。