- 締切済み
フィルタの定義
よろしくお願いします。 ある関数hがフィルタであることを証明するためには、線形性と(時)不変性を示せばよいですね。 質問は線形性の定義です。 入力をf1(t1), f2(t2)、出力をg1(t1),g2(t2)、 i=1,2として gi(ti) = sum(k) fi(k) h(ti-k) とします。 a,bを任意の実数とすると、線形性は sum(k) [ { a f1(k) + b f2(k) } h(ti-k) ] = a sum(k) [ f1(k) h(ti-k) ] + b sum(k) [ f2 h(ti-k) ] でよいのでしょうか? 疑問は、右辺のf1の変換を求める際にf2が考慮されない(逆も然り)ですね。しかし、左辺ではf1の返還を求める際にf2が考慮されると思うのです。 本によれば、相異なるf1とf2に対し特定のtにおいてこの定義式が示されていたり、異なるt1,t2に対して f1(t1)とf2(t2)またはf1(t2)を用いて示されたりしており、混乱してきました。 どうぞよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- dedenden
- ベストアンサー率52% (9/17)
「片方の入力に対しもう片方の入力からの影響が反映される」と書いていることの意味がいまひとつわからないです。 線形システムは、入力が二つの入力の和で表されるとき、「片方の入力に対する出力」と「もう片方の入力に対する出力」が相互に影響がないかのように振舞うシステムといえます。繰り返しになりますが、式で書けば以下になります。 h[f1(k)+f2(k)]=h[f1(k)]+h[f2(k)] 例えば、上式の左辺のf1(k)が変化した場合、右辺ではh[f1(k)]の部分だけが変化し、h[f2(k)]は変化しません。線形システムとはそういうものです。 マイクとスピーカからなる遠隔に音声を伝える装置(線形システム)を例に挙げてみます。入力音声として二人の人が同時に話している場合を想定します。この時にスピーカから出る音は、各一人の人が話したときに出る音の和になります。仮に片方の人の声をさらに別の人の声に変えたとしても、出力に含まれるもう一人の人の声は変化しません。これが線形システムの振る舞いです。 ただし、実在するマイクとスピーカはある程度の非線形性を持っているため、二人の声の出力は、必ずしも各一人の人の声の出力の和に完全には一致しません。あくまでも近似的に線形システムのように振舞うだけです。
- dedenden
- ベストアンサー率52% (9/17)
まず、一般にフィルタという場合には、必ずしも線形や時不変である場合に限定されてはいません。非線形フィルタや線形時変フィルタは、実用上もよく利用されるフィルタです。 「フィルタであることを証明する」とは入力時系列を別の出力時系列に変換するマッピングが存在することを証明するということになるのでしょうか?正直、どんな入出力関係が与えられたとしても、それを実現するフィルタは無数に存在することが示せるように思います。 次に、線形性の定義について説明します。まず、フィルタhの入出力を以下のように記述するとします。 g(k)=h[f(k)] このフィルタが線形であるとは、次の性質を満たすときです。 h[a*f(k)]=a*h[f(k)] h[f1(k)+f2(k)]=h[f1(k)]+h[f2(k)] すなわち、入力が定数倍されると出力も定数倍される、および入力が二つの時系列の和で表されるとき出力は各時系列に対する出力の和で表されるということです。 質問に書かれている以下のフィルタの式は代表的な線形フィルタの一種であるfir フィルタの定義式です。 h[f(k)] = sum(k) f(k) h(ti-k) このフィルタの線形性は、以下のように示せます。 h[a*f(k)]=sum(k) (a*f(k)) h(ti-k) =a*sum(k) f(k) h(ti-k) =a*h[f(k)] h[f1(k)+f2(k)]=sum(k) (f1(k)+f2(k)) h(ti-k) =sum(k) (f1(k)h(ti-k)+f2(k) h(ti-k)) =sum(k) f1(k) h(ti-k)+sum(k) f1(k) h(ti-k) h[f1(k)]+h[f2(k)]
お礼
ありがとうございます。 私が研究しております工学の分野では、(時)不変性と線形性を満足する線形システムを考えることが多く、このようなシステムをフィルタとよぶようです。大変乱暴な議論ではありますが、線形システムがconvolutionの形で表すことができることをそのシステムがフィルタであることの必要十分条件とすることも多いようです。もちろん、この命題が厳密に成立するためには条件が必要だとは思いますが。 直感的に感じた疑問として、ある関数f(工学の分野では信号と表現することが多いようです)を2つの関数に分け、それをf1,f2としましょう。fをシステムに入力すると各要素からの影響が計算されますね。しかし、f1,f2に分けますと、f1はf2からの影響が含まれず、線形性が成り立たないように感じられるのです。しかし、この直感に矛盾があるようにも「感覚的に」感じられもします。
補足
sum(k) {f1(ti-k)h(k) + f2(ti-k)h(k)} = sum(k) f1(ti-k)h(k) + sum(k) f2(ti-k)h(k) と書くとなんだか片方の入力に対しもう片方の入力からの影響が反映されないように見えますが、sum(k) sum(k) {h(ti-k)f1(k) + h(ti-k)f2(k)} = sum(k) h(ti-k)f1(k) + sum(k) h(ti-k)f2(k) と書くと、フィルタで特定の時間を固定し、両方の入力をラスタするわけですから、両方の入力の影響を計算できる感じがします。 この直感に間違いは無いでしょうか?
お礼
ありがとうございます。 なるほど、確かに私は勘違いをしていました。 ご指摘の例で、マイクとスピーカーの距離を近づけると「キーン」という音が出ます。この現象を私はよく理解していなかったように思いました。