ディジタル信号処理の基礎 - 東京電機大学 音響信号処理研究室

講習概要 (基礎編)
「ディジタル信号処理の基礎」
1.アナログ信号とディジタル信号
2.時間領域と周波数領域
2008. 11. 6,7
3.線形システム
東京電機大学
4.ディジタルフィルタ
金田 豊
[email protected]
音の伝送 と ディジタル信号処理
講習概要 (発展編)
5.伝達関数による対象系のモデル化
ディジタル
アナログ
A/D
6.インパルス応答の測定法
電気
7.逆フィルタ
8.適応フィルタとその応用
マイク
表示
処理
伝送
D/A
アナログ
圧縮
雑音除去
認識
音
電気
蓄積
スピーカ
例えば、携帯電話
音
9.受音系における信号処理の応用
1.アナログ信号とディジタル信号
A/D(アナログ-ディジタル)変換の手順
① A/D(アナログ-ディジタル)変換
② 標本化定理
③ D/A(ディジタル-アナログ)変換
④ 最近のA/D,D/A 変換
アナログ信号
→ 標本化(サンプリング)
→ 量子化
⑤ 標本化定理再考
⑥ ディジタル世界とアナログ世界
→ ディジタル信号
1
標本化(サンプリング)
アナログ信号(連続信号)
一定の周期 Ts で アナログ信号x(t)
の値を求めること
x(t)
Ts: 標本化周期
(fs=1/Ts: 標本化周波数)
Ts
t
0
●
x(t)
時間
01
Ts
2Ts
3Ts
・ 時間とともに値が連続的に変化
標本化した信号 = 離散(時間) 信号
離散(時間)信号 x(k)
x(2)
1
離散信号からディジタル信号
x(5)
●
●
x(1)
0
3
2
t
●
・ どの時刻においても値を持つ
t:実数
Ts
4Ts
●
4
k
5
離散信号 = 実数の数列
{x(0), x(1), x(2), ……}
●
●
x(3)
x(4)
x(0)
・ 時間が整数値 (Tsを単位) → 整数 kで表す。
・ アナログ時間との対応は t=k・Ts
「n」など
も使う
・ 振幅は実数値であるので
離散信号は実数の数列
量子化
ディジタル信号 = 整数の数列
{x(0) ’, x(1) ’, x(2) ’, ……}
まとめて
{x(0), x(1), x(2), x(3), ……}
x(k)
と表す
例){-5.9, 0.1, 3.29, -2.333, ……}
デジタル信号の実用的データ形式
(離散信号)実数値振幅 → 整数値振幅(ディジタル信号)
量子化単位 Δ の整数倍の値
4
例)
( コンピュータ や CD の内部で、ディジタルデータは、
N個の1と0の組み合わせで表現されている)
量子化単位 Δ
量子化
●
●
3
●
離散
ディジタル
2
●
1
例 ) 語長 N が 16 (=16ビット) のデータ
= ディジタルオーディオ(CDなどの)データ
0 1 0 0 1 1 10 1 0 1 1 0 1 0 0
2バイト整数形式 (short int) で
0
時間
離散 x(k) : {1.41Δ,2.62Δ, 3.3Δ,… } Δで割って
↓
↓
↓
四捨五入
ディジタル x‘(k) :{ 1, 3, 3, ……… }
- 215 ~ (215-1) → -32768~+32767
を表現
その他) 8ビット(電話)、ほか
2
クイズです
クイズです
第2問
第1問
アナログ量は
ディジタル量は
2進数
で表され、
10進数
で表される
次の量のうち、ディジタル量とみなしても
よいものに○を、みなせないものに ×
をつけよ。
(1) 200
(2) 0.13
正しい(○) 誤り(×)
(3) 3/7
標本化
誤差はない(標本化定理)
量子化
量子化誤差
ディジタル信号
量子化誤差
量子化単位 Δ
アナログ信号
(
量子化ステップ幅 )
AD変換時の情報損失(誤差)
●
4
●
3
離散
ディジタル
●
2
Δ
●
1
時間
0
一般的な信号に対する量子化誤差はランダムな雑音
→ -Δ/2 ~ Δ/2の間で一様分布 (量子化雑音)
0 1 0 0 1 1 10 1 0 1 1 0 1 0 0
雑音パワー Δ2/12
-Δ/2
量子化単位Δ と 量子化雑音の具体例
Δ/2
→ 導出は付録
量子化雑音とSN比
例 ) 16-bit 量子化
信号の
+10V
想定最大値
215 等分
物理量
(電圧)
例) 16ビットデータで表される、最大振幅正弦波 x(k)
+32767
ディジタル量
216 等分
0
215 等分
信号の
想定最低値 -10V
Δ =10V/32768
≒ 300μV
-32768
量子化雑音の実効値
√ Δ2/12 ≒ 100μV
x(k)= 215 Δ sin ωk
信号 x(k)のパワーは (振幅の2乗の1/2)
Px = 229 Δ2
一方、量子化雑音のパワー Pn=Δ2/12
SN比(Px /Pn)は 約 98 dB
右下に、関連する
テキストのページを
表示します。
L ビット最大振幅正弦波のSN比
≒ 6L + 2 [dB]
( p.69)
3
ビット数に関する補足
[ A/D変換時の注意 1 ] 過大入力
過大入力 (オーバーフロー)
・ 16ビットでADしても、計算機内部での演算は
24ビット,32ビット、と、ビット数を増したり
また、浮動小数点で行う。
(桁落ちや切り捨てなどの 演算誤差の影響を
軽減するため)
→ ハードクリップされる
+最大
-最大
●処理結果に重大な影響 (よくやるミスの一つ)
⇒ 対策例: 測定結果をグラフ表示して、視覚で確認
●PCのA/Dでは、最大値より小さな値でクリップ
される場合がある! (アナログ保護回路)
直流成分の影響の例
[ A/D変換時の注意 2 ] 直流成分(バイアス)
n2
n2
b
0
0
n1
n1
b
● 処理結果に重大な影響
● 例えば,
・ 信号の2乗和をとってパワーを計算する場合
・ 信号間の相関を計算する場合、など
n1,n2 はお互いに
関係の無い値をとるので
無相関になる
しかし、n1,n2 に直流値
b が加わると、無相関に
はならない。
n1が大きければ n2 も大きいという関係がついてしまう
信号処理暗黙の前提
バイアス(直流成分)=ゼロ は、
信号処理の暗黙の前提
であることが多い
離散信号 と ディジタル信号
標本化
標本化 + 量子化
時間方向での
離散化
時間 + 振幅方向
での離散化
例えば、音も直流はゼロ
A/D したデータに信号処理を行う場合、
まず直流成分を除去しておくほうが無難
(平均値を全体から引く、などで)
4
標本化と量子化
離散信号
ディジタル信号
(注意) 通常、
ディジタル信号処理理論で扱うのは、
ディジタル信号ではなく、離散信号
・ ディジタル信号処理の理論解析は、通常
離散信号で行う。(暗黙の慣行)
x(k)
整数では割り算の取り扱いが面倒なので
実数値の離散信号を使用
→ 厳密な本は 「離散時間信号処理」 と呼んでいる
( p.2,p.13)
ただし、多くの場合、
離散信号≒ディジタル信号 と見なせる
現実的には、
離散信号=真の信号値+測定誤差(電気的雑音など)
である。
一般には、量子化雑音 ≪ 測定誤差であるので、
量子化雑音
16-bit
8-bit
0.5
0
0
-0.5
-0.5
-1
0
5
ディジタル信号 ≒ 離散信号
例外)有限語長演算の問題 (桁落ちなど)
フィルタ設計への影響 (極・零位置の誤差)
本講習では、ディジタル信号と離散信号の区別をしない
4-bit
0.5
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
10
2-bit
ms.
15
20
-1
0
5
10
15
20
0
5
10
ms.
15
20
1.5-bit zero-cross
0.2
(3値)
0.1
0
-0.1
0
5
10
ms.
15
20
-0.2
A/D 変換 (まとめ)
x(t)
x(0)
x(1)
A/D
変換器
x(2)
x(3)
標本化+量子化
・
・
◇ 連続信号を入力すると(整数)数列を出力
◇ 信号処理を考えるときは実数値数列(離散信号)を
用いる =量子化雑音を無視
☆ 過大入力と直流成分には気をつけよう
5
標本化周波数
1.アナログ信号とディジタル信号
① A/D(アナログ-ディジタル)変換
x(t)
Ts
② 標本化定理
t
0
1
③ D/A(ディジタル-アナログ)変換
④ 最近のA/D,D/A 変換
Ts: 標本化周期
(または、サンプリング周期)
⑤ 標本化定理再考
1/Ts = fs: 標本化周波数
(または、サンプリング周波数)
⑥ ディジタル世界とアナログ世界
1秒間のデータ数を表す
標本化定理 (サンプリング定理)
信号の帯域幅
標本化定理 (周期で表せば)
fmax
fmax < fs/2
0 Hz からの場合、信号に含まれる最大周波数
標本化周波数
fs
1/Tmax < 1/(Ts・2)
fs > 2・fmax
または
Tmax
Ts
2<
fmax < fs/2
この条件を満たせば、(理論的には)元の情報は
失わない。( = 原信号を再現できる)
周期信号の1 周期に2回以上、
標本化すれば、元の情報は失わない。
標本化周波数の例
信号の パワースペクトル
信号が、どのような周波数成分を
どの程度含んでいるか、を表す図
fmax < fs/2 を満足
60
例)
60
「あ」
50
50
40
40
30
30
振幅 [dB]
2)オーディオ
信号周波数の上限 fmax = 20 kHz
標本化周波数
fs = 44.1kHz,48kHz
振幅 [dB]
fmax < fs/2 を満足
パワー (
成分の大きさ)
1)電話
信号周波数の上限 fmax = 3.4 kHz
標本化周波数
fs = 8kHz
20
10
20
10
0
0
-10
-10
-20
0
「い」
500
1000
1500
2000
周波数 [Hz]
2500
周波数 f
3000
3500
4000
-20
0
500
1000
1500
2000
周波数 [Hz]
2500
3000
3500
4000
(p.10, 23)
6
標本化定理が満たされないと
折り返しひずみ の例
折り返し歪み(エリアシング)が発生
(3/4)fs → (1/4)fs
パワー
パワー
パワー
信号の
パワー
スペクトル
1
―fs
2
0
周波数
f
0
パワー
f
0
f
1
3
―fs ―fs
2
4
0
fs → 0
1
―fs
2
1
1
―fs 以上の周波数が含まれると、0~ ― fs の区間に折り返される
2
2
0
1
―fs
2
fs
f
1
― fs
2
0
f
fs
不自然な雑音になる
( p.7)
折り返しひずみの発生(1)
周波数が (3/4)fs の信号
fs: 標本化周波数
標本化周期 Ts
f
1
1
3
―fs ―fs ―fs
4
2
4
(3/4)fs
標本化
t
t
1
区別がつかない
(1/4)fs
t
1
信号の周期 T
周期Tが
周波数が (3/4)fs
1
4 Ts
=
(3/4)fs
3
3
T
Ts=
4
折り返しひずみの発生(2)
3
1
― fsの信号と ― fsの記号が同じディジタル信号になってしまう
4
4
折り返しひずみ
アナログ世界から見た折り返しひずみ
周波数が fs の信号
1
1
t
t
周波数が fs の信号は、直流と同じディジタル信号になってしまう
D/A
LPF
D/A
LPF
1
同じ
1
― fs
4
区別がつかない
t
A/D
t
1
(直流)
1
― fs
4
3
― fs
4
( fs )
A/D
同じ
1
1
― fs
4
f >(1/2)fs の信号が、A/Dされ、D/Aされると
(1/2)fs で折りかえった信号に変化する
折り返しひずみ
7
折り返し防止フィルタ
入力
折り返し防止
(低域通過)フィルタ
現実的な折り返し防止フィルタ
ゲ
1
イ
ン
折り返しひずみを防ぐためには、
A/D変換器の前に、
(fs/2) 以上の成分を除去する
「折り返し防止フィルタ」を設置
ゲ
1
イ
ン
周波数
0
遮断周波数は
fs/2より小さい
例) fs=8kHz
遮断周波数=3.4kHz
A/D
fs/2
fs/2
急峻なフィルタは
時間応答が長い
最近は、AD変換器に
一体化されている場合が多い
内部処理による折り返し歪 発生の例
折り返し歪発生原因
◇ 入口
周波数
0
スイープ正弦波(ディジタル信号)
1
◇ 内部処理 !
120
100
0.5
周波数
AD時の帯域オーバー
→ 最近は、AD変換器に一体化されて
いる場合が多いので、考えなくて良い
(というより、選択の余地なし
→ 特性の良いものを選ぶ必要 )
0
-0.5
80
60
40
20
-1
0
10
20
30
40
50
60
70
80
90
100
20
時間
波頭をディジタル処理でクリップ
60
80
100
120
時間
折り返しひずみ
120
100
周波数
0.5
非線形処理による高調波成分の発生 → 後述
(ディジタル信号の掛け算、
波形の非線形加工、ほか)
40
高調波ひずみ
1
0
-0.5
80
60
40
20
-1
0
10
20
30
40
50
時間
60
70
80
90
100
20
40
60
80
100
120
時間
標本化定理 と 折り返しひずみ
(まとめ)
fs > 2・fmax
が、A/D→D/A で原信号を復元するための
必要十分条件(理論的には)。
これ満たされないと
折り返しひずみが発生する
2つのアナログ信号が
同じディジタル信号に
なってしまう現象
8
D/A変換の理論的しくみ
1.アナログ信号とディジタル信号
① A/D(アナログ-ディジタル)変換
ディジタル信号
(数字の列)
② 標本化定理
③ D/A(ディジタル-アナログ)変換
アナログ
信号
パルス列
(波形)
{x(0),x(1),x(2)……}
④ 最近のA/D,D/A 変換
理想
ローパス
フィルタ
理想的
D/A
⑤ 標本化定理再考
⑥ ディジタル世界とアナログ世界
パルスを
なめらかに
つなぐ
D/A (広義)
sinc 関数
(予備知識)
どうやって 「なめらかに」 つなぐ?
y(x)=
sin x
x
=
y
1
x sin x
( 振幅が 1/x の正弦波)
1
x
sin x
元のアナログ波形を
復元するためには ?
(予備知識)
π 2π 3π
x=0 では ?
sinc 関数
x
y(x)= sin
x
ピークの
包絡
波形の復元(1)
1
x
x(0)
y
1
x
0
x(1)
t=0 以外のサンプル点
で、0 となる
x=π,2π,3π,...
で、0 となる
t
原点で高さは1
x(0)の高さを持ち、
0
x
π 2π 3π
標本化周期の2倍の周
期を持ったsinc 関数
x(2)
x(3)
→ x=0 の値は付録
9
波形の復元(3)
波形の復元(2)
x(1)
x(0)
x(0)
x(1)
x(1)の高さを持った
t
sinc 関数
t
x(k),k=0,1,2,... の高さの
x(3)
x(2)
sinc 関数を重ね足し合わせ
ると、原波形が復元される。
x(3)
x(2)
sinc 関数による 「補間 (内挿)」
理想ローパスフィルタ
(p.53)
波形復元の数学的表現
ゲイン
パルス列波形
sinc関数
1
0
0
fs/2
◇ 理想ローパスフィルタとは、
0 ~ (fs/2) の周波数 → ゲイン 1
(fs/2) 以上の周波数 → ゲイン 0
t
(通過)
(阻止)
◇ パルス列を理想ローパスフィルタに通せば、
sinc 関数で補間される
現実のD/A変換器の問題点
パルス列
(波形)
D/A
理想パルスが
出力できない
・ アパーチャ効果
( 保持効果 )
(p.54)
たたみ込み
x(0) x(1)
f
アナログ信号
理想
ローパス
フィルタ
1
理想ローパス
が存在しない
・ fs/2 付近の特性の乱れ
*
t
x(2) x(3)
波形の復元 (補間) は、
パルス列波形と sinc関数との たたみ込み
(= 理想ローパスフィルタ に通す )
最近の変換器では
◇ 最近の変換器 (オーバーサンプリング、∑Δ)
では特性が改善された。
(理想ローパスフィルタをディジタルフィルタ
として近似実現したため)
DAとフィルタは一体化されたので、
フィルタを意識しなくても良くない場合が多い。
・ 折り返し誤差
10
しかし、使用するDAは、一度チェックを
しておいたほうが better
例)
DA
(低域フィルタ
を含む)
ディジタル
正弦波
オシロ
レベルメータ
AD など
◇ 特に fs/2 付近の周波数特性
◇ 特に、パソコン(オーディオ用)の変換器
◇ sinc 関数によるプリエコー発生の問題
(聴覚への影響) (計測用・ 高級品でも)
◇ 効果的なチェック方法については、現在、検討中
近似理想ローパスフィルタの問題
パルス列
(波形)
アナログ信号
近似理想
ローパス
フィルタ
パルス
近似理想
ローパス
フィルタ
1
定常信号に
対しては
OK
非定常信号
(過渡的・パルス的)
に対しては?
プリエコーが聞こえる
場合がある、らしい
右側応答のみを利用したフィルタもある、らしい
DA変換 (まとめ)
理論的には、
ディジタル信号
(数値列)
理想
DA
sinc関数の
理想 たたみ込み
LPF
アナログ信号
パルス列
の再現
現実的には、
・ 古い型では、fs/2 付近の特性の乱れ。
・ 最近は、問題が少なくなったようであるが、
特性をチェックしてから利用することが望ましい。
11
最近のA/D,D/A 変換
1.アナログ信号とディジタル信号
① A/D(アナログ-ディジタル)変換
1) オーバサンプリング方式
② 標本化定理
2) Σ⊿ 方式 (= ⊿ Σ方式 )
(1ビット A/D,D/A)
③ D/A(ディジタル-アナログ)変換
④ 最近のA/D,D/A 変換
⑤ 標本化定理再考
⑥ ディジタル世界とアナログ世界
1) オーバサンプリング方式
オーバサンプリングの効果
信号が含む上限周波数を fm、
標本化周波数 fs が大きくなると、
ディジタル化できる周波数帯域 fs/2 が増加。
標本化周波数 を fs とする。
◇ 基本方式:
fs = 2・fm
◇ オーバサンプリング方式:
fs = 2・fm ×N
(N:2以上の整数)
パワー
目的帯域
0
サンプリング定理で必要とさせる周波数を
上回る周波数でサンプリング
目的帯域
パワー
0
基本方式の
量子化雑音
fm
N倍
fs/2
N・fm
f
(p.57)
利点 その1
目的帯域内の量子化雑音が減少
(fs/2)
fm
利点 その2
量子化雑音は白色雑
音で、そのパワーは
ディジタル化した
帯域内(0~ fs/2)
に一様に分布するの
で、標本化周波数 fsを
増加すれば、目的
帯域内に含まれる量
子化雑音は減少する。
N・fm
f
オーバサンプリングの
量子化雑音
(p.71)
A/D,D/A用のアナログ低域フィルタは低次のものでよい
fm 以上の成分は、
ディジタル化後、
ディジタルフィルタで
除去
パワー
基本方式:
fm と fs/2 が近
いので、急峻な
フィルタが必要
fm
N・fm
f
オーバサンプリング方式:
緩やかな傾斜の
低次のフィルタでOK
12
利点 その3
基本方式との受け渡し
D/A 時 のフィルタの悪影響が改善
標本化周波数が大きくなったので、下図に示すように、
ローバスフィルタの遮断周波数 fc 付近の悪影響
(遅延、リップル、アパーチャ効果など)の影響が小さい
ゲ
イ
ン
1
信号成分
0
fc fs/2
周
波
数
オーバサンプリ
ング方式
基本方式
間引き
1秒間に
N・fs0 個の
1秒間に
fs0 個の
データ
データ
補間
CD規格データなど
例えば、fs0=44.1kHz
○ オーバサンプリング周波数の例
20kまでの信号 → fs=48k → 192kHz
(p.79)
量子化の表現
2) Σ⊿方式 (1ビット方式)
1) MHz 以上もの 高速オーバサンプリング
2) 微分効果で量子化雑音を大幅に低減
3) A/D (量子化器)は 簡単な 1ビット
高速
アナログ
+
-
遅延
(⊿Σ方式とも呼ぶ)
+
-
DA
等価回路
離
散
化
積分
量子化雑音が微分される
1bit
ディジタル
AD
(量子化)
積分
3.43+(-0.43) → 3
3.88+(0.12) → 4
(p.78~)
一つの解釈
アナログ
(四捨五入)
(量子化雑音が加算されて整数になった、
と考える)
(量子化)
DA
微分効果
⊿
3.43 → 3
3.88 → 4
ディジタル
1bit
AD
積分
Σ
例)
(信号の流れ)
∫S
S
S
+
積分
+
- ∫S・z-1
遅延
積分
S
元と同じ
S・z-1
遅延
微分効果
+
+ 量子化雑音
+
-
積分
遅延
微分効果
(雑音の流れ)
N
-N・z-1 + +
N’
「’」は微分
を表す
N’
微分波形
-
N・z-1
量子化雑音
積分
N’・z-1
遅延
N’
13
微分の効果
・ 微分(差分)は高周波域強調 (低周波域抑圧)
d
sin ω t = ω cos ω t
微分結果はωに比例
dt
d2
sin ω t = ω 2 (− sin ω t )
ω2に比例
dt 2
量子化雑音微分の有効性
目的帯域内の量子化雑音が大幅に減少
1ビットADでOK
量子化雑音が微分さ
れた結果、雑音のパワ
ーは、帯域内(0~ fs/2)
の高周波域に集中する
ので、目的帯域内の
量子化雑音は減少
する。
パワー
fs はすごく
大きい値
f
fs/2
ノイズシェーピング
オーバサンプリングの
量子化雑音
Σ ⊿方式の画期的な点
Σ⊿方式の
量子化雑音
(p.80, 85)
1.アナログ信号とディジタル信号
◇変換器が1ビットでできるため、
高精度・低雑音のAD,DAを、
安く・小さく実現できる(実用的観点)
◇ 振幅方向ではなく、時間方向での分解能向上
(=サンプリング周波数向上)で
量子化雑音が低減できる (理論的観点)
① A/D(アナログ-ディジタル)変換
※ ただし、A/D 変換器の出力やデータ保存の形式は
⑥ ディジタル世界とアナログ世界
② 標本化定理
③ D/A(ディジタル-アナログ)変換
④ 最近のA/D,D/A 変換
⑤ 標本化定理再考
16ビット(現在の標準的データフォーマット)
に変換されて出力・保存される場合が多い。
ディジタル信号と視覚化
ディジタル信号は数列
{x(0), x(1), x(2), x(3), x(4), ……}
元のアナログ信号は どんな信号?
通常のPC上の描画プロットは、ディジタル信号(数列)を直線で結ぶ
x(k)
x(3)
x(0)
例えば、
{0.85, -0.34, -0.34, 0.85, -0.98, 0.65, ……}
である。
しかし、これでは、直観的にわかりにくいので、
グラフ化 (アナログ化)することが多い。
x(5)
k
x(1)
x(2)
x(4)
14
元のアナログ信号は正弦波
1.5
標本化定理再考(その1)
◇ 標本化周波数 fs は大きい程良い?
1
とりあえず NO:
→ さきほどの例は、グラフの描き方が不適切
0.5
0
グラフ化とは、時間離散のディジタル信号を、
擬似的なアナログ信号として表示して、
視覚的な理解を得ようとするもの
-0.5
-1
-1.5
1 周期に 18 回の標本化
1 周期に 2.6 回の標本化
(>2回)
補間
x(0)
x(3)
x(1) x(2)
x(5)
補間
正確な表示のためには、表示の前に
擬似的なアナログ化(DA)のプロセスが必要
→ 補間
D/A変換の理論的しくみ (再掲)
ディジタル信号
(数字の列)
アナログ
信号
パルス列
(波形)
x(4)
・ 離散時間の間の値を計算により求め、
標本化周波数を上げて、アナログ信号に近づける
・ 「内挿」 「Interpolation」 「オーバーサンプリング」とも言う
{x(0),x(1),x(2)……}
理想的
D/A
・ 標本化周波数の増加率に応じて、
N倍の補間(オーバーサンプリング)、と言う
補間(内挿)の方法
◇ オーバサンプルしたパルスとsinc関数をたたみ込む
(理想LPFによる D→A の補間のシミュレーション)
例) K倍の補間 のための sinc関数
f (k)= sin (πk/K)/ (πk/K)
x(3)
sinc 関数との
たたみ込み
標本化定理 再考(その2)
◇ 補間によって
全ての離散信号は元のアナログ信号に
正確に戻るのか?
→ 補間を行うための注意事項
(例:K=2)
x(0)
理想
ローパス
フィルタ
x(5)
*
x(1) x(2)
x(4)
サンプルの間にK-1個の零
15
補間(10倍)をしてみた
fs/2 近くの正弦波のプロット
サンプル値(○)を結ぶと、「うなり」のように見える。
若干の補間効果はあるが、「うなり波」のまま
f =3821 H z の 正 弦 波 の プ ロ ット , Fs=8000H z
1
1
0 .8
0 .8
0 .6
0 .6
0 .4
0 .4
0 .2
0 .2
0
0
- 0 .2
- 0 .2
- 0 .4
- 0 .4
- 0 .6
- 0 .6
- 0 .8
- 0 .8
-1
補間にも限界があって、
周波数の高い信号には、
より高い標本化周波数が
必要なのか?
-1
0
5
10
15
20
25
30
[s am p le s ]
35
40
45
50
100
問題は補間の品質
補間には品質があるので注意
1
松
0.8
(MATLAB)
1 0 倍 で 補 間 z z = r e s a m ple (y y ,1 0 ,1 )
無限長のsinc関数を
どこまで利用するか?
による差
0.2
0.3
0
-100
100 0
0
π
sinc 関数を長く利用すると-0.1
-0.2
計算時間が大変になる
→ 組み込み関数は、
-30
安・近・短
(デフォルト)
梅
200
130
135
140
145
150
◇ 組み込み関数よりは自作のほうが
安心な場合もある ( ⇔ 欠点は速度)
※ sinc 関数に窓(Hanning など)をかけてから
補間するのも有効
-20
-10
0
π
10
20
30
少し品質の高い補間をしてみた (竹)
まだ「うなり波」のように見える
念入りな補間 (松)
ほぼ一定振幅の正弦波に「見える」ようになった。
s in c 関 数 を 片 側 1 0 周 期 に 。 1 0 倍 で 補 間 z z = r e s a m ple (y y ,1 0 ,1 ,2 0 )
s in c 関 数 を 片 側 1 0 0 周 期 に 。 1 0 倍 で 補 間 z z = r e s a m ple (y y ,1 0 ,1 ,2 0 0 )
1
1
0 .8
0 .8
0 .6
0 .6
0 .4
0 .4
0 .2
0 .2
0
0
- 0 .2
- 0 .2
- 0 .4
- 0 .4
- 0 .6
- 0 .6
- 0 .8
- 0 .8
-1
100
125
◇ 最低限、ヘルプを見て、パラメータを
確認しておくことが望ましい。
(私の反省です)
0.1
-0.4
-200
120
◇ 理想的には、内容を理解して使う
竹
0.2
-0.2
115
◇ 安易に組み込み関数を利用して良しとしない
0.5
0.4
110
組み込み関数の利用に当たって
0.6
0.4
105
-1
105
110
115
120
125
130
135
140
145
150
100
105
110
115
120
125
130
135
140
145
150
16
標本化定理 再考(その3)
標本化定理 再考(その4)
◇ 毎回「松」では計算が大変そうだが、
→ 大事なところでは念入りに補間すべき
◇ 勘違いや補間の手間を避けたい場合などには
いっそ高い周波数で標本化したほうが
楽な場合もありそう。
◇ 標本化定理の言う 「元のアナログ信号を、
ディジタルで近似的に復元」 するためには、
補間が必要
◇ 補間をするには、
左右にある程度のデータ数
(sinc 関数長程度)が、必要。
⇒ 「少数のデータ」や、「信号の端付近」は、補間不良
⇒ 「少数のデータ」や、「信号の端付近」には、
標本化定理は成立しないので、
これらを正確に表示するためには、
標本化周波数を、標本化定理より上げる必要がある。
標本化定理 再考(まとめ)
注意が必要な例: 最大値の時刻の検出
◇ サンプルを結んでプロットした時に不自然な
波形であっても、標本化定理を満足していれば
補間によって元のアナログ信号に近づけてプロット
することができる。
◇ しかし、補間は、十分な長さの sinc関数を使わないと
結果が不正確なことがある。
10
5
0
ここが最大値
の時刻だと
判定
-5
◇ 補間がめんどうな場合は、
標本化周波数を上昇させるのも選択肢
-10
◇ 「少数のデータ」や、「信号の端付近」では、
補間が行えないので標本化定理は成立せず、
標本化周波数は適切に上昇させる必要がある。
波形の高さを比較する場合には補間をする
15
15
-15
2
4
6
8
時間
10
12
[samples]
14
16
18
20
正確なピーク値、ピーク時刻
正確なピーク値とピーク時刻を求めるには
補間が必須
ピーク値
真の最大値
10
補間あり
5
正解は
こちら
0
補間しないと
誤差が発生
-5
補間なし
-10
-15
2
4
6
8
時間
10
12
[samples]
14
16
18
20
ピークを与える時刻
17
1.アナログ信号とディジタル信号
ディジタル信号処理 が扱う二つの世界
① A/D(アナログ-ディジタル)変換
実世界 (Real World)
② 標本化定理
アナログの世界
③ D/A(ディジタル-アナログ)変換
④ 最近のA/D,D/A 変換
⑤ 標本化定理再考
⑥ ディジタル世界とアナログ世界
D/A
ディジタル
から
アナログ世界
を操作する
A/D
計算機の中の世界
ディジタルの世界
ディジタル
を通して、
アナログ世界
を見る、
理解する
注意しなければいけない事柄
アナログ世界とディジタル世界 (まとめ)
◇ 同じ信号が違って見える。
・ ディジタルをそのままプロットしたのでは、
元のアナログ信号には見えない
⇒ アナログに近づけた(補間した)表示が、
(場合によっては) 必要となる。
実世界 (Real World)
アナログの世界
◇ 演算操作、分析手法などにも注意
・ 違っているようで同じもの (同じ操作)
・ 似ているようで違うもの (違う操作)
を理解しておく。
AD
DA
ディジタルの世界
処理
操作する、制御・応答
見る、計測・分析
ディジタル信号処理
18
フーリエ変換
2.時間領域と周波数領域
時間信号
① フーリエ変換
・ 時間と周波数を関係付ける
主要な性質を復習 (証明抜)
・ 主としてアナログの話
→ ディジタルも類似なので
周波数スペクトル
フーリエ変換
∞
X(f)=∫x(t) e
x(t)
- j 2πf t
-∞
注) e
- j 2πf t (=
dt
e -jωt)
= cos(2πf t)+ j・sin(2πf t)
② 関数の直交変換 (講習省略)
は 「正弦波」 ( 複素正弦波 )
③ ディジタル領域の周波数変換
④ 窓関数
フーリエ変換結果の図示に対して
時間信号とスペクトル
(時間信号波形)
(周波数スペクトル)
x(t)
振
幅
∞
X(f)=∫x(t) e
t
周波数
f
フーリエ変換結果 X(f) は、
視覚的にわかりやすい |X(f)|2 で図示す
ることが多い (特にことわらない)
フーリエ変換
補足:ここだけの話
(スペクトルの縦軸の呼び名について)
(周波数スペクトル)
周波数
f
重要な場合もあり
物理量に厳密な先生から
お叱りを受けそうですが・・・
私の屁理屈
信号のスペクトルの相対的な形に情報が含まれており、
縦軸(物理量)は何でも良い。
x(t)
振幅
強度
|X(f)|2
◇ 周波数スペクトルの
縦軸の量名称については
世の中でも統一がとれて
いません。
強度、振幅、パワー、エ
ネルギ、エネルギ密度、
etc. etc.
◇ 私もかなりいいかげん
です。(信号の場合は「パ
ワー」、フィルタは「ゲイ
ン」とする場合が多い)
dt
◇ フーリエ変換結果 X(f) は複素数。
◇ 各周波数成分の振幅(大きさ)は |X(f)|
( 強度は |X(f)|2 )
◇ 各周波数成分の位相は、偏角 arg(X(f))
X(f)
時間
- j 2πf t
-∞
t
時間
もちろん、物理量が意味
を持つ場合もあります。
例えば、左図の音声波形
の縦軸を何とするか? よく
迷うことがある。 物理量とし
ては、マイク出力の電圧か、
音圧が妥当だが、どちらを選
んでも、音声信号処理を行う
際に、全く影響は無い。
情報(信号)を表す物理量
が意味を持たないという例
である。
19
時間信号とスペクトル
(時間信号)
(周波数スペクトル)
t
時間信号
|X(f)|2
パワー
x(t)
振
幅
フーリエ変換の定義
周波数スペクトル
フーリエ変換
∞
X(f)=∫x(t) e
x(t)
- j 2πf t
-∞
時間
周波数
dt
f
フーリエ変換
対称な性質が
存在
フーリエ逆変換
∞
x(t)=∫X(f) e j 2πf t df
注)この項はアナログの話です。 ただし、
類似の性質がディジタルにも成立します。
時間信号 と スペクトル との関係
-∞
代表的な フーリエ変換対(1)
◇ 時間信号 と スペクトルは、
一つの信号の表裏の関係をなす。
◇ 時間領域表現(時間信号) と
周波数領域表現(スペクトル) とのうち
場合に応じて、
見やすい(理解しやすい)領域で
信号処理理論が展開される
(p.35)
X(f)
x(t)
F
-fc 0
t
1
対称性
F
t
1
X(f)
1
0
sinc 関数
方形パルス
例)理想低域フィルタの
周波数スペクトル
fc f
理想低域フィルタ
sinc 関数
0
ゲイン
sinc
フーリエ (周波数スペクトル)
変換対
(時間信号)
時間信号とスペクトルの関係把握は重要
補足: 負の周波数
方形
f
→ 証明は付録
補足の補足: 負の周波数
・ 複素正弦波で考えれば
e j 2π f t
→
e − j 2π f t
複素平面の単位円上を逆周り
-fc
0
fc
f
実時間信号のスペクトルを考える時には、
正の周波数 (0 ~)を考えれば十分であるが、
時間領域との対称性を見るために、
負の周波数に対する X(f) の値も表している
・ sin で考えれば、周波数が f の正弦波
sin 2πf t
に対して、 周波数が - f の 正弦波は、
sin 2π(- f ) t ( = - sin 2π f t )
正負が逆なだけ。 周期(周波数)は同じ
20
フーリエ変換対(2)
(時間信号)
F
t
(時間信号)
f
0
(調波構造)
F
t
0
厳密には
離散的信号
離散(時間)信号
周期 の例
f
0
実数スペクトル
離散
f
0
離散(線)スペクトル
周期関数
F
f
1/Ts
F X(f)
t
(共役)対称 な 複素関数
X(- f)= X*(f)
対称関数
x(t) =x(-t)
周期
(周波数スペクトル)
x(t)
0
t
離散
Ts
X(f)
実関数
0
フーリエ変換対(3)
対称
(周波数スペクトル)
x(t)
1
実
フーリエ変換対(4)
等パルス列
(時間信号)
x(t)
周期スペクトル
等パルス列
(周波数スペクトル)
X(f)
1/Ts
Ts
F
t
f
等間隔・等振幅
線スペクトル列
(パルス列)
等間隔・等振幅
パルス列
☆ パルス間隔は
逆数の関係
演算の関係
(時間信号)
たたみ込み
例) 理想ローパスフィルタ
乗算
(周波数スペクトル)
周波数で表すと
X(f)
y(t)=∫x(t-u)h(u) du
= x(t)*h(t)
たたみ込み
乗算
(窓掛け、振幅変調)
f
Y(f)=X(f)・H(f)
乗算
(フィルタリング)
周波数軸上の
たたみ込み
×
F
時間表すと
対称性
y(t)=x(t)・h(t)
乗算
x(t)
方形
f
0
=
f
F
*
たたみ
込み
t
sinc
理想ローパスフィルタは、sinc関数のたたみ込み
→ x(t)がパルス列の時は、補間の操作になる
21
離散化(標本化)した信号のスペクトル
等間隔・等振幅パルス列のたたみ込み
時間表すと
x(t)
f0
X(f)
スペクトル
p(t)
離散信号波形
等間隔・等振幅
パルス列
f0
t
F
F
F
P(f)
周波数で表すと
離散信号のスペクトル
*
X(f)
=
=
t
Ts
f
たたみ込み
(波形)
パルス列の乗算
t×
*
f
離散化
f
f=
f
f
1/Ts=fs
fs
周期化
スペクトルの周期化
周期Tsで時間離散化 → fs (=1/Ts)でスペクトルは周期化
(波形の周期化)
離散化
時間領域
周波数領域
離散化
周期化
波形
×
等間隔
パルス
離散化によるスペクトルの周期化と
標本化定理
周期化
スペクトル *
fs
X(f)
( 周期化 )
等間隔
パルス
( たたみ込み )
-fs/2
0
fs/2
f
- fs/2 0
fs で離散化 → fs で周期化
離散化
等間隔
パルス
( たたみ込み )
波形
*
スペクトル ×
f
fs:標本化周波数
fs
X(f)
周期化
fs/2
( 周期化 )
等間隔
パルス
-fs/2
0
fs/2
f
- fs/2 0
fs/2
f
fs/2 を越えたX(f)の成分はスペクトルが重なる。
→ 「折り返される」ように見える → 「折り返しひずみ」
折り返しの解消
折り返しというより,「回り込み」
非対称なスペクトルの場合を考える
fs1
fs1
- fs1/2 0
折り返しが生じたら
↓
サンプリング周波数
を増加させる
fs1 → fs2
f
fs
fs2
- fs/2
- fs2/2
0
f
0
↓
折り返しの解消
fs1/2
fs2
fs で離散化
fs2/2
0
fs/2
f
f
fs/2 からはみ出た成分が、-fs/2から回り込む
22
A/Dの前、D/Aの後の
理想低域フィルタの働き
時間軸の反転
(時間信号)
A/Dの前: fs/2 を越えたX(f)の成分を除去
X(f)
-fs/2
0
fs/2
f
(入力)
x(t)
1
×
-fs/2
0
fs/2
f
-fs/2
0
fs/2
f
(連続化=補間)
×
f
F
X(f)
時間軸の反転
x(-t)
D/Aの後: 離散信号に含まれる fs/2 以上の成分を除去
- fs/2 0 fs/2
t
0
(理想低域フィルタ)
(離散信号)
(周波数スペクトル)
t
0
(連続信号)
F
X(f)の複素共役
X*(f)
1
-fs/2
0
fs/2
f
-fs/2
フーリエ変換対の まとめ
0
fs/2
f
X(f)=∫x(t) e
- j 2πf t
dt
演算操作の関係
方形
sinc
たたみこみ
演算
乗算
実
対称
離散化
周期化
離散
周期
連続化
方形窓の
乗算
等パルス列
(sinc 関数の
畳み込み)
等パルス列
軸反転
複素共役
23
2.時間領域と周波数領域
関数の直交変換とは
関数g(t)を
直交な成分に分解
① フーリエ変換
② 関数の直交変換 (講習省略)
③ ディジタル領域の周波数変換
④ 窓関数
幾何ベクトルの内積
フーリエ変換は
直交変換となっている
直交基底ベクトル
e2
b
e1
θ
a
ベクトルの長さ
内積 : (a,b)=|a| ・ |b| cosθ
θ=90°→ 直交 → (a,b)=0
(a,a) → θ=0°→ |a|2
・単位ベクトル : 長さが1
|e1| = 1
→内積が1
(e1,e1)= |e1|2 = 1
・直交単位ベクトル e1,e2
(e1,e2 )= 0
直交した単位ベクトルの集合
数ベクトルと内積
ベクトルの直交分解
g
g2
e2
0
e1
g1
ベクトルgを直交した軸の成分で表すこと
a=
a1
a2
・
・
aN
b=
g = g1+g2 =g1・e1 + g2・e2
例)2次元ベクトル
g1はe1とgの内積で求まる
(e1,g )=(e1,g1・e1+g2・e2)
=g1(e1,e1)+g2 (e1,e2)
1
0
=g1
(正規)直交基底ベクトル
b1
b2
・
・
bN
a*
b
内積 (a,b)= a1*b1 + a2 *b2 + ・・・
N
=Σ
ai* bi = a*b
i=1
*:共役転置
例) 幾何ベクトルの成分表示 → 数ベクトル
24
直交基底関数
関数の直交分解
g2(t)
e2(t)
0
g(t)
・ 関数の内積は、「積の積分」で定義される
(ei(t),ej(t) )=
g1(t)
e1(t)
∫ei*(t)ej(t)dt
・ 直交する
*:共役
内積がゼロ
連続関数は無限次元のベクトル
・ 直交基底関数系とは…?
任意の関数g(t) は、
直交基底関数 e1(t),e2(t),…により
内積 = 積分がゼロとなる関数の集まり
(e1(t), e2(t), e3(t),……)
直交分解することができる。
g(t) = g1・e1(t)+g2・e(t)+ ・・・
(予備知識) 複素指数関数(1)
(予備知識) 複素指数関数(2)
複素指数関数
e j2πf t = cos(2πf t) + j sin(2πf t)
複素数
実数部
虚数部
Imag
複素平面
長さ1
e j2πf
Imag
j
e j2πf
t
0
単位円上を回転
Real
2πf t
-1
t
t が増加すると
e j2πf tは、
1
sin(2πf t)
2πf t
e j2πf tは、
cos(2πf t)
長さ 1
偏角 2πf t
0
Real
直交基底関数の例
(予備知識) 複素指数関数(3)
◇ 負の周波数 –f を持つ複素指数関数
→ 単位円上を逆回転
e -j2πf
◇ 正(e j2πf t )と 負(e -j2πf t )とがあれば、
sin、cosが復元できる。
e j2πf t = cos(2πf t) + j sin(2πf t)
e -j2πf t = cos(2πf t) - j sin(2πf t)
t が 1/f で一回転
→ 周期 1/f
-j
t
例)複素指数関数
e j2πf
t の集まり
内積 =∫ei*(t)ej(t)dt
1
T
ー j2πfi t・e j2πfj t dt
2T ーT e
∫
1
T
= 2T∫ e j2π(fj-fi) t dt =
ーT
cos(2πf t) =(e j2πf t + e -j2πf t)/2
sin(2πf t) =(e j2πf t - e -j2πf t)/2j
◇ 複素正弦波関数とも呼ばれる
1 fi = fj
0 fi ≠ fj
周波数の異なる複素指数関数は直交
複素指数関数の集まりは直交基底関数系
25
直交分解とフーリエ変換
・関数g(t) の直交分解は、直交基底関数とg(t) の
内積(= 積の積分)で得られる。
(ei(t), g(t) )=
∫ei*(t)g(t)dt
例) 直交基底関数が、複素指数関数 e j2πf t
(e
j2πf t, g(t) )=
∫g(t)e
ベクトル合成とフーリエ逆変換
ベクトルの合成
g = g1・e1 + g2・e2 + g3・e3 + ・・・
=Σgi・ei
大きさ
基底
-j2πf tdt = G(f)
g(t)=∫G(f) e j2πf t df
フーリエ変換は複素指数関数を基底ベクトル
とした関数の直交分解(直交変換)
フーリエ変換の直交変換イメージ
g(t)
G(f2)
e j2πf2t
0
e
j2πf1t
G(f1)
g(t) を基底e j2πft の成分 G(f) に分解
フーリエ変換
フーリエ逆変換
G(f) から g(t) を合成
フーリエ逆変換
離散関数と数ベクトル
有限長の離散関数は有限数列
e(k) = {e(0),e(1),e(2),...e(N-1)}
g(k) = {g(0),g(1),g(2),...g(N-1)}
数ベクトル
e = e(0)
e(1)
・
・
e(N-1)
g=
g(0)
g(1)
・
・
g(N-1)
有限長の離散関数は、数ベクトルと等価
有限長の離散関数の内積
内積は数ベクトルと同様に
(e(k),g(k))
= e*(0)g(0)+e*(1) g(1) +e*(2) g(2) +…
N-1
e*(k)・g(k)
=Σ
k= 0
各種ベクトルの内積
幾何ベクトル
数ベクトル
離散関数ベクトル
連続関数ベクトル
内積 は、2つの関数 の『積の総和』
連続関数では『積の積分』に対応
内
ベクトル
確率ベクトル
積
|a| |b| cosθ
*
a b
*
∫a (t) b(t)dt
E [a*・b]
E:期待値
・それぞれは、幾何ベクトルと同じイメージで
考えることができる。
・内積が0となる場合 「aとbは直交している」 と言う。
26
ディジタル領域の周波数変換
2.時間領域と周波数領域
・ z変換
① フーリエ変換
・ DFT(離散フーリエ変換)
② 関数の直交変換 (講習省略)
・ FFT(高速フーリエ変換)
③ ディジタル領域の周波数変換
④ 窓関数
(p.37)
z 変換の定義式
ディジタル信号 = 数列
∞
z 変換
z 変換の例
X(z) = Σ x(k) z
-k
x(k) = {x(-2), x(-1), x(0), x(1), x(2), x(3) }
k = -∞
時間 → 周波数
x(k):離散信号
z: 周波数を表す
と呼ばれる。
z 変換
×
z1
×
z0
複素変数
X(z): 「 信号 x(k) の z 変換 」
逆
Z
×
z2
×
×
z -k を乗じて
Σ
総和をとる
X(z) = x(-2) z2+ x(-1) z1
+
x(k) = 1 ∮X(z) z k-1dz
j 2π
×
z-1 z-2 z-3
x(0) +x(1) z-1+ x(2) z-2+x(3) z-3
= Σx(k) z -k
z 変換 = z の多項式
周波数 → 時間
逆
z 変換の実際
フーリエ変換との関係 (1/2)
x●(2)
x(1)
◇ フーリエ変換
1
x(k) =
∮X(z) z k-1dz
j 2π
X(f)=∫x(t) e
- j 2πf t
dt
◇ 離散信号のフーリエ変換
実際には複素積分を解くことは少なく、
-k
X(z) を z の級数の形 Σx(k) z に表して、
x(t)=
X(z)
∞
Σ x(k) z
k = -∞
各z
その他
x(3)x(4)
●
x(0)
t = k/fs k:整数
k
● ●
なので
-j2πf /fs
-kの係数
-k (k = -∞ ・・・ ∞)
0
●
k
X (f) =Σx(k) e
k
-j2πf/fs
-j2π2f/fs
= x(0) +x(1)・e
+x(2)・e
その係数を時間信号とする場合が多い。
級数展開
x(k)
x(5)
●
x(k)
+x(3)・e
-j2π3f/fs
+x(4)・e
-j2π4f/fs
+x(5)・e
-j2π5f/fs
+x(6)・e
-j2π6f/fs
+ ・・・
27
フーリエ変換との関係 (2/2)
フーリエ
変換
X (f)=Σx(k) e
k
離散系の角周波数 Ω の導入
-j2πf k/fs
Ω= 2πf /fs
e j2πf/fs = z
ここで、
e
-j2πk f/fs
と置くと
-k
=z
信号の帯域は f = - fs/2 ~ 0 ~ fs/2
なので
-k
Σx(k) z
k
= x(0) +x(1) z-1+ x(2) z-2
それに対応して Ω = -π ~ 0 ~ π
・ 標本化周波数 fs に依存しない規格化表現
・ z = e j2πf/fs → e jΩ の簡単表現
+x(3) z-3 +x(4) z-4 +x(5) z-5
+x(6) z-6 + ・・・ = X(z)
z 変換
z 変換 と フーリエ変換 (まとめ)
X(z) =Σx(k) z
k
z 変換
z =e jΩ
フーリエ
変換
z 変換の意義
◇ アナログの ラプラス変換に相当
(フーリエ変換の周波数(実数)を複素数へ拡張)
-k
・ 離散系の伝達関数が得られ、
系の特性が把握できる (後述)
e jΩ = z
X (Ω)=Σx(k) e
k
( X(f)=∫x(t) e
・ 実際的な周波数分析より、フィルタ設計や
システム解析などの理論面で有用
-jΩ
(Ω= 2πf /fs)
- j 2πf t
dt )
◇ ディジタル信号(=数列)が多項式として
解析的に扱えるようになる
(p.37)
z 変換の重要な定理
x(k)
x(k-1)
(証明)
Z
Z
DFT と FFT
X(z)
z-1X(z)
信号の遅れ
FFT: Fast Fourier Transform
(高速フーリエ変換)
DFTを早く(少ない計算量で)計算する方法
X(z)=Σx(k)・z-k
k
より、x(k-1) の z 変換は、
Σx(k-1)・z-k = Σx(m)・z-m z-1
k
=z-1・X(z)
m
DFT: Discrete Fourier Transform
(離散フーリエ変換)
有限長の離散信号に対するフーリエ変換で、
有限個の離散スペクトルを得る
k-1 = m
k = m+1
計算の結果は、
DFT = FFT
28
DFTのアナログ的解釈 (1)
DFTの定義式
◇ ディジタル的には、DFTは、
N個の数列(時間信号)と
N個の数列(スペクトル)の関係
N-1
X (p)= Σx(k) ・exp(-j2πk・p/N)
k=0
k(時間)
= 0,1,2,……N-1
(N個)
p(周波数)= 0,1,2,……N-1
(N個)
逆変換 (I DFT, I : Inverse)
x(k) =
1 N-1
N ΣX(p)・exp(
◇ アナログ的理解を得るために、
ディジタル信号(=時間信号数列)が
アナログ的パルス波形の列(離散的信号)だと考える。
j2πk・p/N)
p=0
周波数スペクトルは周期的。
「アナログ的」 の意味
DFTのアナログ的解釈 (2)
◇ DFT の スペクトルが離散的
◇ ディジタル信号 = 数列
{x(0),x(1),x(2),x(3),x(4),x(5),・・・ }
時間信号 が 周期的
◇ 時間軸上で表したパルス列 (アナログ的)
x(2)
x(1)
●
●
0
◇ アナログ的にはDFTは、
離散 かつ 周期的な信号と
離散 かつ 周期的なスペクトルとの
対応関係と考えられる。
x(5)
●
1
2
3
4
●
●
x(3)
●
x(0)
x(4)
5
k
k:連続値
非整数時間はゼロ
◇ ディジタル特有の「回り込み」現象に対しては、
周期的だと考えたほうが、直観的理解が得やすい
DFTのアナログ的解釈 (3)
x(k)
-N
0
時間信号が離散
→ スペクトルが周期的
N
DFTのアナログ的解釈 (4)
2N
k
x(k)
周期的離散信号
N
スペクトルが離散
→ 時間信号もN点の信号が
周期的に繰り返されていると考える
0
-N
N
N
周期的離散スペクトル
N
N
この対応関係
がDFT
X(p)
p
(- fs/2)
k
N点の時間信号に、
N点のスペクトルが対応
X(p)
-N/2
2N
0
p
N/2
-N/2
(fs/2)
(- fs/2)
0
N/2
(fs/2)
29
スペクトルの表示
DFT と z 変換の対比
X(p) p=-N/2~N/2-1
時間信号
周波数
スペクトル
z 変換
任意個数の
離散信号
連続スペクトル
DFT
N点の
離散信号
N点の
離散スペクトル
通常の表示
0 を中心に
正負の周波数
0
-N/2
N/2
(- fs/2)
DFTの定義式
の計算結果
スペクトルの周期性
0
N/2
0
N
(fs/2)
p
N/2 以降を
左側に移せば
0 を中心にした
表示になる
-N/2
0
N/2
N
p
-N/2, -N/2+1,…,-2, -1, 0
0, 1, 2, …, N/2, N/2+1, …, N-2, N-1, (N)
-N/2
0
N/2
p=0~N-1
N
p
FFT(DFT) 結果の周波数対応
-N/2, -N/2+1, …, -2, -1, (0)
周波数軸の表示の単位
周波数番号 p=
複素共役
アナログ周波数 =
X(0) X(1) X(2) ・・・ X(N/2)
直流
p
Nと0は
等しいので、
p =0 ~ N-1
の N個が
周期
X(p)
N/2
同じ
N
スペクトルの巡回関係(数値対応)
X(p) p=-N/2~N/2-1
-N/2
p
p=0~N-1
-N/2
(- fs/2)
N
(fs/2)
2fs/N
fs/2
・・・ X(N-2) X(N-1)
X (-2) X(-1)
= X*(2) = X*(1)
fs/N
0
2
・・・
N/2
X(0) X(1) X(2) ・・・ X(N/2)
2fs ・・・
fs
直流 fs
N
N
2
標本間隔を1とした時 = 0
の離散系周波数 (p/N)
1
N
2
N
・・・
1
2
◇ DFTの複素指数関数 exp{j 2π・(p/N)・k} において、
2π・(p/N) = Ω とおくと、 exp{j Ω・k} となる。
離散系角周波数 Ω= 0
(N/2) を中心とした共役対称性
1
2π 4π
N
N
・・・
π
※ 周波数軸を Ω で表示することも多い。
30
離散系の周波数
2.時間領域と周波数領域
・・・・・
周波数1/N (周期 N)
0
N
周波数2/N (周期 N/2)
・
・
・
・
・・・・・
0
N
k
① フーリエ変換
② 関数の直交変換 (講習省略)
k
③ ディジタル領域の周波数変換
周波数 1/2 (周期 2)
④ 窓関数
k
窓かけ (Windowing)
窓かけ の定式化
信号は長時間継続している
しかし、DFT は、短時間のデータを対象とする
窓関数 w(t)
原信号 x(t)
xw(t)
=
1
×
0
Tw
Tw
長時間のデータから、
短時間のデータを
取り出すことを
「窓かけ」 という
Tw
◇ 「窓かけ」は、原信号に窓関数 w(t) を乗じたもの
と定式化できる。 図では、(方形窓)
⎧1
w(t ) = ⎨
⎩0
Tw:窓長
窓かけ によるスペクトルの変化
t0 ≤ t ≤ t0 + Tw (t0 = 0 の場合)の値。
◇ 窓かけ(=時間領域の乗算) は、
周波数領域のたたみ込みなので、
方形窓: w(t ) = 1
ハニング窓:w(t ) = 0.5 − 0.5 cos(2π t / Tw )
ハミング窓:w(t ) = 0.54 − 0.46 cos(2π t / Tw )
時間
ブラックマン窓:w(t ) = 0.42 − 0.5 cos(2π t / Tw ) + 0.08 cos(4π t / Tw )
1
方形
0 .8
0 .6
ハミング
ハニング
ブラックマン
0 .4
0 .2
0
50
その他
を示したが、いろいろな形の窓関数がある。
代表的な窓関数
0
t0 ≤ t ≤ t0 + Tw
100
Tw
フーリエ変換
周波数
xw(t) =
x(t)
w(t)
原信号
F
Xw(f) =
×
X(f)
*
窓関数
W(f)
たたみ込み
窓かけ後の信号は、原信号のスペクトル X(f) に、
窓関数のスペクトル W(f) がたたみ込まれる
31
正弦波のスペクトルに及ぼす窓関数の影響
計算されるスペクトル
窓関数のスペクトル(1)
方形
正弦波
窓関数
F [xw(t)]= F [x(t)]* F [w(t)]
たたみ込み
フーリエ変換
0
-20
-20
-40
-40
-60
-80
窓関数のフーリエ変換(スペクトル)を W(f) とすると、
畳み込んだ結果は、 δ(f-f0)*W(f) = W(f-f0)
となって、f = f0 における パルス δ(f-f0)が、
窓関数のスペクトルの形 W(f-f0)に変化する。
-60
-50
ハニング
-20
-20
-40
-40
ブラックマン
0
2
4
周波数
-60
-50
0
-80
50
周波数
-50
0
50
周波数
ハニング
方形
-70
-2
50
一般的信号に対し、2種の窓関数を使って、
下記スペクトルが得られた。
どちらが正しいスペクトルに近いのか?
-40
-4
0
ブラックマン
「正しい」スペクトル?
-20
-6
-50
方形窓は、正弦波信号の持つ周波数以外の周波数にも、影響を
及ぼす。 ハミング窓も-50dB程度であるが、影響を及ぼす。
-10
-80
-80
0
-80
ハミング
-60
周波数
-60
方形
-50
50
0
窓関数のスペクトル(2)
-30
0
ハニング
周波数 f0 の正弦波のスペクトルは、
f = f0 におけるパルス(δ関数) δ(f-f0)
0
ハミング
0
0
0
-20
-20
-40
-40
-60
-60
6
周波数
方形窓は、主成分が鋭い。ハミングは第1副成分が小さい
ブラックマンは主成分が最も広い。主成分が広いと、周波数
分解能が低下する。
窓関数は、スペクトルを見る角度
-80
-80
-50
0
-50
50
0
50
窓の違いによる 周波数分析結果の違いの例(1)
信号は、1000Hz の正弦波と、-50dBの 1500Hz の正弦波の和
2つの正弦波とは見えない
2つの正弦波が明確
ハニング
方形
-20
-20
[dB]
0
[dB]
◇ 同じ物でも、それを見る角度によって、
見える部分や見える形が違ってくる。
◇ 角度を変えて見ているだけなので、
どちらも 「正しい」。
0
-40
-40
-60
-60
0
1000
2000
3000
周波数 [Hz]
4000
0
1000
2000
3000
周波数 [Hz]
4000
方形窓は、大きさの異なる周波数成分の分析には不向き
32
窓の違いによる 周波数分析結果の違いの例(2)
信号は、1000Hz と 1030Hz の 同じ大きさの2つの正弦波の和
2つの正弦波が分離できている
分離できていない
ハニング
0
-10
-10
-20
-20
-30
-40
特に、非定常信号の短時間分析・処理において重要
音声分析の例
窓長 短 (8ms)
窓長 長い (64ms)
(高い時間分解能)
(高い周波数分解能)
・ 大まかなスペクトル形状
・ 基本周波数の変化
・ ピッチ周期が見える
セ
カ イ
ノ
1000
120
900
-30
周波数
[dB]
[dB]
方形
0
スペクトル形状は窓の長さにも依存
-40
-50
-50
-60
800
-60
800
800
100
700
80
600
500
900
1000
1100
周波数 [Hz]
1200
60
900
1000
1100
周波数 [Hz]
1200
400
40
方形窓は、近接した周波数の分離測定に向いている
300
200
20
100
200
(注) ハ二ングで分離できる場合もある
800
1000
1200
20
40
60
80
100
120
140
時間
時間-周波数変換 (まとめ)
◇ どの窓関数が良いか、一般的な答は無い
用途に応じて、適した窓を選ぶべき
アナログ
フーリエ変換
・ 帯域制限
・ 時間離散化
◇ 最も一般的なものは、
信号分析ではハニング窓
音声処理ではハミング窓
◇ 窓関数を用いた分析・処理を行う場合、
何種類かの窓関数を用いて、結果を比較し、
適切なものを選ぶと良い
ディジタル
(理論向き)
ディジタル
(実用向き)
◇ あまり差が無い場合も多いが、
一度は比較してみるべき!
z 変換
[時間] : 離散,無限長
[周波数]: 周期,連続
有限長時間信号
(N個のデータ)
◇ 窓長も変えたほうが良い (特に非定常信号)
DFT
[時間] : 離散,有限(周期)
[周波数]: 周期,離散
(参考) DFTの計算は内積
(付録) 各種変換のまとめ
N-1
連続
離散
連続
フーリエ変換
フーリエ級数
離散
Z変換
DFT
時間
600
時間
窓関数 (まとめ)
周波数
400
フーリエ変換 フーリエ級数
X (p)= Σx(k) ・exp(-j2πk・p/N)
k=0
x=
Z変換
DFT
時間
周期
離散
離散・周期
周波数
離散
周期
離散・周期
x(0)
x(1)
x(2)
・
・
・
x(N-1)
ep =
exp(0)
exp(j2πp/N)
exp(j4πp/N)
・
・
・
exp(j2(N-1)πp/N)
*
X (p)=(ep,x)=ep x
33
DFTの行列表現
(参考)
(参考) DFT
a=ー2π/N と置くと
→ exp(-j2πk p/N)= ej kp・a
1 ・・・ 1
X(0) = 1 1
1 eja ej2a ・ ・ ・ej (N-1)a
X(1)
X(2)
1 ej2a ej4a
・
・
・
・
・
・
・
・
・
X(N-1)
1 ej(N-1)a ej2(N-1)a
DFT
直交行列
(ユニタリ)
x(0)
x(1)
x(2)
・
・
・
x(N-1)
周波数
スペクトル
=
0
500
1000
離散信号ベクトル
周波数成分ベクトル
1500
2000
周波数
-1
時間
離散信号
-1.5
0
0.01
0.02
0.03
0.04
0.05
ep(k)の波形(1)
DFT の 複素指数関数部
ep(k) = exp{j2π・(p/N)・k} の実部波形
exp{-j2π・(p/N)・ k}
p=0
exp( -jωt) → exp( -j2π f t)
周波数
同一ベクトルの
異基底軸表現
DFT
直交(ユニタリ)行列
p= 0,1,2,……N-1
は直交変換
e0(k) = 1
・・・・・
(直流)
0
p=1
に対応して、
(周期 Nの複素指数関数)
周波数1/N
0
1 2 …… N-1
N N
N
p=2
区間長 N で1周期
〃
2 〃
N
k
)
exp(j2π
N
exp(j2π
k
・・・・・
N
k
2k
)
N
(周期 N/2の複素指数関数)
周波数2/N
0
・・・・・
N
k
ep(k)の波形(2)
ep(k) =exp{j2π・(p/N)・k} の実部波形
p=N/2
exp(j2π
k
)
2
(周期 2の複素指数関数)
周波数 1/2 (上限周波数)
k
p>N/2
N-p の負の周波数に対応
→ 折り返しひずみと同じ理屈
34
系(システム)とは?
3.線形系(線形システム)
入力 x(k)
① 線形系の概要
出力 y(k)
系
② インパルス応答
③ たたみ込み
例) スピーカ
室内音響系、マイクロホン、通信系
自動車、人間、etc
線形系の定義
線形系
x1(k)
系
線形系
非線形系
なぜ重要か?
① 身近に多く存在
② 扱いやすい
・数式表現(モデル化)
が簡単
・制御しやすい
x2(k)
y2(k)
の時、
以下が成立
c・x1(k)
系
定数倍
x1(k)+x2(k)
[代表例]
受動電気回路
室内音響系
y1(k)
系
和
c・y1(k)
定数倍
系
y1(k)+y2(k)
和
(p.48)
線形系の重要な性質
正弦波入力に対する線形系の出力
一般の(広帯域)信号を入力した時には、
波形が大きく変化する系であっても、
x (k)
線形系に正弦波信号を入力すると、
波形は変わらない。
同じ周波数で、
振幅と位相のみが変化した
正弦波を出力する。
y (k)
時間
k
線形系
正弦波を入力した時には、
同じ周波数の正弦波を出力する。
x (k)
k
y (k)
k
k
注) cos波も正弦波に含める(以下同様)
線形系
k
35
クイズです
正弦波は線形系の固有関数
第7問
Ax=λx
行列
固有ベクトル
(線形変換)
線形系
固有値
固有ベクトル
振幅と位相
の変化量
正弦波
代表的な線形操作は、次のうちどれ?
(a) 平方根
(b) 対数操作
(c) 微分・積分
正弦波
正弦波が固有関数(ベクトル)
正弦波の変化が重要な理由 (1)
◇ フーリエ変換
全ての信号 x(k) は、正弦波 e jΩk
の荷重和として表される。
x(k)=ΣX(Ω)・e jΩk
正弦波の変化が重要な理由 (2)
e jΩk
◇ 定数 ( X(Ω)) 倍の正弦波 X(Ω)・e jΩk を入力
(1)
Ω
◇ 一方、正弦波 e jΩk を線形系に入力すると、
G(Ω)倍されて出力されるとする。
e jΩk
線形系
G(Ω)
G(Ω)・e jΩk
すなわち、 個々の正弦波 e jΩk に対する
出力 G(Ω) e jΩk がわかれば、
すべての入力信号 x(k) に対する出力 y(k) がわかる。
e jΩk
線形系
G
X(Ω)・e jΩk
X(Ω)・G(Ω)・e jΩk
G
定数倍
◇ Ωで総和を取った信号 x(k) を入力
ΣX(Ω)・e jΩk
ΣX(Ω)・G(Ω)・e jΩk
G
Ω
Ω
= x(k)
正弦波の変化が重要な理由 (3)
正弦波
G(Ω)・e jΩk
G
線形系Gの固有値
◇ G(Ω) は複素数であり、正弦波 e jΩk の、
振幅・位相の変化を表す
◇ G(Ω) を系の 「周波数特性」 と呼ぶ
和
周波数特性の一般的定義
入力信号スペクトル
X(Ω)
正弦波は、G(Ω)倍
G(Ω)・e jΩk
= y(k)
周波数特性
(定義)
線形系
G
Y(Ω)
G(Ω) = ----X(Ω)
入力の周波数成分 X(Ω)が
G(Ω) 倍されて出力される
出力信号スペクトル
Y(Ω)
出力スペクトルと
入力スペクトル
との比
Y(Ω) = G(Ω)・X(Ω)
36
伝達関数
線形系と正弦波(まとめ)
線形系
x(k)
y(k)
インパルス応答 g(k)
伝達関数 G(z)
X(z)
Y(z)
伝達関数
(定義)
G(z) = ----X(z)
周波数領域の
入出力関係
Y(z)
出力 z 変換と
入力 z 変換
との比
Y(z) = G(z)・X(z)
入力にG(z) 倍したのが出力
非線形系
◇ 正弦波を入力したら正弦波が出力されるのは、
正弦波が線形系(線形変換)の固有関数だから
である。
(参考) 微分、積分も線形変換です
◇ その固有値は、周波数特性(伝達関数)である。
◇ ある線形変形に対する固有値が得られれば、
全ての入力に対する変形が予想できる。
◇ 正弦波や、
周波数特性の重要性は、以上の理由による
音で感じる非線形
・ 線形系の性質が満足されない系。
・ 厳密には、多くの系が非線形系。
非線形の程度が小さい系
(または、入力の範囲など)を
線形系とみなして信号処理を行う。
・ 非線形系では高調波歪が発生することが多い。
(スピーカ系では、オーバーロードの時など
音が歪む、割れる)
・ ランダム(非周期)信号では、
非線形の発生は 「耳で」 気づきにくい。
・ 非線形の程度が大きいと信号処理の
効率が低下するので、注意が必要である。
時不変系とは?
時不変という性質の必要性
時間が経っても特性が変化しない系
x (k)
系
y (k)
x (k -τ)
系
y (k -τ)
時変だと困ること
・ 計測:今測った特性が、もう変化している
・ 制御:推定した特性に基づいた制御ができない
時不変性 = (系や信号の) 定常性 とも言う
時間τの後に、同じ入力を入れれば、
同じ出力が出てくる系
ただし、短時間の間に大きく変化しなければ、
ある程度の時変性や非定常性には
対応できる信号処理もある。
→ 適応信号処理など
37
線形系の概要 (まとめ)
3.線形系(線形システム)
とくに断らない限り、
時不変 な 線形系は、
① 線形系の概要
信号処理の大前提
② インパルス応答
③ たたみ込み
◇ 正弦波は、線形系の固有関数
アナログ系のインパルス応答
(インパルス信号) δ(t)
幅が 0で高さが∞
積分値が1のパルス
インパルス応答の例
部屋 (音響系)
δ(t)
t
0
インパルス信号を入力した時の系の出力
δ(t)
g(t)
0
t
g(t)
系
インパルス応答
インパルス応答と周波数特性
250 ms
インパルス応答測定と周波数特性の例
◇ 系のインパルス応答 g(t) のフーリエ変換は、
その系の周波数応答特性
dt
70
60
相対音響出力[dB]
G(f) =∫g(t) e
- j 2πf t
80
測定風景
スピーカ
マイク
50
40
30
G(f)
20
0°
30°
60°
90°
10
δ(t)
周波数応答特性
G(f)
0
g(t)
◇ 周波数応答特性G(f)の逆フーリエ変換は、
インパルス応答 g(t)
→ 証明は付録
スピーカの
インパルス応答
100
2 .7
10k
スピーカの
周波数特性
(指向性)
g(t)
2 .6 5
1k
周波数[Hz]
2 .7
4
x 10
38
ディジタル系のインパルス信号
(インパルス信号) δ(t)
アナログ
幅が 0で高さが∞
積分値が1のパルス
∞
δ(t)
t
0
時間 0 で値1、
その他の点では
値 0 の信号
1
δ(k)
1
k
0
◇δ(k) はδ(t) の物まね
ではない。
◇ ディジタルはアナログ
t
を模倣したり、シミュレー
トするもので、模倣に
よる誤差(違い)が発生
する、という解釈は誤り。
◇ δ(k) とδ(t) は等価で
k あることを以下に説明
する。
0
(単位サンプル信号) δ(k)
ディジタル
δ(t) と δ(k)
0
δ(t) をディジタル世界から見ると
理想ローパスフィルタ の インパルス応答
1
実世界 (Real World)
アナログの世界
フーリエ
変換
1/fs
δ(t)
‐fs/2
理想
LPF
D/A
理想
LPF
A/D
fs/2
f
理想LPFの
インパルス応答
(sinc 関数)
理想ローパスフィルタ
を標本化したもの
標本化周期 Ts=1/fs
の整数倍の時刻では
値が零になる
計算機の中の世界
ディジタルの世界
k
証明
は付録
-4Ts -2Ts 0
2Ts 4Ts
-3Ts -Ts Ts 3Ts
( インパルス応答 )
(周波数特性)
理想ローパスフィルタ の インパルス応答
を標本化すると
sin πfs t
πfs t
t = 1/fs = Ts で、
πfs t =π (分子がゼロ)
δ(t) と δ(k) の等価性
実世界 (Real World)
アナログの世界
1
k
-4Ts -2Ts 0
2Ts 4Ts
-3Ts -Ts Ts 3Ts
δ(k) はδ(t) を
δ(t)
理想
LPF
ディジタル世界
から見たもの
理想
LPF
sinc 関数
D/A
δ(k)
0
A/D
単位サン
プル関数
1
0
k
計算機の中の世界
ディジタルの世界
δ(k)
39
ディジタル系におけるインパルス応答
(単位 サンプル応答)
δ(k)
g(k)
系
k
0
k
単位サンプル信号δ(k) に対する応答 g(k) を
ディジタル系の
インパルス応答と呼ぶことは妥当
インパルスは全ての周波数成分を含む
f0
2f0
3f0
4f0
5f0
6f0
7f0
8f0
9f0
10f0
∑
-0.025
-0.02
-0.015
-0.01
-0.005
0
0
0.005
0.01
0.015
0.02
インパルス応答の特質
インパルス応答は,線形系の
全ての情報を含んでいる
例えば、
◇ インパルス応答がわかれば,
あらゆる入力に対する出力がわかる
◇ インパルス応答の z 変換は、
その線形系の伝達関数
◇ インパルス応答の DFT は、
その線形系の周波数応答特性
次節で説明
インパルス応答(まとめ)
1) ディジタル系の単位サンプル信号δ(k)は
アナログ系のインパルス信号δ(t)と等価
2)ディジタル系の単位サンプル応答を
インパルス応答と呼ぶ
3) インパルス応答は、線形系の基本量
0.025
全ての周波数成分を等振幅で
足すと、インパルス信号になる
3.線形系(線形システム)
① 線形系の概要
② インパルス応答
③ たたみ込み
たたみ込み
線形系の出力 y(k) は、
入力信号 x(k) と、
系のインパルス応答 g(k) との
たたみ込み演算*で表される。
y (k ) = x(k ) ∗ g (k ) =
∞
∑ x ( m) ⋅ g ( k − m)
m = −∞
<線形系特有の演算>
線形系の性質からたたみ込み演算の
必然性が導出できる
40
単位サンプル信号を用いた信号表現
x(k)
x(0)
x(0) x(1)
0
x(2) =
2
1
k
k
0
+
2
+ x(2)δ(k-2)+・・・
k
m
x(1)δ(k-1)
入力信号 x(k) は、
単位サンプル信号δ(k) の時間シフトδ(k-m)、
x(2)
k
x(k) =x(0) δ(k) + x(1)δ(k-1)
=Σx(m)δ(k-m)
k
+
m
x(0)δ(k)
x(1)
1
δ(k-m) 1
0
単位サンプル信号を用いた信号表現(2)
x(2)δ(k-2)
定数( x(m) )倍、その総和
として表される。
(p.48)
線形系の入出力関係
δ(k)
G
g(k)
x(k)
G
?
たたみ込み
x(k ) : 系に対する入力信号
g (k ) : 系のインパルス応答
δ(k-m)
G
g(k-m)
x(m)δ(k-m)
G
x(m) g(k-m)
定数倍
Σx(m)δ(k-m)
G
Σx(m) g(k-m)
総和
m
= x(k)
時不変性
m
時不変線形系の3つの性質を利用
(定理) たたみ込み の 可換性
y (k ) =
∞
y ( k ) =
m = −∞
y(k) = x(k)*g (k) = g(k)*x(k)
インパルス応答が g(k) である系に、
信号 x(k) を入力したときの出力
= インパルス応答が x(k) である系に、
信号 g(k) を入力したときの出力
∑ x ( m) g ( k − m)
m = −∞
インパルス応答 g を知れば、任意の入力
に対する 出力 y が計算で求められる
x
インパルス応答の因果性を
考慮した表示
∞
∑ x ( m ) g ( k − m) = ∑ g ( m ) x ( k − m )
m = −∞
y (k ) : 系の出力信号
∞
y (k ) =
∞
∑ x ( m) g ( k − m ) =
m = −∞
∞
∑ g ( m ) x ( k − m)
m = −∞
インパルス応答の因果性 → g (m) = 0 for m < 0
y (k ) =
k
∞
m = −∞
m=0
∑ x ( m) g ( k − m) = ∑ g ( m) x ( k − m )
41
たたみ込みの解釈
たたみ込み の例
さらに、 x(m) = 0 for m < 0 を仮定すれば、
k
m =0
m =0
∑ x ( m ) g ( k − m) = ∑ g ( m ) x ( k − m)
1
g(2)
大
中
小
0
1
2
は
は
は
ね
ね
ね
だ
だ
x(2)
0
1
2
g(1)
x(1)
2
y (2) = x(0) g (2) + x(1) g (1) + x(2) g (0)
g(0)
だ
0
x(0)
ね
(
入力)
x
k =2
は
y ( k ) =
k
インパルス
応答
g
y(0)
インパルス応答の z 変換が
伝達関数となることの証明
y(1)
時間 k
だ
y(2)
z 変換(多項式)の積の例
例) X(z)= x(0)+x(1)z-1+x(2)z-2
線形系
x(k)
インパルス応答 g(k)
伝達関数 G(z)
X(z)
時間領域の
入出力関係
y(k)
Y(z)
g(k)*x(k) = y(k)
z 変換
周波数領域の
入出力関係
フーリエ変換と
同様の性質
証明 →
G(z)・X(z) = Y(z)
z 変換の積とたたみ込み
z 変換は多項式
多項式の積の係数は、たたみ込み
G(z)= g(0)+g(1)z-1+g(2)z-2
G(z) X(z)
y(1)
y(0)
= g(0)x(0) z0 +(g(0)x(1)+g(1)x(0))z-1
+(g(0)x(2)+g(1)x(1)+g(2)x(0))z-2+・・・
y(2)
多項式の積の結果、各項は
たたみこみの形になっている
z 変換の積は、たたみ込みのz 変換
g(k) * x(k)
y(k)
z 変換
z 変換の積の係数は、たたみ込み
z 変換の積は、たたみ込みの z 変換
G(z) × X(z)
G(z)X(z)
Y(z)
一致
x(k)、g(k) の z 変換の積 G(z)X(z) と、
たたみ込みの結果 y(k) の
z 変換 Y(z) とが 一致する
42
DFTの積 (重要 !)
z 変換の重要な性質、について
1) y(k) =g(k)*x(k)
Y(z) =G(z) X(z)
DFT の積は、時間領域では円状(巡回)たたみ込み
(z 変換の積)
(時間領域のたたみ込み)
2)系のインパルス応答 g(k) の
z 変換が伝達関数 G(z) となる。
∵ 1) より、 Y(z)=G(z)・X(z) であり、
フーリエ変換(アナログ)や z 変換の積は、
直線たたみ込み(通常のたたみ込み)に対応
直線たた
み込み
入力がインパルス信号のとき、X(z)=1 であるので、
インパルス応答(系の出力)の z変換 Y(z)=伝達関数 G(z)
3) 伝達関数G(z)に、z=e j Ω を代入すると、
周波数特性が得られる。
*
k
N
=
N
N
円状たた
み込み
k
k
*
k
=
k
k
Nの長さからはみ出た分は回り込む
Ω:離散角周波数
※ 円状たたみ込みに関しては付録を参照
周波数変換とたたみ込みの関係
Z変換の積
直線たたみ込み
(実存する物理現象)
DFTの積
円状たたみ込み
系のインパルス応答と周波数特性
畳込み
y(k)=x(k)*g(k)
直線たたみ込み
フーリエ変換
(DFT)
z変換
(やや人工的な現象)
(参考)
フーリエ変換
の積
インパルス応答
g(k)
逆z変換
伝達関数
G(z)
逆DFT
z=e jΩ
周波数特性
G(e jΩ)
積
Y(z)=X(z)G(z)
インパルス応答とたたみ込み(まとめ)
◇ 線形系のインパルス応答
(単位サンプル応答) g(k) を知れば
任意の入力信号 x(k) に対する系の出力y(k)
が、たたみ込み演算によって計算できる。
y(k) =Σg(m) x(k-m)
m
◇ インパルス応答 g(k) の
z 変換 G(z) が伝達関数、
DFTが周波数特性 G(e jΩ )となる。
◇インパルス応答からは、その他にも
さまざまな特徴量(残響時間、MTFなど)が得られる。
43
① ディジタルフィルタとは
4.ディジタルフィルタ
ディジタルフィルタ (広義)
① ディジタルフィルタとは
アナログ
信号
② フィルタの種類 と 伝達関数
③ 極と零によるフィルタの 特性解析
A/D
数列
ディジタル
フィルタ
(狭義)
アナログ
信号
D/A
数列
④ フィルタの実行
⑤ フィルタの設計
(A/D、D/Aは、低域フィルタを含んでいる)
ディジタルフィルタの構成要素
遅延器
最も簡単なディジタルフィルタの例
入力
出力
x(k)
y(k)
+
x(k)
z-1 x(k-1)
c・x(k-1)
×
c
(フィルタ係数)
構成要素: × 乗算器 + 加算器
x(k)
z-1
x(k)
x(k-1)
x(k-1)
遅延器とは,
現在の信号x(k) を 入力し,
1時刻前の信号x(k-1) を出力する。
(単位)遅延器
遅延器 の伝達関数
アナログフィルタ の特性表現
L
x(k)
遅延器
z変換
X(z)
x(k-1)
構成要素は、
LCR
ei
R
z変換
遅延器の
伝達関数
z-1
z-1X(z)
C
入出力関係の
表現は
微分方程式
解析は
ラプラス変換
v=L
eo
d2 q
dq
+ R dt + 1 q
C
dt2
V = s2 L Q +s R Q + 1 Q
C
44
フィルタの伝達特性
ディジタルフィルタの特性を計算
入力
出力
x(k)
y(k)
+
z 変換
Y(z)=
伝達関数
z-1 x(k-1)
x(k)
入出力関係は
差分方程式
c・x(k-1)
×
c
G(z)=
(フィルタ係数)
周波数特性
y(k) =
G(Ω)=
解析は
Z変換
c
(p.42)
フィルタの周波数特性
フィルタの周波数特性図
=1
c
G(Ω)=1+e -jΩ
= e -jΩ/2(
= e -jΩ/2 ・2・(
)
)
=1
| G(Ω) | =2・|cos(Ω/2)|
G(Ω)
y(k) =x(k) +x(k-1)
6
dB
直流
振幅特性
|G(Ω)| = 2・|
|
Ω -π ~ 0 ~ π
f -fs/2 ~ 0 ~ fs/2
フィルタの周波数特性図 (2)
c
= -1
| G(Ω) | =2・|sin(Ω/2)|
G(Ω)
直流
fs/2
0
π
(高域通過フィルタ) (fs/2)
(低域除去フィルタ)
0
π
(低域通過フィルタ) (fs/2)
Ω
x(k)
y(k)
+
x(k)
z-1 x(k-1)
y(k) =x(k) +c・x(k-1)
差分方程式を計算する
プログラム例
特性はフィルタ係数に依存
fs/2
Ω
ディジタルフィルタの実体はプログラム
y(k) =x(k) -x(k-1)
6
dB
-40
-40
×
c
c・x(k-1)
入力
出力
Function Filt(xk, yk)
double xk, xk1, c, yk
yk=xk+c*xk1
xk1=xk
return
45
ディジタルフィルタとは、(まとめ)
4.ディジタルフィルタ
◇ 乗算・加算・遅延・フィルタ係数
◇ フィルタ特性の求め方
・ 差分方程式 → z 変換
・ 伝達関数 G(z)=Y(z)/X(z)
周波数特性 G(Ω)
・ z=e jΩ
① ディジタルフィルタとは
② フィルタの種類 と 伝達関数
③ 極と零によるフィルタの 特性解析
④ フィルタの実行
◇ 周波数特性は フィルタ係数に依存
◇ ディジタルフィルタはプログラム
⑤ フィルタの設計
F I R フィルタ
2種類のフィルタ
δ(k)
F I R(Finite Impulse Response ) フィルタ
有限
z-1
インパルス応答
I I R(Infinite Impulse Response ) フィルタ
無限
k
0
インパルス応答
インパ
ルス
応答
y(k)
+
入力を遅ら
せて荷重和
×
c
k ・・・ -2 -1 0 1 2 3 ・・・
入力 δ(k) ・・・ 0 0 1 0 0 0 ・・・
出力 y(k) ・・・ 0 0 1 c 0 0 ・・・
時刻
有限長
(p.44)
F I R(Finite Impulse Response ) フィルタ
(または、非巡回型フィルタ)
I I Rフィルタ
δ(k)
y(k)
+
出力を遅ら
せて荷重和
インパ
ルス
応答
不安定なフィルタ
×
c
u(k)
y(k)
I I R フィルタ
z-1
y(k-1)
cy(k-1)
時刻
k ・・・ -1 0 1 2 3 ・・・
入力 δ(k) ・・・ 0 1 0 0 0 ・・・
出力 y(k) ・・・ 0 1 c c2 c3 ・・・
z-1
c
インパルス応答は
{1, c, c2, c3, …}
例
|c | ≧1 の時、不安定(発散)
無限長
I I R(Infinite Impulse Response ) フィルタ
(または、巡回型フィルタ) |c | ≧1 の時、不安定(発散)
46
一般形
(参考) 不安定な 「系」 の例
ハウリング
不安定なアナログ系
b0
x(k)
x(k)
y(k)
z-1
b1
a1 z-1
x(k-1)
マイクロホン アンプ
ピ~~
b2
a2 z-1
x(k-2)
y(k-2)
z-1 bQ
x(k-Q)
不安定系は使い物にならないことがわかる
aP z-1
y(k-P)
P
Q
i =1
Q
i=0
y(k) =Σai y(k-i) +Σbix(k-i)
IIR
y(k) =Σbi x(k-i)
FIR
(a1,・・・ aP=0)
i=0
(用語の補足)F I Rフィルタの次数とタップ数
Q
x(k)
b0
x(k)
y(k)
i =0
z-1 b1
「次数」 伝達関数の
多項式の次数
遅延器の数
z-1 b2
x(k-2)
「タップ数」 係数 bi の数
z-1 bQ
x(k-Q)
P
Q
i =1
i =0
Q
G(z) = b0Π(1- qi z-1)
i =1
x(k-1)
フィルタ(一般形)の伝達関数
y(k) =Σai y(k-i) +Σbix(k-i)
y(k) =Σbi x(k-i)
P
Q
i =1
i =0
P
(1-
Q
B( z ) = ∑ bi z = b0 + b1 z + b2 z + L + bQ z
−2
−Q
i =0
に対して、
B( z ) = 0 を満たす z の値 q を 「根」 と呼ぶ。
② 多項式の根の数は、複素根、重根も含めると、
多項式の次数 (Q次多項式はQ個) の根を持つ
移項
Q
G(z) =
Y(z)
=
X(z)
Σ
b z-i
i =0 i
P
1-
Σ
a z-i
i =1 i
伝達関数
多項式に関する性質 (2)
① 多項式
−1
z 変換
Σ
a z-i) Y(z) = (Σbi z-i )X(z)
i =1 i
i =0
多項式に関する性質 (1)
−i
差分方程式
Y(z) =Σaiz-i Y(z) +Σbiz-i X(z)
この場合は、
Q次、 Q+1タップ
Q
すべての
ディジタル
フィルタが
この差分
方程式で
書ける
y(k-1)
z-1
③ 多項式は、Q個の根 qi ( i=1,2,・・・,Q )を用いて
因数分解した形で表すことができる。
B( z ) = b0 (1 − q1 z −1 )(1 − q2 z −1 )(1 − q3 z −1 ) L (1 − qQ z −1 )
Q
= ∏ (1 − qi z −1 )
i =0
( qi が根であることの確認 )
q
1 − qi z −1 = 1 − i であるので、 z = qi で、
z
B(z) はゼロになる。
47
伝達関数の因数分解
極 と 零
Q
G(z) =
Y(z)
=
X(z)
Σ
b
i =0 i
z-i
Q
Σ
a z-i
i =1 i
G(z) =
=
b0 + b1z-1 + b2z-2 +b3z-3 + ・・・ +bQz-Q
1- a1z-1 - a2z-2 -a3z-3 - ・・・ -aPz-P
=
b0 ・(1- q1 z-1)・(1- q2 z-1)・・・(1- qQ z-1)
(1- p1 z-1)・(1- p2 z-1)・・・(1- pP z-1)
z = qi で 0
P
Π
(1- pi z-1)
i =1
pi
(1- -
z )
G(z)が 0
z = pi で 0
G(z)が∞
極: G(z)の値を ∞とする z の値
Q
=
b0Π(1- qi z-1)
i =1
P
1-
b0Π(1- qi z-1)
i =1
qi : 分子多項式の根
pi : 分母多項式の根
P
Π
(1- pi z-1)
i =1
pi
零: G(z)の値を 0 とする z の値 qi
周波数の p と混乱しない
4.ディジタルフィルタ
① ディジタルフィルタとは
③ 極と零に基づくフィルタの特性解析
(1) フィルタの安定条件
伝達関数の部分分数展開
② フィルタの種類 と 伝達関数
(2) 周波数特性の定性的理解
③ 極と零によるフィルタの 特性解析
伝達関数の z 平面上表現
(3) フィルタの分類
④ フィルタの実行
⑤ フィルタの設計
フィルタの安定条件 ( I I R フィルタ)
Q
G(z) =
b0Π(1- qi
i =1
z-1)
伝達関数の部分分数展開
b0 ・(1- q1 z-1)・(1- q2 z-1)・・・(1- qQ z-1)
(1- p1 z-1)・(1- p2 z-1)・・・(1- pP z-1)
G(z) =
P
Π
(1- pi z-1)
i =1
N
=
Σ
C z-i
i =0 i
=
Σ
C z-i
i =0 i
P
+
N
フィルタが安定である(発散しない)条件は、
その伝達関数 G(z) の
すべての極 pi (i = 1,2,・・・,P)の絶対値が
|pi|<1
FIR 部分
+
Σ
i =1
Di
1- pi z-1
Ci,Di : 定数
D1
D2
+
+
1- p1 z-1
1- p2 z-1
DP
・・・ +
1- pP z-1
一次極特性
( IIR 部分 )
48
伝達関数の和は並列接続
部分分数展開のブロック図
G(z)
G(z)
N
G2(z)
Y(z)
G2X
X(z)
Y=(G1X+G2X)
G= Y/X
G(z)=G1(z)+G2(z)
(1- pi z-1)
−1
(1 − pi z ) ⋅ V = U ( z )
V ( z ) = U ( z ) + pi z −1V ( z )
v ( k ) = u ( k ) + pi v ( k − 1)
逆 z 変換
1個の FIR部と
P 個の
一次極フィルタ
の並列接続
v ( k ) = u ( k ) + pi v ( k − 1)
u(k)
1
V ( z) =
U ( z)
1 − pi z −1
1
1- p2 z-1
極はフィードバックゲインを表す
出力 V(z)
1
Y(z)
1
1- pP z-1
一次極フィルタ
入力 U(z)
1
1- p1 z-1
・・・
G1(z)
・・・
X(z)
Σ
C z-i
i =0 i
G1X
一次の
I I R フィルタ
フィルタの安定条件
インパルス応答は
{1, p, p2, p3, …}
v(k)
+
×
z-1
極は等比
数列の公比
pi
フィードバック信号(巡回信号)は
pi 倍 (極倍)される
|pi | ≧ 1 だと信号が発散(不安定)
③ 極と零に基づくフィルタの特性解析
G(z)
(1) フィルタの安定条件
N
Σ
C z-i
i =0 i
X(z)
1
1- p1 z-1
・・・
・・・
1
1- p2 z-1
1
1- pP z-1
伝達関数の部分分数展開
Y(z)
どれか一つでも
不安定だと
フィルタは
不安定
(2) 周波数特性の定性的理解
伝達関数の z 平面上表現
(3) フィルタの分類
安定条件は、
すべての極 pi が、
|pi|<1
49
極と零に関する一つの性質
G(z) : 複素数 z に対して、値を与える複素関数
z-平面: 複素数 z に対応した平面
|G(z)| は、z-平面上に等高線表示できる。
Q
b0Π(1- qi z-1)
i =1
G(z) =
複素平面(z-平面)で見る伝達関数
P
Π
(1- pi z-1)
i =1
◇ G(z) の分子分母は実係数多項式なので、
共役数はともに根。
Imag(z)
z-平面
x(t)
|G(z)|
共役
t
例) a+jb が極(零)なら、a-jb も 極(零)
Real(z)
:極 (山)
(参考) 実関数
:零 (谷)
複素指数関数 e jΩ
e jΩ=cosΩ+j sinΩ
e jΩ は単位円の上を動く
Ω:実数
単位円: 半径が1の円
実数成分 cosΩと、虚数成分 sinΩを持つ複素数
e jΩ
Imag
角度がΩで
原点からの
距離が1
j sinΩ
Ω
0
フィルタの周波数特性
G(z)に z=e jΩを
代入し、Ωの値を
-π~ 0 ~πと
変化させたものが
周波数特性
Imag(z)
j
G(e jπ)
z=e jΩ
Ω=0
Ω
-1
1
Real(z)
G(e-jπ)
Ω=-π/2
伝達関数と周波数特性の例
例) 2つの極と2つの零とを持った伝達関数
G(z) =
(1- q1 z-1) (1- q2 z-1)
(1- p1 z-1) (1- p2 z-1)
z=q1, q2 で G(z) → 零
単位円上の
角度が角周波数
-j
z=p1, p2 で G(z) → 無限大
1 Real(z)
-j
e jΩ
Ω=π
を考える。
G(e j0 )
-1
Ω=π/2
Ω=-π
◇ Ωの値によらず、|e jΩ| は常に 1
G(e jπ/2)
j
Real
cosΩ
-π~ 0 ~π
と変化させると
単位円上を一周
Imag(z)
e jΩは、
1
e jΩ のΩの値を
G(z)の値が
極・零 を 図上に表すと、
周波数特性
50
極・零と周波数特性
単位円 との関連
z-平面 |G(z)| の等高線
z-平面
Ω=π/2
(1) 安定条件
極 |pi|<1
:極
:零
Imag
Ω2
pi
が単位円の
内部に含まれる。
Ω=0
p1
q1
Real
q2
|G(Ω)|
周波数特性
Ω1
p1
Ω=π
Ω= 0
q1
Ω
Real
q2
(2) Ωは角周波数
アナログ周波数と
は、π → fs/2
p2
Ω=π
:極
:零
Imag
p2
0 Ω1
Ω2 π
極の近くで山、零の近くで谷
周波数特性は極と零の分布で決定
|G(z)| の等高線を 図上に重ねると、
伝達関数の3次元表示
③ 極と零に基づくフィルタの特性解析
|G(Ω)|
(1) フィルタの安定条件
2
1.5
伝達関数の部分分数展開
1
0.5
(2) 周波数特性の定性的理解
0
-0.5
伝達関数の z 平面上表現
-1
-1.5
(3) フィルタの分類
-2
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2
-1.5
-0.5
-1
0
0.5
1
1.5
2
極と零 によるフィルタの分類
極・零フィルタ
Q
1) G(z) =
b0Π(1- qi z-1)
i =1
P
1-
2)
Π
(1- pi
i =1
極・零フィルタ
z-1)
(I I R)
Π
(1- pi z-1)
i =1
全極フィルタ
(I I R)
b0
G(z) =
P
1-
Q
G(z) =
b0Π(1- qi z-1)
i =1
P
Π
(1- pi z-1)
i =1
|G(Ω)|
Q
3)
G(z) = b0Π(1- qi z-1)
i =1
全零フィルタ
(F I R)
Ω
0
Ω1 Ω2 π
例) 極の周波数
Ω1と零の周波数
Ω2とを近づけるこ
とで急峻な(遮断
特性の良い)フィ
ルタを作ることが
できる
51
全極フィルタ
全零フィルタ (= FIR フィルタ)
|G(Ω)|
|G(Ω)|
p1
G(z) =
b0
Q
G(z) = b0Π(1- qi z-1)
i =1
p3
P
Π
(1- pi z-1)
i =1
Ω
0
π
・ 極によるスペクトルの表現
・ ピークを表現 → 共振系の表現に適合、知覚に適合
・ 音声生成のモデル:AR(Auto Regressive)モデル
③ 極と零に基づくフィルタの特性解析 (まとめ)
(1) フィルタの安定条件
すべての極が z 平面の単位円内
(2) 周波数特性
フィルタの周波数特性は、z 平面
においてG(z) の 単位円上の値
(3) フィルタの分類
極・零フィルタ、全極フィルタ、全零フィルタ
4.ディジタルフィルタ
① ディジタルフィルタとは
② フィルタの種類 と 伝達関数
③ 極と零によるフィルタの 特性解析
④ フィルタの実行
⑤ フィルタの設計
q1
q3
π
0
・ 零によるスペクトルの表現
・ F I Rフィルタであるので、安定性が保証!
(係数を、どのように定めても発振の危険性が無い)
・ 次数を高くすれば急峻なフィルタも作れる
・ MA(Moving Average)モデル
Ω
(補足) IIR と FIR の比較
◇ IIR
(長所) 少ない次数で急峻なフィルタ
(短所) 安定性に注意を払う必要
プログラムが複雑
(用途) 固定的・専用
◇ FIR
IIR の逆
(長所) 安定性が保障
(短所) 急峻なフィルタは大きな次数
(用途) 実験室、可変フィルタ、適応フィルタ
フィルタの実行
基本的には、差分方程式
P
Q
i =1
i =0
y(k) =Σai y(k-i) +Σbix(k-i)
を、DSPやCPUのプログラミングで実行
(ただし、FIR フィルタには いくつかの
便利な性質がある)
→ 関連事項も交えて説明する
52
F I Rフィルタとインパルス応答
x(k)
b0
x(k)
z-1
y(k)
b1
◇ フィルタ係数
b0, b1,b2,…
がインパルス応答
◇ 出力y(k) は
x(k) と bi とのたたみ込み
x(k-1)
z-1 b2
x(k-2)
Q
y(k) =Σbi x(k-i)
i =0
z-1 bQ
x(k-Q)
F I Rフィルタのベクトル表現
Q
y(k) = bTx(k)
y(k) =Σbi x(k-i)
i =0
b=
b0
b1
b2
・
・
・
bQ
x(k) = x(k)
x(k-1)
x(k-2)
・
・
・
x(k-Q)
T:転置
たたみ込みは、b と x(k) の 内積 演算
F I Rフィルタのたたみこみ計算
(フィルタの実行の標準形)
たたみ込みは計算量が多い
b
x(k)
x(k)
x(k)
x(k-1)
x(k-2)
x(k)
x(k-1)
x(k)
x(k-1)
x(k-2)
・
y(k) = bTx(k)
・
x(k-Q)
k=k+1
y(k)
たたみ込み と F F T (=DFT)
・
・
x(k-Q)
x(k-Q+1)
Real Time 処理
関連事項: 信号と信号の乗算
信号どうしの乗算は、
信号の周波数範囲を拡大する!
◇ 正弦波の積
sin 2πf1t ×sin 2πf2t
= {cos 2π(f1-f2)t-cos 2π(f1+f2)t}/2
◇ 一般に、
a(t) に含まれる 上限周波数 fma
b(t) に含まれる 上限周波数 fmb
a(t)×b(t) に含まれる上限周波数 fma+fmb
(時間領域)
たたみ込み
(周波数領域)
積
FFTを使って周波数領域で積として計算すれば、
計算量は Q → log2 Q に比例して低減
例) 1000 → 10
ただし、信号に FFT データ長の遅延が発生する。
また、DFTスペクトル同士の積、および
ディジタル信号同士の積には注意が必要である。
アナログ信号どうしの乗算結果と
ディジタル信号どうしの乗算結果は必ずしも一致しない
アナログの世界
x(t) × u(t) =
y(t)
LPF
fs/2
LPF
fs/2
LPF
fs/2
A/D:fs
A/D:fs
A/D:fs
x(k) × u(k)
= y(k)
ディジタルの世界
53
乗算結果不一致の具体例
何と一致するか?
アナログの世界
2kHz の
2kHz の
4kHz の
正弦波 × 正弦波 = 正弦波 +直流
アナログの世界
2kHz の
2kHz の
4kHz の
正弦波 × 正弦波 = 正弦波 +直流
3kHz LPF
LPFなし
3kHz LPF
折り返し発生
直流
fs=6kHz のA/D
と一致
fs=6kHz のA/D
2
= 直流
=
ディジ
タル内で
折り返しが
発生
2
=
ディジタルの世界
ディジタルの世界
折り返し発生の例
乗算による折り返し誤差の発生
120
2乗信号
s(k)×s(k)
100
80
周波数
周波数
折り返し誤差は
ADするときに fs/2 以上の成分が
含まれていると発生する
ことは知っている。
スイープ
正弦波
s(k)
60
40
折り返し
しかしそれだけでなく、
20
10
20
30
40
50
60
時間
時間
ディジタル信号どうしを乗算した場合にも、
折り返し誤差が発生する。 (非線形処理も)
コンピュータ内で信号の乗算を行なうと
折り返しが発生するという例
対策は ?
ディジタル信号で
信号どうしの乗算を行う前には補間を!
信号どうしの乗算
信号周波数の増加(最大2倍)
乗算と補間の効果の例
サンプ
リング
周波数
fs
サンプリング周波数の見なおし
補間
2倍の補間を行って
(サンプリング周波数を上げて)
から乗算
2fs
x(k) の2乗信号
= 直流 +
( fs のcos波)
x(k) =
(fs/2) の cos波
信号
1
0
1
k
-1
0
1
1
0
-1
k
k
0
補間しておけば、乗算しても大丈夫
k
54
アナログ信号のたたみ込み結果と
ディジタルの信号のたたみ込み結果は一致する
周波数領域(DFT結果) の乗算にも同様の注意
例)パワースペクトルはスペクトルの2乗
アナログの世界
x(t) * u(t) =
y(t)
LPF
fs/2
LPF
fs/2
LPF
fs/2
A/D:fs
A/D:fs
A/D:fs
x(k) * u(k)
= y(k)
|X(p)|2
補間なし
スペクトル形状の
凸凹の頻度
は倍増
実際の
パワースペクトル
2倍補間
f
ディジタルの世界
たたみ込みは安心して実行できる。 乗算は注意。
◇最低でも2倍の補間は必要
(周波数軸上のサンプリング定理)
◇視覚的に谷などを明確にするためには多数倍の補間
周波数領域: z変換とDFT
周波数領域(DFT結果) の積の解釈
周波数軸上の積
Z 変換
[時間] : 無限長
[周波数]: 連続
周波数スペクトルの曲線に
高い周波数成分が発生する。
DFT
[時間] : 有限(周期)
[周波数]: 離散
補間の必要
周波数領域の乗算
周波数軸上の標本化周波数を増加
(= 補間)する必要性
アナログ
時間領域の直線たたみ込みに相当
Z 変換
時間領域では、円状たたみ込み
DFT
アナログに合わせるには対策が必要
補間効果の例: 1025Hz 付近拡大
補間効果の例
1025Hz 正弦波の分析結果 (パワースペクトル)
0
補間なし
-10
-20
-20
-30
-30
-40
-40
-50
-50
-60
-60
0
1000
0
2000
3000
周波数 [Hz]
4000
8倍補間
-10
-30
-30
-40
-40
-60
1000
2000
3000
周波数 [Hz]
4000
-60
2倍補間
16倍補間
-10
-15
0
1000
2000
3000
周波数 [Hz]
4000
-20
-25
16倍補間
-30
-35
700
-50
0
0
-5
0
-20
-50
2倍補間
-10
-20
補間なし
5
0
-10
0
1000
2000
3000
周波数 [Hz]
800
900
1000
周波数 [Hz]
1100
1200
4000
55
補間効果の例を見て
周波数軸上での補間の一方法
・ 周波数領域のサンプリング定理を満たす
ためには、2倍の補間は必須
周波数軸上での補間
= 時間軸上のゼロ詰め
・ 視覚的に十分な理解を得るためには、
それ以上の補間が必要な場合もある
x0, x1,…,xN-1 0, 0, …, 0
・ 何倍の補間が必要か、の一般論は無いが、
目的とする(視覚的な)結果が得られるためには、
補間が必要であることは理解できる。
N (または、3N,7N,...)
N
必要に応じて窓関数をかける
信号やスペクトルの乗算の際の注意点
(まとめ)
あらかじめ
乗算による周波数成分の増加の
準備をしておく
たたみ込み ( FIRフィルタリング)をFFTで行う手順
N点の信号 xk ,・・・, xk+N-1 と
N点のインパルス応答 b0 ,・・・,bN-1 とのたたみ込み
2N点
2N点
{xk ,・・・, xk+N-1,0,..0}
→ 補間、または
FFT
X(p, k)
N
N
{b0 ,・・・,bN-1 ,0,..0 } FFT B(p)
2N点
DFTの結果(=FFTの結果)の積は
円状たたみ込みだが、
ゼロを付加することで
直線状たたみ込みと同等の結果が
得られる
2N点
逆FFT
2N点
y(k)
Y(p, k)
乗算を行う逆領域での零づめ
直線状たたみ込みをFFTでできる
トータル長を,
2N,4N, 8N,...
などとして、FFT
2N点
たたみ込み演算の
結果と一致
FFTを用いたフィルタの実行(1)
bi
x(k)
切り出し(方形窓)
N
B(p)
0
FFT
2N
零づめ
X(p, k)
0
2N
Y(p, k) =B(p)X(p, k)
FFT
逆FFT
2N
y(k)
56
FFTを用いたフィルタの実行(2)
フィルタの実行(まとめ)
(overlap & add 法)
x(k)
◇ 差分方程式のプログラミング実行
N
◇ FIR は、入力と係数のたたみ込みで、
F-1(B・X)
FFT を利用すれば、演算量が低減
2N
+
◇ 時間波形どうし、周波数スペクトル(特性)
どうしの乗算は、補間をしてから
+
y(k)
フィルタの設計
4.ディジタルフィルタ
① ディジタルフィルタとは
1) アナログフィルタの設計式を利用
(IIRフィルタ:双一次変換、など)
② フィルタの種類 と 伝達関数
2) 設計ソフト、プログラムを利用
③ 極と零によるフィルタの 特性解析
3) DFTを使った簡易法(FIR)
4) その他
(特別な注意が必要な、
固定小数点DSP用の IIR フィルタ設計
などは、専門書参照)
④ フィルタの実行
⑤ フィルタの設計
簡易法
例)N=8 G(p) G(0) G(1)
G(2) G(3) G(5)~G(8)
= G(3)~G(1)
G(4)
◇ 所望するフィルタの周波数特性を、DFT の
値 G(p) として与える。これを 逆DFTして、
F -1
G(p)
g(k)
得られたインパルス応答 g(k) を係数として
FIR フィルタリングを行う。
p
G(p)
ゲイン
メリット:
自由な特性を
設計できる
勘違い例 (その1)
特性を設定
周波数
p
この特性の逆DFTを用いれば,
理想的な低域フィルタになるか?
しかし、このままでは不適切な場合も・・
57
勘違い例 (その2) 誤ったフィルタ動作
「すきま」の向こうに注意
サンプルのすきまに
リップルが存在
k
DFT
阻止帯域の
減衰量も
実は小さい
G(p)
p
見えていないだけ
不要な成分を
ゼロにする
k
p 補間すれば
見える
p
不適切な理由
N
k
DFT
p
逆DFT
コメント
この操作は、
周波数スペクトルの乗算
(= 時間領域のたたみ込み)
なので、結果の時間波形は、
長さが2Nになるべきなのに、
なっていない
→ 時間領域で折り返し誤差
=回りこみが発生している。
N
短時間スペクトル分析に基づいた信号処理
例えば、雑音除去などの時変フィルタリングを
周波数領域の乗算でおこなう場合には、
この点に注意する必要がある。
必要なら、時間信号の適切な窓掛けや、
フィルタ特性は一度時間に戻して窓をかけてから
利用、などの対策を行う。
k
p
逆DFT
その他の設計(実現?)法
1) 所望のインパルス応答を実現するフィルタ
→FIRフィルタ の場合は、
所望のインパルス応答をフィルタ係数とすればよい
頭部伝達関数(HRTF)、
室内音響シミュレータ、など
2) その他の演算によって得られるフィルタ
逆フィルタなど
(後述)
フィルタの設計(まとめ)
◇ 通常は各種設計プログラムの利用が
便利
◇ 簡易法を用いる場合は、いくつかの
注意が必要
58
信号処理対象のモデル化
講習概要 (発展編)
5.伝達関数による対象系のモデル化
6.インパルス応答の測定法
信号処理を行うにあたって、
対象とする系をモデル化し
数式で表現することが必要
7.逆フィルタ
8.適応フィルタとその応用
音響系を例に説明する
9.受音系における信号処理の応用
音の伝播の表現方法
波動方程式 (古典的表現)
スピーカから出た音がマイクロホンにどう伝わるかを、
数式で表現する(モデル化)
p ( x, y , z , t ) : x,y,z 点における時刻 t の音圧
∂2 p
∂2 p ∂2 p ∂2 p
= c2 ( 2 + 2 + 2 )
2
∂t
∂x
∂y
∂z
c: 音速
長所:任意の場所、任意の時刻における音圧を表現
短所:方程式が解けない
(解は存在するが、簡単な関数で表現できない)
→ 有限要素法
マイクロホン
スピーカ
( p.118)
伝達関数 (信号処理に適した表現)
X(z)
豆知識:マイクロホン記号
Y(z)
G(z)
「点から点まで」 の伝達特性 G(z) で伝搬を表現
コンデンサ
スピーカ
○
×
Y(z)=G(z)X(z)
長所: 複雑な系であっても、測定によって
求められる場合が多い
マイクロホン
59
伝達関数を用いたモデル化の例 (1)
音源
⇒ 発振器
空間
⇒線形系
⇒複数信号
は加算
対象となる系の入力と出力に注目して
伝達関数を用いた数式モデル(等価回路)
として記述する。
入力
出力
x(k)
y(k)
伝達関数を用いたモデル化の例 (2)
y(k)
楽器
(室内音響系)
~
人
G(z)
~
X(z)
Y(z)
( p.121)
伝達関数を用いたモデル化の例 (3)
S(z)
~
声帯
声道
(周期(パルス)信号) (全極モデル)
X2(z)
(歌声)
G2(z)
Y(z)
マイク
-信号分離問題-
X (z)
雑音が加わった音声
マイク
音声
Y(z)
G1(z)
伝達関数を用いたモデル化の利点の例
(音声生成系)
G (z)
X1(z)
(音楽)
音声
雑音
N(z)
対象や目的に適合したモデルの選定が必要
音声に加わった雑音を除去し、
クリーンな音声を再現したい
- 問題の定式化 -
伝達関数を用いたモデル化
問題の定式化
S(z)
音声
Y1(z)
GS1(z)
GN1(z)
マイク
GS2(z)
雑音
N(z)
GN2(z)
Y1(z)=GS1(z)S(z)+GN1(z)N(z)
Y2(z)
Y1 ( z ) = GS1 ( z ) S ( z ) + G N 1 ( z ) N ( z )
Y2 ( z ) = GS 2 ( z ) S ( z ) + G N 2 ( z ) N ( z )
行列表現
⎡ Y1 ( z ) ⎤ ⎡ GS1 ( z ) G N 1 ( z ) ⎤ ⎡ S ( z ) ⎤
⎢Y ( z ) ⎥ = ⎢G ( z ) G ( z ) ⎥ ⎢ N ( z ) ⎥
⎦
⎣ 2 ⎦ ⎣ S2
⎦⎣
N2
Y ( z ) = G ( z ) X( z )
Y1(z)、Y2(z) は受音信号であるので既知。
G(z) が既知であれば、S(z), N(z) を未知数とした連立方程式
60
-信号分離問題の解-
G(z) の逆行列、G-1(z)を用いて解ける
X ( z ) = G −1 ( z ) Y ( z )
−1
⎡ S ( z ) ⎤ ⎡ GS 1 ( z ) G N 1 ( z ) ⎤ ⎡Y1 ( z ) ⎤
⎢ N ( z ) ⎥ = ⎢G ( z ) G ( z ) ⎥ ⎢Y ( z ) ⎥
⎣
⎦ ⎣ S2
N2
⎦ ⎣ 2 ⎦
◇ モデル化を行うことで、複数のマイクロホンを
用いて (形式的には)複数の音源が分離できる
ことがわかる。
◇ ただし、実用的には、次の課題がある。
1) G(z) をどのようにして得るか(測るか)?
2)G(z) の逆行列は実現可能か(安定か)?
実用的な z 変換多項式の計算
理論式では z 多項式の計算であるが、実用的には
コンピュータ内部のデータがインパルス応答数列
であるので、それに応じた計算を行う
◇ 乗算 G (z)・X(z)
多項式の積の実体は、多項式係数のたたみ込み
なので、 時間領域と同様に、2つのインパルス
応答数列 (=多項式の係数)のたたみ込みを
行う
G (z)X(z) = Z[g(k)*x(k) ]
伝達関数の代表的な求め方
インパルス応答
g(k)={g(0), g(1), g(2), g(3) ...}
を測定できる場合は、これを z変換して求める。
L −1
G ( z ) = ∑ g (k ) z − k
k =0
= g (0) + g (1) z −1 + g (2) z −2 + g (3) z −3 + L
・ 理論的には上記の G(z) を用いる。
・ 実用的には、コンピュータ内部で
伝達関数と等価な、インパルス応答の数列で保存
実用的な z 変換領域(多項式)の計算 (2)
◇ 除算 X(z)/G (z)
・ 安定かどうかの判定が必要
・ 安定なら、多項式の除算をして z-1の級数として
展開し、有限で打ち切った(近似)展開係数
(多項式係数)をインパルス応答として保存
・ 必要がなければ割り算を実行せず、分数のまま
保存しておくのが良いかもしれない (安定判別不要)
◇ 加算
インパルス応答(=多項式係数) の和
→ G (z)+X(z) = Z[g(k)+x(k) ]
モデル化は必須か?
◇ 近年、Blind (ブラインド)処理、ニューラルネット
適応フィルタ、など、必ずしもモデル化を行わな
くても処理効果が得られる方法が提案されている。
◇ しかし、ブラックボックス処理では、性能が
十分でないとき、理由がわからず、改善方針が
たてられない。 ( 後述 )
信号処理対象のモデル化 (まとめ)
◇ 伝達関数を用いて、対象(音響系)を
モデル化 (等価回路表現)
することがディジタル信号処理の第一歩
◇ 伝達関数はインパルス応答より得られる
実用的演算は、インパルス応答数列
(=多項式係数)に対して計算する
⇒ 常にモデル化を意識することが大切
◇ 相対的な伝達関数で良いことも多い
(マイクロホンアレー処理など)
61
6.インパルス応答の測定法
講習概要 (発展編)
5.伝達関数による対象系のモデル化
6.インパルス応答の測定法
7.逆フィルタ
8.適応フィルタとその応用
9.受音系における信号処理の応用
◇ 測定法の概要
◇ 測定原理 (測定信号を選べる場合)
◇ 測定信号
・ TSP 信号: 信号と逆関数、演算量削減法など
・ M系列信号
◇ 測定上の注意点(過大入力による非線形誤差)
◇ その他: 同期加算、など
パルス法
インパルス応答測定法の概要
入力
s(k)
被測定系
g(k)
出力
y(k)
被測定系
δ(k)
?
g(k)
被測定系の入出力からインパルス応答 g(k) を測定
1)入力 s(k) を自由に設定できる場合
パルス法、TSP法、掃引正弦波法、M系列法
・ インパルスを入力とし、定義どおりに
インパルス応答を測定する方法
(欠点)入力信号エネルギーが大きくできない
ので、SN比が悪い
2)入力 s(k) は制御できない場合
クロススペクトル法、適応フィルタの利用
( p.158)
(注意) 計算機から見た 測定結果
δ(k)
D/A
&
LPF
被測定系
?
LPF
&
A/D
g(k)
望ましい 測定入力信号の条件
1) 大きなエネルギを持つ信号
→ SN比向上
2) ただし、ある特定の時間にエネルギが集中
すると、系の非線形が発生するので、
ほぼ一定の振幅で持続する信号
計算機
g(k)
3) 測定対象となる周波数成分を、
欠落無く含んでいる信号
4) 扱いやすく、性質の良い信号
測定結果には、AD,DA の LPF の特性も含まれる
62
望ましい 測定入力信号の例
1) 掃引正弦波 (Swept Sine Signal)
・ 直線掃引 (周波数の遅れ時間が周波数に比例)
TSP (Time Streched Pulse) [鈴木、浅野]
・ 対数掃引
(周波数の遅れ時間が周波数の対数に比例)
ピンクTSP [藤本](Log-TSP、Log-SS)
・ 雑音スペクトルに応じた掃引 [守谷、金田]
2) M系列 (擬似ランダム雑音)
6.インパルス応答の測定法
◇ 測定法の概要
◇ 測定原理 (測定信号を選べる場合)
◇ 測定信号
・ TSP 信号: 信号と逆関数、演算量削減法など
・ M系列信号
◇ 測定上の注意点(過大入力による非線形誤差)
◇ その他: 同期加算、など
測定原理は共通
測定原理
円状たたみこみを前提とした逆関数
- 逆関数と円状たたみ込みの利用 -
DFT
s(k)
① 測定信号 s(k) と、その 逆関数 を s-1(k) を作成
する。 ただし、s(k),s-1(k) は、ともに 長さがN
の信号であり、次の関係を満たす。
S-1(p) =
s-1 (k) @ s (k) = δ(k)
1
S(p)
逆 DFT
S-1(p)
ただし、@ は円状(巡回)たたみ込みを表す。
S(p)
s-1(k)
この方法は、直線たたみ込みを前提とした
逆フィルタの設計方法としては、不適当である(後述)
測定原理 (つづき)
円状(巡回)たたみこみ (再)
② 測定信号 s(k) を系に入力して、出力 y(k) を得る。
ただし、s(k) と 系のインパルス応答 g(k) とが、
円状たたみ込み となるようにする。
y(k)= s(k) @ g(k)
s(k)
y(k)
g(k)
N個とN個のデータを畳み込んで、N個の結果を得る
s(k) を 2周期発生させ、
2周期目に対応する出力
を y(k) とする。
直線たたみ込みでは 2N-1 個となる
N
直線たた
み込み
*
k
N
円状たた
み込み
2N-1
N
=
N
N
@
k
k
k
=
k
k
Nの長さからはみ出た分は回り込む
63
アナログ世界 (現実の系)で
円状たたみ込みを実行する方法
s(k)
s(k)
・ s(k) の長さN を
インパルス応答長
より長く定める。
・ s(k) を 2周期発生
させ、2周期目に対
応する出力を y(k)
とする。
IN
g(k)
OUT
N
N
y(k) は、s(k)
と g(k) との
円状たたみ
込み
y(k)
Nの長さからはみだした応答が、
回り込んでいるように見える
6.インパルス応答の測定法
◇ 測定法の概要
◇ 測定原理 (測定信号を選べる場合)
◇ 測定信号
・ TSP 信号: 信号と逆関数、演算量削減法など
・ M系列信号
◇ 測定上の注意点(過大入力による非線形誤差)
◇ その他: 同期加算、など
波形の引き伸ばしのイメージ
5
0
-5
0
500
1000
1500
2000
2500
3000
3500
4000
4500
4
3
2
1
0
-1
-2
-3
-4
0
500
1000
1500
2000
2500
3000
3500
4000
4500
0
500
1000
1500
2000
2500
3000
3500
4000
4500
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
② 測定信号 s(k) を系に入力して、出力 y(k) を得る。
ただし、s(k) と 系のインパルス応答 g(k) とが、
円状たたみ込み となるようにする。
y(k)= s(k) @ g(k)
s(k)
y(k)
g(k)
③ 得られた y(k) と 逆関数 s-1(k) と を計算機上で
円状にたたみこむ。
s-1(k) @ y(k)=s-1(k) @ s(k) @ g(k)
=δ(k) @ g(k) = g(k)
となって、インパルス応答 g(k) が得られる。
TSP信号
(Time Stretched Pulse)
◇ インパルス信号δ(k)のDFT(フーリエ変換)Δ ( p )は、
Δ( p) = 1
for all p
(定数倍は無視)
全ての周波数 p に対して等振幅・零位相
→ エネルギーが時刻 0 に集中
◇ TSP信号は、
周波数に比例した遅延(または進み)を与えて、
信号を引き伸ばす
(エネルギーを時間軸上に分散する)
→ 周波数 p の二乗に比例した位相成分
遅延の周波数表現
∫x(t) e - j 2πf t dt = X(f)
10
-10
測定原理 (つづき)
時刻 0 に
集中していた
エネルギーを
時間軸上に
引き伸ばす
(分散させる)
∫x(t-τ) e - j 2πf t dt =e - j 2πfτ X(f)
τの遅延操作 →e - j 2πfτ
◇ 周波数 f に比例した遅延 τ(f)=a f (a:定数)
を与える周波数操作は、
2
→ e - j 2πaf
◇ インパルスの周波数スペクトル(=1)に対して
この周波数操作をした信号のスペクトルは、
2
→ e - j 2πaf
64
TSP信号
TSP信号 の 定義式
◇ 周波数
p の二乗に比例した位相成分
◇ S(p) を逆DFT
した信号 s(k)
がTSP信号
(TSP-up)
⎧ exp(− jap 2 )
Sup ( p) = ⎨
2
⎩exp{ ja ( N − p) }
p = 0 ,1,L N/ 2
p=
a = mπ(2 / N)
N/ 2 + 1,L ,N − 1
6000
m : 整数
2
5000
⎧
exp( jap 2 )
S dwn ( p ) = ⎨
2
⎩exp{− ja ( N − p ) }
周波数[Hz]
(TSP-dwn)
p = 0,1, L N / 2
p=
N / 2 + 1,L , N − 1
(TSP-up)
4000
3000
2000
1000
0
0
0.2
0.4
0.6
0.8
1
1.2
時間[s]
( p.160~)
TSP信号 の 逆関数
Up & Down TSP
(TSP-up)
Sup(p)= exp(-jap2)
と
(TSP-dwn) Sdwn(p)= exp(jap2)
を乗算すると、全ての周波数 p で 1 となる。
(TSP-up)
t
(TSP-dwn)
δ(k)
t
※ (up が
おすすめ )
(TSP-up) と (TSP-dwn) とは、
お互いに逆関数の関係
演算量の削減法
円状たたみ込みを利用したTSP測定
IN
TSP信号の長さNをインパルス応答より長く定めて、
TSP信号 s(k) を2周期入力した時の出力 y(k) の
第2周期目と、s(k)の 逆関数とを、円状たたみ込み
すれば、インパルス応答 g(k) が得られる。
OUT
s(k)
s(k)
g(k)
y‘(k)
y(k)
cut
FFT
逆FFT
Y(p)
×
たたみ込み
(演算量)
N×N
例)N=210 :100万回
FFT
4N・log2N
S-1(p)
4万回
65
たたみ込みと FFT の補足
◇ 円状たたみ込みを周波数(DFT)領域で
行う場合には、零づめは不要
(長く延びた時間信号が回り込むのが
円状たたみ込み)
直線たたみ込みを周波数領域で行う
場合には、零づめ必要
( 参照: 4章ディジタルフィルタ ④フィルタの実行)
TSP は逆関数の
直線たたみ込みが可能
鈴木、浅野らの設計による TSP信号は、
波形の収束性が良いので、円状たたみ込みの
代わりに、直線たたみ込みを行っても、
誤差が小さい。
→ TSP 信号を2回鳴らす必要がない
→ あらかじめインパルス応答長を知る必要がない
欠点: FFT計算が使えない
参考文献:
http://tosa.mri.co.jp/sounddb/tsp/index.htm
M系列信号
M系列 (例:{0, 1, 0, 1, 1, 0, … }) の 0 と 1
をそれぞれ +1 と -1 に対応させた信号。
DA後
ランダムな
1,-1 信号
±1 しかとらない特
殊信号のようだが
M系列 の作り方
(Maximum length sequence)
n 次のM系列とは、
2n-1の周期を持つ 0 と 1 のランダム系列
◇作り方
0か1の値を持つ n段のシフトレジスタの
最終段を含む適切な段からの出力を
排他的論理和して、入力にフィードバック。
0 または 1
n=4
D1
D2
D3
D4
LPF後
ほぼ
白色雑音
M系列信号による測定
M系列信号 m(k)の長さNを
インパルス応答より長く定めて、
M系列信号 m(k) を2周期入力しした時の出力 y(k)
の第2周期目と、m(k)の 逆関数m(-k)とを、
円状たたみ込みすれば、インパルス応答 g(k) が
得られる。
円状たたみ込み → アダマール変換を利用
排他的論理和 (mod2の和)
6.インパルス応答の測定法
◇ 測定法の概要
◇ 測定原理 (測定信号を選べる場合)
◇ 測定信号
・ TSP 信号: 信号と逆関数、演算量削減法など
・ M系列信号
◇ 測定上の注意点(過大入力による非線形誤差)
◇ その他: 同期加算、など
参考文献のリストが掲載されている文献:
金田、“M系列を用いたインパルス応答測定...”
日本音響学会誌、52巻10号、(1996.10)
66
測定上の注意点
非線形誤差の例(M系列法)
ー 過大入力による非線形誤差 -
SN比を稼ごうとして、入力が過大になると、
非線形誤差が発生する。(特にスピーカ)
・ M系列法では、パルス性雑音が発生し
特に時間後半で目立つ
・ TSP-upでは、非因果(主応答の前)の
波形として現れる
対策: スピーカレベルの低減、
測定系に含まれる非線型要素の点検
TSP-up に現れる非線形誤差
TSP-up
4000
3500
3000
2500
Frequency
周波数
4000
3500
3000
Frequency
2500
3000
2000
1500
2000
1000
1000
0
0
500
0
0.1
0.2
0.3
Time
0.4
0.5
0.6
0
0.1
0.2
0.3
時間
0.4
0.5
Time
0.6
0.7
0.8
0.9
時間
TSP-up を使って、スペクトログラムで歪の有無を
検証することがおすすめ
測定信号レベルと測定誤差
雑音による誤差
測定誤差
周波数
TSP-dwn
5000
大
周波数
TSP-up とTSP-down に現れる非線形誤差比較
6000
4000
Frequency
・ TSP-dwn では、
インパルス応答の中に非線形誤差が含まれ、
目立たない。用途や誤差の大きさによっては、
良い場合もある。
・ TSP-up では、
スペクトログラムで非線形誤差の存在がよく
わかる。インパルス応答の負の時間方向に
非線形誤差が出現するので、信号レベルを
小さくして非線形誤差を小さくしないと不自然。
周波数
TSPと非線形誤差
2000
小
1500
非線形による誤差
最適レベル
1000
500
0
時間
0
0.1
0.2
0.3
0.4
0.5
Time
0.6
0.7
時間
0.8
0.9
小
測定信号レベル [dB]
大
TSP-dwn では、歪が見えないことがある。
67
6.インパルス応答の測定法
◇ 測定法の概要
◇ 測定原理 (測定信号を選べる場合)
◇ 測定信号
・ TSP 信号: 信号と逆関数、演算量削減法など
・ M系列信号
◇ 測定上の注意点(過大入力による非線形誤差)
◇ その他: 同期加算、など
同期加算
SN比の改善に良く利用される手法
測定したインパルス応答の
時間軸を合わせて平均化
g(k)+ノイズ
ランダムな雑音成分が減衰し
N回の平均で、SN比を
10log10(N) [dB] 改善
時不変非線形による誤差には
効果がない
入力が制御できない場合の測定法
インパルス応答の測定(まとめ)
◇ クロススペクトル法(省略)は
経験とカンが必要
・ 逆関数と円状たたみ込みを利用して
インパルス応答を計測する。
◇ 多少誤差があっても良いなら、
・ 性質の良い測定信号として、
TSP や M系列が用いられる。
適応フィルタ (後述) の利用が簡便
( p.159)
・ 過大入力による非線形誤差には
注意が必要である。
(同期加算でも低減できない)
今後の課題
・ 各測定信号の長・短所の比較検討
・ 目的に応じた測定信号、測定手順の
選択指針作成
・ ノートパソコンなどで質のよいインパルス
応答測定ができるような環境作り、
ノウハウの蓄積、開示。
68
講習概要 (発展編)
7.逆フィルタ
5.伝達関数による対象系のモデル化
◇ 逆フィルタとは
6.インパルス応答の測定法
◇ 安定性
7.逆フィルタ
◇ 近似的実現方法
◇ 具体的計算方法
8.適応フィルタとその応用
◇ 多入出力形逆フィルタ
9.受音系における信号処理の応用
逆フィルタの例 (理想的残響除去)
逆フィルタ
X(z)
G(z)
X(z)
Y(z)
Y(z)
逆フィルタ
H(z)
X(z)
Y(z)=G(z)X(z)
G(z)
Y(z)=G(z)X(z)
伝達系で変形した信号 Y を元の信号 X に戻す
X(z)
出力Y(z) から 入力X(z) を復元するフィルタ
逆フィルタ
X(z)
Y(z)
H(z)
G(z)
H(z)=1/G(z)
H(z)Y(z) = H(z) G(z) X(z) = X(z)
H(z) Y(z) = X(z)
( p.124~)
z 変換 ・ DFT と逆フィルタ
振幅の逆フィルタ
・ (いわゆる)イコライザ
・ グラフィックイコライザ
z 変換 → 無限の信号長
を扱える
X(z)
残響などの波形の変形は
復元できない
G(z)
Y(z)
DFT → 有限の信号長
インパルス応答(有限長)を
DFTして求めた周波数特性
G(p)
H(z)=1/G(z)
H(p)=1/G(p)
正しい逆フィルタ:
問題は H(z) の安定性
誤った逆フィルタ:
有限長の逆数は無限長
であり、DFT では表せない
69
再度、ディジタル信号と
DFTスペクトルの乗・除算に注意
DFT 周波数特性の逆数
1) 伝達系のインパルス応答 g(k) を測定
2) DFT により周波数特性 G(p)を計算
p:離散周波数
3) G(p) の逆特性 H(p) = 1/G(p)を計算
4) H(p) を逆DFTして、逆フィルタの係数
(=インパルス応答) h(k)を計算
・ G(p) H(p) = 1 とはなる。
・ しかし、ステップ 3) において、周波数領域の
サンプリング定理が満たされなくなる。
◇ 周波数成分の乗算・除算をすると
周波数特性の凹凸の頻度
(f 軸を時間軸と考えた場合の周波数成分)
が増大し、周波数軸の
標本化定理を満たさなくなる。
◇ 乗算は、標本周波数を2倍にすれば良い。
◇ 割り算はたちが悪い。
(かなりの高周波も発生するので、
2倍程度ではだめ)。
DFT 周波数特性の逆数 1/G(p)の意味
H(p) =
7.逆フィルタ
1
G(p)
・ DFTとは、N点の周波数特性と
N点の時間波形の関係づけ
◇ 逆フィルタとは
・ 本来は無限長である逆フィルタのインパルス応答
を表すことができない。
◇ 近似的実現方法
・ H(p) を逆DFTしたN点の時間信号 h(k) は、
無限長の応答をN個に圧縮したもの(時間軸での
折り返し誤差)。 → 誤った逆フィルタ
◇ 多入出力形逆フィルタ
◇ 安定性
◇ 具体的計算方法
・ 円状たたみこみに対しては逆フィルタとなる
逆フィルタの安定性
逆フィルタの簡単な例(伝達関数)
x(k)
u(k)
G(z) の 逆フィルタ
:IIR
z-1
は、不安定となる場合も多い。
u (k ) = x(k ) − cx(k − 1)
1
H ( z) =
G( z)
x(k-1)
-c・x(k-1)
-c
G( z) =
簡単な例を用いて、安定条件を
調べる。
U ( z)
= 1 − cz −1
X ( z)
この回路の伝達関数
( p.125~)
Z
U ( z ) = (1 − cz −1 ) X ( z )
H ( z) =
1
1
=
G ( z ) 1 − cz −1
この回路の逆フィルタの
伝達関数
70
練習: 逆 z 変換
逆フィルタの簡単な例(回路導出)
1
1
H ( z) =
=
G ( z ) 1 − cz −1
逆フィルタ H(z)
Y ( z) =
のインパルス応答を計算してみる
( 時刻 k= 0,1,2,3 まで)
(1 − cz −1 )Y ( z ) = U ( z )
H (z )
y ( k ) = u ( k ) + cy ( k − 1)
Y ( z ) = U ( z ) + cz −1Y ( z )
z 変換
インパルス応答
Z-1
伝達関数
y(k)
u(k)
逆 z 変換
逆 z 変換
1
U ( z)
1 − cz −1
y(k-1)
cy(k-1)
・ 複素積分
・ z-1 で級数展開
z-1
c
逆フィルタの回路
FIR フィルタの逆フィルタ
逆フィルタの簡単な例(インパルス応答)
F I R フィルタの
y(k)
u(k)
y(k-1)
cy(k-1)
z-1
x(k)
u(k)
z-1
逆フィルタは
x(k-1)
-c
c
インパルス応答は
u(k)
I I R フィルタ
(無限長応答)
cy(k-1)
{1, c, c2, c3, …}
インパルス応答は
y(k-1)
z-1
{1, c, c2, c3, …}
例
逆フィルタは不安定となる場合がある。
逆フィルタが安定な条件
最小位相だと安定な理由
Imag
Q
線形系 G(z) が、最小位相系であること
G(z) =
最小位相系とは (定義):
G(z) の全ての極 pi と 零 qi の絶対値が1未満
| pi |<1, | qi |<1
i = 1,2,3,...
複素平面上
単位円内
b0Π(1- qi z-1)
i =1
P
逆フィルタでは、
零と極が入れ替わる
Π
(1- pi z-1)
i =1
Real
−1
先ほどの例: G ( z ) = 1 − cz
零点は z=c
y(k)
c
・ この逆フィルタは IIRフィルタ。
・ |c|≧1 の時、逆フィルタは不安定となる。
(発散する)。
:極
:零
-c・x(k-1)
逆フィルタ
P
H(z) =
Π
(1- pi z-1)
i =1
よって、G(z) の零 qi が
単位円内に無いと
逆フィルタは不安定
Q
b0Π(1- qi z-1)
i =1
G(z)が最小位相系、が
逆フィルタの安定条件
(極 pi が | pi |<1 は、線形系 G(z) の安定存在条件)
71
最小位相系でない、とは (1)
最小位相系でない、とは (2)
最小位相系でないのは、どのような時?
① G(z) の零点 qi が | qi |=1 の時。単位円上の零。
→ 周波数特性上の零がある
逆特性は
無限大に発散
ある周波数でゲインが零
Ω
c
1
0
1
|G(ejΩ)|
|G(ejΩ)|
② G(z)の零点 qi が | qi |>1 の 時、
信号エネルギーの遅れがある。
1
k
左の図の応答で、
|c|>1
| qi | >1
信号エネルギーの
主要部が遅れる。
遅れを回復する事(=時間を進める事)はできない。
Ω
( p.129)
7.逆フィルタ
◇ 逆フィルタとは
◇ 安定性
◇ 近似的実現方法
◇ 具体的計算方法
逆フィルタの近似的実現
・ 最小位相系でない伝達系も多い
・ 非最小位相系の信号回復
の要求も多い
→ 安定性の保証されたFIRフィルタで
逆フィルタを近似的に実現
◇ 多入出力形逆フィルタ
( p.129)
代表的な近似方法
◇ 最小2乗原理に基づく方法
(時間領域での設計法)
・ 行列計算
(測定したインパルス応答を用いて)
・ 適応フィルタの利用
(実環境での計算)
(インパルス応答は未知でよい。
計算量が少ない)
◇ 直線たたみ込みを円状畳み込みで近似
(周波数領域の設計法)
最小2乗原理の考え方
原信号
δ(k)
+
回復
変形
G g(k) H
y(k)
近似逆フィルタ
e(k)
誤差
原信号を良好に回復
→ 逆フィルタの出力 y(k) と原信号δ(k) との
誤差e(k)のエネルギー J を最小にするような
FIRフィルタ を求める。
J = ∑{δ(k) − y(k)}2 = ∑{δ(k) −∑g(k −i)h i }2
k
k
i
g(k), h i : G,H の インパルス応答
72
近似的逆フィルタの導出式
J = ∑ {δ(k ) − y (k )} 2 = ∑ {δ(k ) − ∑ g (k − i ) h i } 2
k
k
i
この J を最小とするような
FIR型近似逆フィルタ H のフィルタ係数hi を求める。
J は、hi の2次関数であるので、
(解法1) 次の連立方程式を解いてhi が求まる。
∂J
∂J
= 0
= 0, L ,
∂ h Lh
∂ h1
∂J
= 0,
∂h0
近似的逆フィルタの問題点
G が非最小位相系である場合、
不安定な逆フィルタをそのまま近似しても
良い結果は得られない。
対策
(1) 雑音の付加
(2) 遅延の付加
◇ ただし、実用的には、後で述べる行列算法や、
適応フィルタの利用(低演算量)で計算される
雑音の付加
遅延の付加 (Delayed Inverse)
遅延
δ(k)
+
+
G g(k)
y(k)
H
+
誤差
δ(k-m)
z-m
e(k)
δ(k)
G g(k)
H
回復
雑音 n(k)
+
y(k)
e(k)
誤差
・ G による遅れを補償する
不安定な部分を近似すれば、
雑音が増幅されて誤差が増大。
→ 不安定部の近似を回避
(性能は雑音の大きさで調整)
・ 非最小位相系の逆フィルタは
因果だが不安定、または、
安定だが非因果な応答になる。
そのうち、安定だが非因果な成分を反映。
・ 遅れても良いなら 大変有効
良好な近似逆フィルタを得るための
ブロック図
遅延
gf(k-m)
z-m
δ(k)
+
+
G g(k)
y(k)
H
+
e(k)
誤差
雑音 n(k)
7.逆フィルタ
◇ 逆フィルタとは
◇ 安定性
◇ 近似的実現方法
◇ 具体的計算方法
◇ 多入出力形逆フィルタ
上図において J = ∑ e (k )
2
を最小化
k
73
行列算法 (たたみ込み行列 G)
たたみ込み行列演算
G
0 ⎤
0
0
L
⎡ g (0)
⎢ g (1)
g
(
0
)
0
M ⎥⎥
⎢
⎢ g (2)
⎥行で見ると
g (1)
g (0)
0
⎢
⎥インパルス
g (2)
g (1)
g (0)
⎢ g (3)
⎥
応答の逆順
⎢ M
⎥
M
M
O
⎢
⎥
−
−
(
0
)
g
(
N
)
g
(
N
1
)
g
(
N
2
)
g
⎢
⎥
⎢ 0
g(N )
g ( N − 1)
M ⎥
⎢
⎥
0
g(N )
M ⎥
⎢ 0
⎢ 0
⎥
0
0
O
⎢
⎥
⎢⎣
g ( N )⎥⎦
たたみ込みを表す行列方程式
G と y が与えられた
時、方程式を満たす
ような未知数 h を求
G h
める。
0
0
0 ⎤
⎥
0
g (0)
⎥ ⎡ h(0) ⎤
⎥⎢
g (1) g (0)
⎥
⎥ ⎢ h(1) ⎥
M
O
⎥ ⎢ h(2) ⎥
g (0) ⎥ ⎢
⎥
⎥ M ⎥
g(N )
M ⎥⎢
⎢⎣h( L)⎥⎦
⎥
0
g(N )
⎥
0
O g ( N )⎥⎦
y(k)=g(k)*h(k)
y
=
⎡ y (0) ⎤ ⎡ g (0)
⎢ y (1) ⎥ ⎢ g (1)
⎢
⎥ ⎢
⎢ y (2) ⎥ ⎢ g (2)
⎢
⎥ ⎢
⎢
⎥=⎢ M
⎢
⎥ ⎢g(N )
M
⎢
⎥ ⎢
⎢
⎥ ⎢ 0
⎢
⎥ ⎢
⎢
⎥ ⎢
⎢⎣ y ( N + L)⎥⎦ ⎢⎣
信号ベクトル h =
[h(0),h(1),h(2), ・・・,
h(L) ] との積はたた
み込みになっている
L+1
インパルス応答 [g(0), g(1), g(2), g(3), ・・・, g(N-1), g(N)] を
縦ベクトルとして、1段ずつずらして並べた行列
0
⎡ g (0)
⎢ g (1) g (0)
⎢
⎢ g (2) g (1)
⎢
M
⎢ M
⎢g(N )
⎢
g(N )
⎢ 0
⎢
0
⎢
⎢⎣
0 ⎤
⎥
G
⎥ ⎡ h(0) ⎤
⎥⎢
⎥
⎥ ⎢ h(1) ⎥
O
N+1
⎥ ⎢ h(2) ⎥
L+1
+L
g (0) ⎥ ⎢
⎥
⎥⎢ M ⎥
M ⎥
⎢
⎥
⎥ ⎣ h( L ) ⎦
g(N )
⎥
O g ( N )⎥⎦ 例えば
0
3行目=g(2)h(0)+
g(1)h(1)+g(0)h(2)
行列は、縦長行列
0
0
g (0)
最小2乗原理に基づく計算法
δ =
G
h
ただし、δ はδ関数
[ 1, 0, 0, 0, ・・・ ]T
T:転置
理想解として、 y=δ とおく。 しかし、
G が縦長行列なので、この方程式を満たす
解 h は存在しないが、(δ-Gh)の2乗誤差
を最小にする h は、 次式で求められる
(
h = GT G
)
−1
GT δ
( p.155)
不安定対策
1) 雑音の付加
g(k) に 微小な(-40~-60dB程度、用途に依存)
雑音を付加して計算をする。
2) 遅延の付加
目標出力 δ (または δ’)の時間をずらす
(全長の 1/2 程度)
[ 1, 0, 0, ・・・] → [ 0, 0, ・・・, 0, 1, 0, ・・・, 0, 0 ]
周波数領域の計算法
◇ 基本的には、インパルス応答 g の DFT G
の逆数 1/G の 逆DFT で求めるが、
そのままでは時間軸での折り返し現象が
σ
おきて誤差が増大する。
◇ 最も簡易な対策はGの谷を埋めることである。
例えば、G(f) → G(f) + σ
σは、定数で、Gの最大値の-40~-60dB程度の値
Ω
詳しくは、例えば、
鈴木、浅野ほか:“音響系の伝達関数の模擬をめぐって(その1)”
音響学会誌、44巻12号、pp.936-942 (1988)
74
多入出力形逆フィルタ(MINT)
7.逆フィルタ
s
◇ 逆フィルタとは
◇ 安定性
G1
H1
G2
H2
s
+
◇ 近似的実現方法
G1やG2 が非最小位相であるため、個々の経路の
逆フィルタ Hi(z)=1/Gi(z) ( i=1,2 ) が不安定
であっても、経路を複数設ければ、
H1(z)G1(z)+H2(z)G2(z)=1
となる H1(z)、H2(z) は安定なフィルタとなる。
◇ 具体的計算方法
◇ 多入出力形逆フィルタ
( p.133)
多入出力形逆フィルタの
簡単な解釈
s
G1
H1
G2
H2
+
音場制御における多入力逆フィルタ
s
s
sss
H
G
受聴点
s
G1 に 非最小位相零があって、
逆特性が得られない周波数帯域は、
G2 の逆特性を利用する。また逆も同じ。
自由度を増やせば、無理なく逆フィルタ
が得られる。
H1
G1
H2
G2
s
H1G1+H2G2=1
部屋やスピーカの特性を
キャンセル(逆)しないと
所望の音にはならない。
が、1チャンネルで無理
をするとうまく行かない。
2チャンネルなら
うまくいく。
MINT は
チャンネル数を増すと
音場制御効果が上がる
理論的根拠を与える
逆フィルタのまとめ
◇ G(z) の特性の逆フィルタ 1/G(z)は、
G(z) が最小位相系でないと不安定になる
◇ 逆フィルタが不安定な時は、
以下の点を考慮してFIRフィルタで近似。
1)系Gの谷をつぶしてから逆フィルタを計算
(雑音付加が相当)
2)回復の目標信号に遅延を許す
(Delayed Inverse)
◇ 構成することが可能であれば
多入出力逆フィルタは有効
75
適応処理とは
講習概要 (発展編)
5.伝達関数による対象系のモデル化
状況に応じた適切な処理
6.インパルス応答の測定法
非適応な処理 (旧型の処理形態)
状況によらず一定の処理
状況が変化しても同一の処理
7.逆フィルタ
8.適応フィルタとその応用
9.受音系における信号処理の応用
一次元音場*の騒音制御
適応処理の例
(* 音の進行方向が一次元)
簡単な適応処理
ダクト
掃除機や洗濯機の (強 ・ 中 ・ 弱)
高度な適応処理 (波形の制御)
GX 消去点
X
N
マイク
G
WX
スピーカ
騒音源
W
騒音制御、ほか
・ W=-G とすれば、騒音は消去される
・ GX と WX の波形の一致が必要
・ Gの変化に対応する必要がある
高度な適応処理
適応フィルタとは
d(k) 目標信号
適応フィルタ
最適なフィルタ特性を自動的に計算し、
実行するディジタルフィルタ
・ DSP (Digital Signal Processor)
の進歩に伴って実用化が進む
・ さまざまな適応信号処理 発展の原動力
入力
x(k)
適応フィルタ
目的信号
出力 + 希望信号
y(k) -
w(k)
誤差 e(k)
x と d が与えられた時、d に似た y を合成して
誤差 e のパワーを最小とする機能を持つフィルタ
自動的に誤差パワーを最小化する
( p.136)
76
一次元騒音制御における
適応フィルタの適用例
適応フィルタの代表的応用例
ダクト
d
N
1) 未知系の同定
(未知系の持つ入出力特性の推定)
消去点
G
騒音源
X
2) 逆フィルタの設計
適応フィ
ルタ W
3) 予測
(未来の信号の予測)
誤差
e
自動的に -G の特性を持つ
未知系の同定
入力 x(k)
未知系
?
d(k)
Room-A
Room-B
エコーキャンセラ
適応フィルタ
w(k)
同定の例 (音響エコーキャンセラ)
出力 +
y(k) -
誤差 e(k)
ネット
ワーク
エコーキャンセラ
適応
フィルタ
伝達特性
-
+
エコー
同じ入力x(k) に対して、同じ出力を出すフィルタ係数、
エコー消去
w(k)が求まれば、w(k) が未知系の特性と考えられる。
エコー発生
インパルス応答の測定法としても利用される
逆フィルタの設計
予測
d(k)
d(k)
現在
d(k)
未知系
?
x(k)
y(k) +
適応フィルタ
-
w(k)
誤差 e(k)
・ 未知系によって変形した原信号の回復を最適化
・ 必要に応じて、遅延や雑音を付加する(→ 逆フィルタ)
d(k)
現在
x(k)
遅延
過去
y(k) +
適応フィルタ
-
w(k)
誤差 e(k)
・ 過去の信号を用いて、現在の信号を
予測できるように学習させる
・ 学習後、x(k) に現在の信号を入力(遅延0)すれば、
未来が予測できる
77
予測の応用
d(k)
遅延
現在
適応フィルタによるハムの除去例
1
d(k)
x(k) 適応フィルタ y(k) -+
w(k)
過去
0.5
処理前
0
-0.5
-1
誤差 e(k)
適応フィルタの内部構成
1
1.5
2
2.5
3
3.5
2
2.5
3
3.5
1
適応フィルタ
ON
0.5
0
-0.5
-1
0
0.5
1
1.5
sec.
フィルタ部(可変FIRフィルタ)の構成
出力
y(k)
フィルタ部
0.5
sec.
実際には、予測できるのは、d(k) に含まれる周期成分
→ y(k) を出力 → d(k) に含まれる周期成分の抽出
(雑音に埋もれた周期信号の抽出)
→ e(k) を出力 → d(k) に含まれる周期成分の除去
(ハムキャンセラ、など)
入力
x(k)
0
フィルタ係数
入力
x(k)
x(k-1)
x(k-2)
x(k-L+1)
Z-1
Z-1
Z-1
w1(k)
w2(k)
w3(k)
wL(k)
適応アルゴリズム
誤差
出力 y(k) は、入力 x(k-j+1) と、係数 wj(k)
e(k)
出力
y(k)
との積和 (たたみ込み) として得られる。
時間によって
変化する
誤差パワー
2次関数の特長
L
j=1
e(k) = d(k)-y(k)
適応フィルタの目標:
誤差パワー J=E[ e(k)2 ] を最小化
2次関数
係数 w
J = E[{d(k)-y(k) }2]
誤差パワー
誤差パワー
y(k) = Σwj(k) x(k-j+1)
多次関数
係数 w
誤差パワーが係数の2次関数であると、...
・ 唯一の最適解が存在し、解析的に求めることが容易
= E[{d(k) ーΣwj(k) x(k-j+1) }2]
誤差パワー J は係数 wj(k) の2次関数である
( p.138)
・ 誤差パワーが小さくなるように係数を修正すれば、
探索的に求めることも容易
78
誤差曲面の等高線表示 (L=2)
誤差曲面 (L=2)
誤差パワー
係数 w2
w(k)
w(k+1)
係数 w1
係数 w2
最適フィルタ係数
係数 w1
誤差パワーの最小値を与える係数が、最適フィルタ係数
この w(k) を少しずつ修正していって、最適フィルタ係数
に近づけていく。
修正の方針 → 誤差パワーが最大減少する方向
(急斜面)
係数の修正方法(適応アルゴリズム)
ある点での最大減少方向
-
∂e2(k)
∂w
係数 w2
w(k)
w(k+1)
= 2・e(k)・x(k)
学習同定法
(最も広く利用されている)
w(k+1)=w(k)+
係数 w1
x(k)=[x(k),x(k-1)]T
(最も簡単な適応アルゴリズム)
w(k+1)Tx(k) =w(k)Tx(k) +
修正は、入力 x と誤差 e に基づいて行われる
d(k) +
誤差e(k)
FIRフィルタ
出力
y(k)
同定
◇ FIRと系が同じ特性を持つということは、
系のインパルス応答 ≒ FIR のインパルス応答
◇ FIR のインパルス応答 = フィルタ係数
∴ 最適なフィルタ係数は、系のインパルス応答の推定値
(TSPなど測定用入力が利用できない場合の推定法)
( p.141)
収束速度と定常誤差の関係
収束速度
誤差パワー
-
e(k)・x(k)Tx(k)
x(k)Tx(k)
= y(k)+e(k)
= d(k)
μ:ステップサイズ
適応フィルタはインパルス応答の推定手段
e(k)・x(k)
α:ステップサイズ
(0<α≦1)
α=1, β=0 のとき
w(k+1)=w(k)+2μe(k)・x(k)
系G
α
x(k)Tx(k)+β
最適フィルタ係数
フィルタ係数の修正 (LMS 法)
入力 x(k)
時刻 k におけるフィルタ係数
を w(k) と表す。
w(k)=[w1(k),w2(k)]T
定常誤差 (トレードオフ)
ステップ
大
サイズ
α
早いが誤差が大きい
遅いが誤差が小さい
小
修正回数 k
( p.146)
79
入力信号による収束速度の差
入力信号と収束速度
有色スペクトルの信号は収束が遅い
誤差パワー
◇ 適応フィルタの収束の早さは、
入力信号の性質に依存
白色雑音
白色信号 → 速い
有色信号 → 遅い
音声
各種高速アルゴリズム
→ 主として信号の白色化
修正回数 k
( p.146)
適応フィルタがうまく動作する例
(適応雑音抑圧処理)
S
G
騒音N
S+G・N
+
-
W・N
適応フィ
ルタ W
N
G の特性を持って騒音Nを消去
G1
騒音N1
騒音N2
G2
N1+N2
S
S
騒音N1
騒音N2
誤差
( p.148~)
複数の雑音源が存在する場合
S
誤差パワーが小さくならない
(適応フィルタがうまく動作しない)例
S+G・N1
+
-
G
N2
適応フィ
ルタ W
誤差
モニタしているのは、消すべき騒音N1とは異なった
騒音N2 (騒音N2から騒音N1をつくることは不可能)
モニタマイク M0 で受音する雑音に
伝達特性GM が付加される場合
S+G1N1
+G2N2
+
-
S
S+G1N1
+
-
G1
適応フィ
ルタ W
誤差
複数の騒音N1,N2 が複数の経路G1,G2で受音されて
いる場合。適応フィルタは、G1となってN1を消去すること
はできるが、その場合、N2は消去できない。
騒音N1
GM
適応フィ
GMN1 ルタ W
M0
誤差
雑音を消去するためには、適応フィルタの特性は、
G1/GM となる必要があり、これは逆フィルタとなるので、
不安定な場合は、雑音を消去できない
80
適応フィルタが良好に動作するためには・・・
誤差パワーを小さくするフィルタが
理論的に存在すること が必要条件である
(その特性は不明や時変でもよい)
動作不良の場合は理論的考察が必要
今後の展望
・ 適応信号処理は高度な処理ゆえに
計算コストがネックであった。
・ 近年のDSP技術の進展に伴って
処理コスト解決の見通しが得られた。
・ 今後は各種の民生機器への導入が
急速に進展するものと考えられる。
存在が保証されていれば、
x と d を与るだけで、自動的に、
誤差パワーを小さくする特性を見出す。
81
講習概要 (発展編)
受音系における信号処理の応用
5.伝達関数による対象系のモデル化
6.インパルス応答の測定法
◇ マイクロホンアレー*)による指向性制御
(信号の遅延時間制御)
7.逆フィルタ
◇ 音の方向検出
(相互相関関数による信号の時間差検出)
8.適応フィルタとその応用
*) 複数のマイクロホンよりなる受音装置
9.受音系における信号処理の応用
マイクロホンアレーによる指向性制御
加算形アレー(遅延和アレー)の原理
τ
2種類の制御方針
M1
1)加算形: 目的音を強調
遅延和アレー (超指向性アレー)
遅延
2τ
d
θ
2)減算形: 不要音(雑音)を除去
適応型アレーなど
遅延
τ
M2
+
M3
τ= d sinθ / c
θ:目的方向
c:音速
( p.181)
( p.174)
遅延和アレー
(超指向性アレー)の指向特性
遅延を変えれば
指向性を変えることができる
通話者
M3
M2
θ
d
鋭い指向性
を作る
M1
τ
遅延
τ
+
雑音
遅延
2τ
82
ディジタル技術を利用すれば
簡単に任意の遅延を実現できる
アナログ遅延器のインパルス応答
1) サンプリング周期 Ts の整数倍の遅延の付与
(遅延 τ=nTs の場合 n:整数)
信号を、時間 τ だけ遅らせるアナログ遅延器
のインパルス応答 は、δ(t –τ)
信号を n サンプル分
シフトすれば(遅らせれば)よい
δ(t)
細かい遅延制御を行うには、
サンプリング周波数を上げて、
細かくサンプリングすれば良い
遅延器
τ
δ(t –τ)
δ(t –τ) に相当するディジタルインパルス応答
(= δ(t –τ) を AD変換した信号)
を持ったディジタルフィルタを実現すればよい。
2) ディジタルフィルタを利用した任意遅延の付与
( p.215)
遅延量のインパルス応答の離散化
δ(t)
理想
LPF
A/D
sin {πk }
πk
遅延ディジタルフィルタのインパルス応答
h(k) =
[sinc 関数]
sin {π( k -τ/Ts)}
π( k -τ/Ts)
k=0 以外では 0
δ(t –τ) 理想
LPF
A/D
sin {π( k -τ/Ts)}
π( k -τ/Ts)
k: 離散時間(整数)
Ts: 標本化周波数
sinc 関数を
τ/Ts サンプル
シフトした信号
FIRフィルタによる時間 τ の遅延器
τ/Ts
・ Nタップの FIR フィルタで実現するには、0 ~ N-1 の
範囲で h(k) を 切り出して、h(0),・・・,h(N-1) を
フィルタ係数とする。
注) τが小さい場合には打ちきり誤差が大きい
→ 可能なら、k<0 の部分も係数とする。
指向特性の制御
ディジタルフィルタの係数(プログラムの変数)
を変えることで、遅延が自由に制御できる
FIR フィルタ
x(k)
x(k-τ/Ts)
0
k
0
→ 指向特性の自由な制御
t
τ/Ts
標本化周期 Ts で
DA すれば、
時間τ遅れた
アナログ信号
が得られる
83
遅延時間τがわかれば、
音源方向θがわかる
音源方向検出
τ
1) 指向性のビームをスキャンして、
最大パワーとなる方向を検出
M1
2) 相互相関関数を利用した方向検出
x1(k)
d
θ
3) 多チャンネル相関行列を利用した
高分解能信号処理 (p.203)
M2
x2(k)
τ= d sinθ / c
θ:音源方向
c:音速
θ= sin-1(cτ/d)
( p.197)
相互相関関数
2つの信号 x1(k) と x2(k)
との 相互相関関数
x1(k)
t φ12 (τ) = ∑ x1 (k +τ ) x2 (k )
x2(k)
遅延時間の検出
x1(k)
2つの信号、
k
τ:離散時間 (整数)
t
t
x1(k) をτだけ
ずらしながら
2つの波形の積の
総和を計算。
重なったところで最大
(積がすべて正となる)
最大値の位置に注意
相互相関関数
φ12 (τ )
τ
0
τs
ここではなく
x2(k)
t
x1(k) と x2(k) の
t
相互相関関数
φ12(τ)
のピーク値を与える
τの値が
τs
τsを与える
音源追従
マイクロホンアレーシステム
1) 2つのマイクロホンで得られた信号の
相関関数φ12(τ)を計算。
2) 相関関数が最大値をとるτの値τsを求める。
こちら
3)音源方向θsを求める。
(方向検出方法は他の方法でも可)
4)θs方向に指向性ビームを形成
方向の推定精度をあげる場合、
必要に応じて補間を行う
84
2種類の指向性制御方式の比較
減算形アレーによる雑音の消去
1) 加算形:目的音を強調
超指向性アレー
○処理が簡単 ×大規模
雑音
遅延器
D
M1
y
1
d
M2
2)減算形:不要音(雑音)を除去
適応型アレー
○小規模 ×処理がやや複雑
d sinθN
適応フィルタを用いた遅延の推定
適応形マイクロホンアレーの構成
θN
+
τN
可変フィルタ
雑音
h1
θN
y
y
d
M2
hM
+
マイクロホン
アレー
τN
d sinθN
+
h2
適応
フィルタ
M1
フィルタ
制御部
( p.186~)
適応形マイクロホンアレーの実験例
雑音抑圧効果のデモ
0
(目的音) (不要音)
(1) 音声 + 雑音 :無指向性マイク
(2) 音声 + 雑音 :適応形アレー
To desired sound
-10
雑音源
マイクロホン
(a)
Relative responce (dB)
8.5 cm
-20
To undesired
sound
-30
-40
0
1
2
Frequency (kHz)
壁
3
4
(3) 音声 + 音声 :無指向性マイク
(天気予報) (ニュース)
(4) 音声 + 音声 :適応形アレー
マイクロホン
アレーの位置
目的音源
(b)
85