• 検索結果がありません。

)exp(

ドキュメント内 Microsoft PowerPoint - 回路デジタル (ページ 60-76)

z

-1

a

e

i

+ e

o

離散系信号処理(その2)

} ) 1 {(

) (

)

(

i o

o

nT e nT ae n T

e   

) ( )

( )

(

i 1 o

o

z E z az E z

E  

1

1

) 1

(

  z az H

無限インパルス応答 (IIR) フィルタの一例

)

Infinite Impulse Response (IIR) フィルタ

1

1

1 )

(

 

 

 

 

N

n

n n

z b z

H

z

-1

e

i

+ + + + e

o

-b

1

-b

2

-b

3

-b

4

z

-1

z

-1

z

-1

短い演算で急峻な周波数特性可能

ただし、線形位相実現せず

N

n

n n

N

n

n n

z b

z a z

H

1 0

1 )

(

z

-1

e

o

-b

1

-b

2

-b

3

-b

4

z

-1

z

-1

z

-1

a

0

z

-1

e

i

+ + + +

a

1

a

2

a

3

a

4

デジタルフィルタの一般形

z

-1

z

-1

z

-1

1

0 i

o

1 {( ) }

) (

N

n

T n m

N e mT

e

平均値フィルタ

 

 

 

1

0

(

1

1 )

1 ) 1

(

N

n

N n

z N z z

z N H

) 2 / sin(

) 2 / } sin(

2 / )

1 (

exp{

)

( N T

T T N

N j

H

 

   

線形位相:遅延が周波数に依存せず

有限インパルス応答

(FIR) フィルタの一例

-40 -35 -30 -25 -20 -15 -10 -5 0

-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 sinNx/Nx

sinNx/Nsinx

Relative frequency

Relative amplitude in dB

スペクトラムの

折り返しの影響

z=exp(jT) であるから

) 2 / (

) 2 / } sin(

2 / )

1 (

exp{

) 2 / sin(

) 2 / } sin(

2 / )

1 (

exp{

1 )

exp(

1 )

) exp(

(

T N

T T N

N j N

T N

T T N

N j N

T j

T E jN

 

 

 

 

  1

) 1

(

1

z t z

e

N

Z は?

パルス中心の ずれ: (N-1)T/2

単一パルスの 離散化版

連続関数と離散化関数で何故違う?

-120 -100 -80 -60 -40 -20 0

0 2 4 6 8 10

rectangular Hamming Blackmann Blackmann-Harris

Relative frequency

Amplitude in dB

0 0.2 0.4 0.6 0.8 1

-1-0.8-0.6-0.4-0.2 0 0.20.40.60.8 1

W eight

Relative position

Hamming Blackmann Blackmann-Harris

ハミング関数

w(t)=0.54+0.46cos(2t/T)

ブラックマン関数

:w(t)=0.42+0.5cos(2t/T) +0.08cos(4t/T)

ブラックマン・ハリス関数

:w(t)=0.35875+0.48829cos(2t/T)

+0.14128cos(4t/T)+0.01168cos(6t/T)

窓関数

h

d

(t)

を有限時間で打ち切るための関数

:w(t)

帯域外抑圧と帯域幅はトレードオフ

-70 -60 -50 -40 -30 -20 -10 0

0 0.5 1 1.5 2

-0.04 -0.03 -0.02 -0.01 0.01 0.02 0.03 0.04 0.05 0

Relative frequency

T ransfer function in dB T ransfer function in dB

-0.05

レメッツ交換法による設計結果

手法提案の論文に設 計プログラムが添付

世界中に普及 許容リップルと最も狭 い遷移帯域幅で必用 なタップ数を推定可能

(Infinite-Impulse-Response; IIR) フィルタ

+ + + + e

out

a

0

e

in

b

1

b

2

b

3

b

4

N

n

out n in

out

t a e t b e t n

e

1

0

( ) ( )

)

( 

: 1clk

遅延

N

n

n n

z b z a

H

1 0

1 )

(

・少ないタップで良好な遮断特性可能(ただし最少位相推移系)

・係数によっては発振

(

安定条件

:

全ての極が

|Z|<1)

FIR

と組み合わせて、少ないタップで、位相特性、周波数特性 共に良好なフィルタ実現

int average(int clock, int in) {

int position, count, temp, result;

long int sum = 0;

temp=clock/TAP;

position=clock-temp*TAP+TAP;

data[position]=in;

data[position-TAP]=in;

for (count = 0 ; count < TAP ; ++count) {

sum += data[position-count];

}

result = sum/TAP;

return result;

}

平均値フィルタの構成  タップの場合 

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

この 範 囲

を加算

新データ 新データ

次々と下 に移動

下まで行ったら 一番上

32bit

整数 切捨て演算

余りの算出

総和 タップ数での 割り算

#include <stdio.h>

#define TAP 8

#define TMAX 20 int average(int, int);

int data[2*TAP];

int main(int argc, char **argv[]) {

int count, period, out;

int in=0, clock=0;

for (period =1 ; period <=4 ; ++period) {

for (count = 1 ; count <= TMAX ; ++count) { ++clock;

in += 5;

out=average(clock,in);

printf("%d, %d, %d¥n", clock, in, out);

}

以下省略

定数の定義

共用の変数を定義

clock

1

ずつ増加

in

5

ずつ増加

関数

average

の実行

傾斜型 波形の 形成

4

回繰り返し

TMAX

回繰り返し

TAP=4

の結果

TAP=8

の結果

TAP=16

の結果

TAP=32

の結果

計算結果を

gnuplot

で表示

Program counter

Data bus Address bus Register A

Register B Register C Register D

Stack pointer

ALU

Instruction register

Interrupt unit B Instruction

decoder control lines

CPU

Interrupt status

register

Read Write

Interrupt

unit A Reset

Clock

CPU: Central Processing Unit ALU: Arithmetric Logical Unit Register

Address

マイクロプロセッサの構成例

1. LD A, 30H (16

進数で

30

をレジスタ

A

に代入

) 2. DEC A (A

の内容を

1

つ減少

)

3. JNZ 09H (

演算結果が

"0"

で無い場合アドレス

09H

にジャンプ

) 4. LD 50H, B (

レジスタ

B

の内容をアドレス

50H

に代入

)

5. JMP 30H (

アドレス

30H

へジャンプ

)

多少高級な言語 ( アセンブラ ) での記述

00 20 30

02 51

03 25 09 05 32 50 07 20 30

アドレス データ

機械語での表現

機械語への変換

プログラム実行の流れ

00H(20H) 01H(30H) 02H(51H) 03H(25H) 04H(09H) 05H(32H) 06H(50H) 07H(20H) 08H(30H) 09H(00H) 0AH(18H) 0BH(2CH) 0CH(33H) 0DH(FCH)

0EH(35H)

30H 31H 32H 33H 34H

50H 51H 52H 53H 54H 35H

結果が

36H

0

の時

reset

された時 の開始場所

データ の収納

Jump

基本的には逐次実行

データも同 じ空間上 に展開

サブルーチン(例:三角関数の計算)

00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH

30H 31H 32H 33H 34H

50H 51H 52H 53H 54H 35H

36H

call 50H

call 50H call 30H

call 30H

return return

04H 34H

スタック構造

ポインタ の位置

•call:

ポインタ1増+ポインタ位置に戻りアドレス収納

+指定アドレスへジャンプ

•return:

ポインタ位置のアドレスに移動+ポインタ1減

ドキュメント内 Microsoft PowerPoint - 回路デジタル (ページ 60-76)

関連したドキュメント