前回は、基礎を踏み固めるべしとて、Scilabの離散1次元畳み込み、conv関数などを練習しました。1次元をやったのだから、次は2次元だよね、という流れで今回は離散2次元畳み込みのconvol2d関数練習してみます。改めて眺めてみると1次元のときとはスタイルが微妙に違うんでないかい?ひと手間かけろと?
手習ひデジタル信号処理(134) Scilab、conv、convol、離散一次元畳み込み
忘却力のお惚け老人も見た瞬間は分かった気になるので毎日のようにYou Tube様など視聴させていただいております。今回はコンボルーションについての解説動画を見ていて思い至りました。そういえばScilabのconv関数、「ちゃんとした」使い方を確認してなかったなと。分からないまま使っていた砂上の楼閣状態?
手習ひデジタル信号処理(133) Scilab、伝達関数の周波数応答のピーク検出、一撃よ
だらだらとピーク検出続けてます。前回は信号処理のプロは「1行でピーク検出」書けると感動。素人のお惚け老人には思いつきませぬ。今回はツボにハマるとScilab関数で一撃でピーク位置を検出できるの件です。ツボは伝達関数から周波数応答を求めよう、なんて時です。ScilabのExampleをなぞってみただけだけれど一撃。お楽。
“手習ひデジタル信号処理(133) Scilab、伝達関数の周波数応答のピーク検出、一撃よ” の続きを読む
手習ひデジタル信号処理(132) プロは1行でピーク検出。Scilabでなぞってみた
前回も「素朴なピーク検出」続けてしまいました。しかしネット上を漁っていて発見、「プロの人は1行でピーク検出しちゃうんだ」。信号処理も素人ならScilabも素人のお惚け老人は驚愕。さっそく「真似っこ」してみようと。しかし、元のコードはMATLAB、Scilabは「似ているけど、じゃない」方なのでそのままでは動きませぬ。
“手習ひデジタル信号処理(132) プロは1行でピーク検出。Scilabでなぞってみた” の続きを読む
手習ひデジタル信号処理(131) Scilab、素朴なピーク検出、その2
前回、自前の「素朴なピーク検出関数」を作製、FFT結果に適用し所望のドップラー効果のピーク周波数位置を求められました。しかし、ありがちな「ピークが台地(メサ)状だったらどうよ」問題に対する挙動を確かめてません。お惚け老人は自分で作っておきながら既にロジックは忘却力の彼方。実際に確かめてみるしかないっと。どうなのよ。
“手習ひデジタル信号処理(131) Scilab、素朴なピーク検出、その2” の続きを読む
手習ひデジタル信号処理(130) Scilab、素朴なピーク検出、その1
前回は「実験材料の音源」である救急車のピーポー音をFFTしてピークとなる周波数の抽出を試みました。単純な最大値抽出だったので1周波数のみ検出。ピーポーで2波長、それにドップラー効果がかかっているので合計4波長が観察できるはずです。今回は「素朴なピーク検出関数」を自前で拵えて音源波形に適用してみたいと思います。
“手習ひデジタル信号処理(130) Scilab、素朴なピーク検出、その1” の続きを読む
手習ひデジタル信号処理(129) Scilab、音源(救急車)の周波数を求めてみる、その1
前回「実験材料の音源」として救急車のピーポー音(サイレン)を作製。遠くから近づく様子が聞き取れて悦に入りました。さてその処理の第一歩として音源の周波数を求めたい、と。FFTかけてグラフ上で読み取れば一目瞭然なんでありますが、関数の処理結果で数値として取得したいです。とりあえずの関数作ってみたけれども機能不足デス。 “手習ひデジタル信号処理(129) Scilab、音源(救急車)の周波数を求めてみる、その1” の続きを読む
手習ひデジタル信号処理(128) Scilab、音源(救急車)、ドップラー効果、距離減衰有
信号波形を処理した結果をグラフで見るのも良いのですが「実体験」したいです。それには音にして耳で聞くという方法もありかと。音声データの入出力は第96回、第97回で練習済。今回は処理対象の「音源」として救急車のピーポー音(サイレン)を作製してみましたぞ。一応、ドップラー効果あり、距離減衰あり。なんちゃってだけど。 “手習ひデジタル信号処理(128) Scilab、音源(救急車)、ドップラー効果、距離減衰有” の続きを読む
手習ひデジタル信号処理(127) Scilab、filter関数で時間波形をBPフィルタ
前回、実際に時間波形に対してフィルタ処理を行うfilter関数の内部「相当のハズの」ブロック図を描きました。お惚け老人的には腑に落ちた感じ(ホントか?)今回は実際に「時間波形」をIIRフィルタしてみます。フィルタ係数は「アナログフィルタ」との関係性がつけやすいと思われる iir() 関数(第123回)で求めてみます。
“手習ひデジタル信号処理(127) Scilab、filter関数で時間波形をBPフィルタ” の続きを読む
手習ひデジタル信号処理(126) FIR、IIR、直接形、転置型、継続形ブロックダイアグラム
前回までで、Scilab上で使用できるFIR、IIRフィルタの設計関数を一通り「なでた」感じがします。そこで今回からは求めた係数を使って実際に時間波形にフィルタを適用するfilter関数をと考えました。しかし、フィルタ関数のブロックダイアグラムを考えたら引っかかりました。今回は「ブロックダイアグラム祭り」だあ。
手習ひデジタル信号処理(125) Scilab、yulewalkでIIRフィルタを設計
前回、前々回と練習してきたIIRフィルタ設計関数ですが、今回はその3回目。練習するのはyulewalk()関数です。「最小二乗フィルタを設計」とHELPページのタイトルに掲げられてますが、それをするのに使っているのがYule-Walker方程式みたいです。またメンドクさそうな奴を関数名に頂いておる設計関数だよ。
“手習ひデジタル信号処理(125) Scilab、yulewalkでIIRフィルタを設計” の続きを読む
手習ひデジタル信号処理(124) Scilab、eqiirでIIRフィルタを設計
前回はIIRフィルタの設計に「使えそうな」設計関数を列挙。その上で以前に使用したことのあるiir()関数をおさらいしてみました。アナログフィルタを双一次変換して離散的なデジタルフィルタにする関数ね。今回はeqiir()関数を練習してみます。歴史と伝統?の計算アルゴリズムsyredi関数のフロントエンドみたいです。 “手習ひデジタル信号処理(124) Scilab、eqiirでIIRフィルタを設計” の続きを読む
手習ひデジタル信号処理(123) Scilab、IIRフィルタの設計関数、おさらい
前回まででScilabに存在するFIRフィルタ設計用の「代表的と思われる」関数4種を手習ひしてみました。FIRをやった(やっつけた)のであればIIRをやらないという分けにはいかんでしょうな。まずは設計関数を列挙。でもね、IIRフィルタの設計関数、過去回でやってみているのです。第116回ね。まずはそこのおさらいから。
“手習ひデジタル信号処理(123) Scilab、IIRフィルタの設計関数、おさらい” の続きを読む
手習ひデジタル信号処理(122) Scilab、eqfirでFIRフィルタを設計
過去3回、ScilabのFIRフィルタ設計関数3種について同条件(33次、ローパス、正規化カットオフ周波数0.2Hz)でフィルタ係数を求めてきました。今回は第4の設計関数 eqfir を使用してみます。eqfirは「ミニマックス近似」ということなので、インパルス応答を近似した多項式の一番良さげなやつで求めたってこと?
“手習ひデジタル信号処理(122) Scilab、eqfirでFIRフィルタを設計” の続きを読む