アプリ版:「スタンプのみでお礼する」機能のリリースについて

IIRフィルタで疑問があり、過去のページを調べてもわからなかった
ので新たに質問を作りました。

今検討しているのは下記HPの図1のIIRフィルタの1次版(a1,b1,b0のみ)
で伝達関数(Z領域)、サンプリング周波数、各係数が分かっています。
(逆に言うとこれしか分かってません)

ここで上記の資産を流用して新たにサンプリング周波数
だけを変更して使いまわしたいのですが係数をどのように
変更したらよいのか分からずに困っています。
(アナログの伝達特性などはわかりません)

どなたか分かる方、教えていただけないでしょうか。
よろしくお願いします。

http://adsp2191.hp.infoseek.co.jp/misc/009_diffi …
もしくは
http://www.ics.es.yamanashi.ac.jp/~hanawa/asp/pp …(39枚目スライドの右図)

A 回答 (5件)

>係数をカットアンドトライで決めながら元の周波数特性のグラフのような形になるまでひたすら試行するということでしょうか?



一般には「カットアンドトライ」になるのでしょう。
今の例は次数が低いので、三点だけ強引にフィットさせるよう未定係数{a1, b0, b1}を求める、という手もありそう.... 。

EXCEL 使用のシミュレーション例を一つだけ。
  H(Z) = (b0+b1*Z)/(1-a1*Z)
を想定。< z^(-1) を Z と略記 >
  a0=2.0, b1=b2=0.5
のとき、100kHz サンプリングでカットオフ(3dB ダウン)がほぼ 10kHz 。このとき、25kHz にてほぼ 10dB ダウン。

50kHz サンプリングで 25kHz までほぼ合わせようとすると、
  a0=5.0, b1=3.0, b2=1.0
あたりになりそうです。お試しのほどを。
    • good
    • 0
この回答へのお礼

178tallさん、早速の回答ありがとうございます。
ExcelでもIIRのシミュレーションができるんですね!
係数も調べていただいてありがとうございます。

私はMATLABを使用してシミュレーションをやっていて
今ちょっとできない状況なのであとで試してみます。

数回にわたりご解答いただきありがとうございました。

お礼日時:2007/09/22 16:38

蛇足です。


EXCEL 使用のシミュレーション例をもう一つだけ。

  H(Z) = (b0+b1*Z)/(a0+a1*Z)  ただし、Z = exp(-jθ)
として Butterworth 一次特性の H(Z) を想定し、カットオフ(3dB ダウン)だけ合わせた場合です。

(1) サンプリングが 100kHz(θ/π=2)、カットオフ(3dB ダウン)が 10kHz(θc/π=0.2) ならば、
  a0=-2.08, a1=4.08, b0=b1=1.00

(2) サンプリングが 50kHz(θ/π=2)、カットオフ(3dB ダウン)が 10kHz(θc/π=0.4) ならば、
  a0=-0.38, a1=2.38, b0=b1=1.00

-------------------------------
いずれも、ナイキスト周波数(θ/π=1) にて減衰が無限大。

[a0, a1 の算定式]
  K=SQRT{(1+cosθc)/(1-cosθc)}
として、
  a0=1-K
  a1=1+K
    • good
    • 0
この回答へのお礼

178tallさん、お世話になっております。

追加情報ありがとうございました。
a0,a1の算定式に当てはめて計算してみると
確かに178tallさんの係数を求めることが
できました。SIMに関しては後日やって
見ようと思います。

また調べてみるとExcellを使ったIIRやFIR
の設計について書いてある参考書もあるみたい
ですね。今度見てみようと思います。

色々と教えていただきありがとうございました。

お礼日時:2007/09/23 14:21

>同じ回路を違うサンプリング周波数でも流用したい場合は計算式中のサンプリングの項に代入する値を変更し、再計算することでその特性を得られるIIRの係数が求まると思います。

......
>伝達関数が分からず、計算済みのIIRの係数が分かっているのですがここからサンプリング周波数を変えて同じ動作をさせるというのは不可能なのでしょうか?

サンプリング周波数 = 96kHzで使っていた LPF は、ナイキスト周波数(48kHz)を軸として対称な周波数特性ですね。
また、サンプリング周波数 = 48kHz だとそのナイキスト周波数(24kHz)に対して対称な周波数特性になります。
つまり「サンプリング周波数を変えて同じ動作をさせるというのは不可能」じゃありませんか ?

入力スペクトルを 24kHz 以下に制限できるのなら、もとの LPF の 24kHz 以下の周波数特性に近似するという手はありそうですけど。
(もとの IIR 係数に周波数変換を施せば良い、といものではなさそうです。いかがでしょうか)
    • good
    • 0
この回答へのお礼

178tallさん、いつもご解答ありがとうございます。

なるほど。確かにサンプリングを変えると折り返し点が変わって
きてもともとの特性そのままと言うわけにはいかないですね。

今回は96kHzサンプリングで設計されたフィルタ(例えばカットオフ10kHz)
を48kHzサンプリングにして同じく10kHzのカットオフを持たせるという
ことで
入力は24kHz以内に制限されているので問題ないと思います。

>LPF の 24kHz 以下の周波数特性に近似するという手はありそうですけど。
これは係数をカットアンドトライで決めながら元の周波数特性の
グラフのような形になるまでひたすら試行するということでしょうか?

お礼日時:2007/09/22 13:58

>例えば、サンプリング周波数96kHzで使っていたLPFをカットオフ周波数などの特性を変えずにサンプリング周波数48kHzで使いたい .....



ディジタル・フィルタの周波数特性は周期関数ですから、「全特性を変えずに」サンプリング周波数を下げるのは不可能じゃありませんか ?
たとえば、もとの周波数特性の半周期分に近似するとか.... 。

この回答への補足

通常(かどうかは分かりませんが・・)、デジタルフィルタを設計する際、実現したいアナログでの回路での伝達特性が分かると、そこから双一次変換を用いてデジタルフィルタでの係数を算出します。
ここで計算式の中にサンプリング周波数のパラメータがあり、もし同じ回路を違うサンプリング周波数でも流用したい場合は計算式中のサンプリングの項に代入する値を変更し、再計算することでその特性を得られるIIRの係数が求まると思います。

今回はアナログ回路の伝達関数が分からず、計算済みのIIRの係数が分かっているのですがここからサンプリング周波数を変えて同じ動作をさせるというのは不可能なのでしょうか?

補足日時:2007/09/21 11:35
    • good
    • 0

>... サンプリング周波数だけを変更して使いまわしたいのですが係数をどのように変更したらよいのか分からずに困っています。



サンプリング周波数だけ変更し係数をそのままにしておけば、規準化周波数特性は不変です。
係数を変更するとその特性も変わりますから、再計算せねばなりません。

.... って、回答になってないのかな。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

説明が分かりづらくて申し訳ありませんでした。
今回は例えば、サンプリング周波数96kHzで使っていたLPFを
カットオフ周波数などの特性を変えずにサンプリング周波数
48kHzで使いたいということです。

単にサンプリング周波数を変えてしまうと上記例ですとカットオフも
当然低域にずれてきてしまうので係数の変更をしようと考えました。

アナログの伝達関数など分かっていればそこから計算する方法は
分かったのですが、アナログ特性が未知なのでどうしてよいものか・・・。

お礼日時:2007/09/20 14:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!