手習ひデジタル信号処理(13) STM32F446、IIRフィルタその2、Double型

DoubleBode
Joseph Halfmoon

前回は、IIRフィルタを単精度浮動小数(Float型)で動かして、「予定通り」計算精度の問題を目にすることができました。今回は、同じIIRフィルタを倍精度浮動小数(Double型)での計算に変更するだけで、その問題が消える件をしみじみ味わってみたいと思います。予定通りとは言え、前回結果と比べると魔法のよう。 “手習ひデジタル信号処理(13) STM32F446、IIRフィルタその2、Double型” の続きを読む

手習ひデジタル信号処理(12) STM32F446、IIRフィルタその1、Float型

IIRdirBLK
Joseph Halfmoon

今回から、IIRフィルタに入ります。前回までのFIRフィルタに比べると、計算負荷(あるいは回路規模)は小さくなるけれども、「いろいろ」あって難しい、と。ちょっと上級生になった感じで嬉しいです。まずは、基本形を出発点に、さっそく計算精度の問題の一端を垣間見ることになるみたいです。浮動小数点処理でもグラグラするのね。

“手習ひデジタル信号処理(12) STM32F446、IIRフィルタその1、Float型” の続きを読む

手習ひデジタル信号処理(11) STM32F446、FIRフィルタその3,直接形Class

FirDirclassEC
Joseph Halfmoon

前回前々回とFIRフィルタで特性も同じ。しかしフィルタを構成する形は異なりました。しかし今回は前々回と形も同じ。違うのはソースコードの書き方のみ。折角のC++のコンパイラだし、「クラス」を使わずにはいられないっと。「テンプレート」もね。確かに見通しよくなるけれど、年寄りはC++には染みついた抵抗がある。 “手習ひデジタル信号処理(11) STM32F446、FIRフィルタその3,直接形Class” の続きを読む

手習ひデジタル信号処理(10) STM32F446、FIRフィルタその2、転置形

FIR_filter_transposed_BlockDiagram
Joseph Halfmoon

前回はFIRフィルタ「直接形」ということでその結果にちょっと感動。今回は同じことを「転置形」でやれ、との思し召しです。いくら感動の結果でも同じ筈。「カッタリ~」などと不埒な事を言っていては修行になりませんぞ(手習ひか。)前回のプログラムを書きなおし、F446に書き込んで実験いたしました。まあ、結果は変わらんケド。

“手習ひデジタル信号処理(10) STM32F446、FIRフィルタその2、転置形” の続きを読む

手習ひデジタル信号処理(9) STM32F446、FIRフィルタその1、直接形

FIR1_BodeEC
Joseph Halfmoon

今回からいよいよデジタル信号処理らしい「手習ひ」に入れます。その最初はFIRフィルタです。まずは素直な「直接形」の実装でその威力をシミジミ味わえ、という感じでありましょう。アイキャッチ画像に振幅特性を示しましたが、いい感じじゃないでしょうか。こちらは書いてあるとおりにやっただけなのですが、ちょっと感動。

“手習ひデジタル信号処理(9) STM32F446、FIRフィルタその1、直接形” の続きを読む

手習いデジタル信号処理(8) STM32F446、巡回型移動平均3/3

STM32F446_DUT
Joseph Halfmoon

前回から引き続きの「巡回型移動平均」今回の3回目で完了であります。目出度い、ようやく次回はFIRフィルタに進めます。しかし、3回目、見た目は前回とほとんど同じ画像ばかり。2回目と3回目、唯一の変化は、積分を浮動小数点で計算するか整数で計算するかの違いのみ。信号処理的には「大きな一歩」に思えますが、見た目は同じ。 “手習いデジタル信号処理(8) STM32F446、巡回型移動平均3/3” の続きを読む

手習ひデジタル信号処理(7) STM32F446、巡回型移動平均2/3

MOVING_AVG2_MOD_BlockDiagram
Joseph Halfmoon

前回から引き続きの「巡回型移動平均」の2回目は、「巡回型に潜む魔物」を「かいまみる」予定でした。しかし魔物の召喚に失敗した模様。フツーに動いてしまいました。これではいけない、と無理やり魔物を登場させてみましたが、本当に無理やり、何やっているの?という感じ。こういう意外な挙動も「巡回型」?

“手習ひデジタル信号処理(7) STM32F446、巡回型移動平均2/3” の続きを読む

手習ひデジタル信号処理(6) STM32F446、巡回型移動平均1/3

BodeMAVG_CYC1
Joseph Halfmoon

前回は非巡回型移動平均で単刀直入、分かり易かったです。今回「から」3回は巡回型移動平均です。3回分なのは、三上先生のご方針が、「巡回型」でも同じことができることを示したのち、「巡回型に潜む魔物」を垣間見、さらに整数処理の「黒魔術」の一端に触れるという流れなのかな、と忖度した次第。ホントか?

“手習ひデジタル信号処理(6) STM32F446、巡回型移動平均1/3” の続きを読む

手習ひデジタル信号処理(5) STM32F446、非巡回型移動平均

MovingAVG_BlockDiagram
Joseph Halfmoon

三上直樹先生著、工学社『「Armマイコン」プログラムで学ぶデジタル信号処理』で手習ひさせていただいとります本シリーズもようやくデジタル信号処理っぽいボード線図が出てくるようになりました。わたしゃ嬉しいよ。といっても今回は非巡回型移動平均、名前は厳めしいですが「普通の移動平均」でやんす。

“手習ひデジタル信号処理(5) STM32F446、非巡回型移動平均” の続きを読む

手習ひデジタル信号処理(4) STM32F446、最初はIIRフィルタ?

IIR1st
Joseph Halfmoon

信号処理素人の個人の感想ですが、デジタル信号処理の入門書の多くはFIRが先、IIRが後という順番じゃないかと思います。IIRは難しそうだからかな。でも実装するとなるとIIRの方が簡単だったりして。ところが、三上先生本では、先にIIRが登場、どっちが先でもいいっちゃいいですが。まずは前回プログラムを「チョイ変」して1次のIIRフィルタをしみじみ?味わってみたいと思います。

“手習ひデジタル信号処理(4) STM32F446、最初はIIRフィルタ?” の続きを読む

手習ひデジタル信号処理(3) STM32F446、DAのアップサンプリング

NUCLEO-F446RE
Joseph Halfmoon

シリーズ3回目ともなり、ようやく今回はちょっとデジタル信号処理っぽいところに入れます。とはいえ、まずは「動かして効果を実感してみよ」という感じです。実際の信号処理は裏のライブラリで処理されているものを使っているだけでお勉強はまだ後です。しかしま、衣の下(鎧ですぞ)がようやくチラチラしてきました。

“手習ひデジタル信号処理(3) STM32F446、DAのアップサンプリング” の続きを読む

手習ひデジタル信号処理(2) ADからDA、割り込み方式、STM32のハードの裏とり?

STM32_AFE
Joseph Halfmoon

前回はADからDAへの「垂れ流し」ポーリング方式を勉強させていただきました。今回は割り込み方式です。そんな悠長に刻んでいたら死ぬまでに読み終わらない、とも思ったのですが、ちょっと立ち止まってSTM32F446REのハードを確認しておくことにいたしました。ロウレベルなところが気になると夜も眠れませぬ。

“手習ひデジタル信号処理(2) ADからDA、割り込み方式、STM32のハードの裏とり?” の続きを読む

手習ひデジタル信号処理(1) ADからDA、ポーリング方式をなぞってみる

AD2DApollingDUT
Joseph Halfmoon

デジタル信号処理を学び直すべし、ということで三上直樹先生著のご本を購入部品も購入し回路を作成、そして関連の雑誌記事発見、と準備に3回もかけてしまいました。いよいよネタバレにならない程度に本文を学んでいきたいと思います。まずはプログラムがビルドできるところからかな。インポートできるみたいだし、何もすることがない?

“手習ひデジタル信号処理(1) ADからDA、ポーリング方式をなぞってみる” の続きを読む