伝達関数H(z)をプログラムのソースコードの計算式に変換する方法(差分方程式化)は?

デジタルフィルタの伝達関数H(z)=・・・だけ渡されて、

「はい、これプログラムに組んどいて~」

私、固まっちゃいました。

プログラムのソースコードの計算式にどう変換するのか、ようわからんわ。

こういう時に、学生時代に理工系の学部で、ちゃんと勉強したかの差が出てくるんでしょうね。

文系&自己学習してこなかった私は、ググって調べました。

あ~、ようやく

「伝達関数が渡されても、プログラムのソースコードの計算式に変換する簡単な方法」

を教えているサイトを見つけました。

スポンサーリンク

伝達関数H(z)からすぐに普通の計算式(差分方程式)に戻す方法

Z変換?伝達関数H(z)?

とかなんとか言われたって、勉強をしてこなかった私にはさっぱり。

そりゃ、デジタルフィルタの専門書を買って、じっくり勉強をすればいいのですけれども、仕事で今すぐやらなきゃいけないとなれば、そんな猶予はありません。

ググって色々と調べた結果、ここが一番分かりやすい説明をしているサイトをここに引用させて頂きます。

それが、金沢大学工学部のある研究室のページ。

早速、ありがたく、核心の必要最低限の箇所だけ引用させてもらいます(以下、画像の貼り付けは”signal_proc_ch7.pdf”からの引用)

伝達関数からプログラムの式に直せる計算式、専門用語で言うと「差分方程式」っていうんですね。

まずは、伝達関数の分子の方。フィードフォワードに当たる部分↓

伝達関数から差分方程式に変換1

次に分母。フィードバックで構成され、

伝達関数から差分方程式にした時に、「マイナス」の符号に変わる

これが肝ですね。

伝達関数から差分方程式に変換2

(本来は、このような覚え方をしていいのかは別。伝達関数から差分方程式に求める時の法則の手っ取り早い覚え方)

伝達関数の図を手書きで解説してくれていて超親切!

この金沢大学のホームページ、大変親切に手書きで構成図を書いていただいています↓

伝達関数から差分方程式に変換3

伝達関数から差分方程式に変換4

お~、これ、めっちゃ分かりやすい!本当、ありがたいですm(  )m

そもそも、伝達関数H(z)って何に使うんじゃ?

さて、

「そもそも伝達関数?Z変換?こんな分かりにくい式」

と思っている人は私だけではありませんでした。

同じような質問をされている方がいらっしゃいますね↓

【質問】

差分方程式だけ立てればScilab上で、
伝達関数H(z)を使わず、差分方程式だけで
信号処理プログラムが書けるがわかりました。

なのに何故にZ変換で伝達関数H(z)を求める
必要があるのでしょうか?

【回答をされている方のコメント】

z変換は、解析と設計の道具(強力な)ですから、
必ず使わなければならないというものではないと思います。

周波数領域の仕様が与えられているときには、どうしますか。

また、安定性の判定も必要と思いますが、どのように行っていますか。

伝達関数が分かると、判定は簡単です。

要するに、使わなければならないわけではないけれど
使うと便利なことが多いということだと思います。

引用元:https://oshiete.goo.ne.jp/qa/4932829.html

スポンサーリンク

まとめ

専門書を読んだり、過去に大学の講義でしっかりと勉強をしてきた方は、基本的なことで簡単な内容なのかもしれません。

でも、基礎がない人で、でも超急ぎでやらないといけないという時、上記で引用したページが非常に理解しやすいです。

以上、伝達関数をプログラムのソースコードの計算式に変換する方式(差分方程式に変換する方法)のメモ書きでした。

フリーランスITエンジニアの案件・求人情報サイト【ギークスジョブ】

スポンサーリンク

スポンサーリンク




スポンサーリンク




シェアする

  • このエントリーをはてなブックマークに追加

フォローする