計測自動制御学会東北支部 第 315 回研究集会 (2018.5.21)
資料番号 315-7

ストカスティック演算によって実現されたFIR フィルタにおける内部雑音に関する検討
Study on Internal Noise of FIR Filters Implemented with
Stochastic Computing○鎌田裕成，越田俊介, 阿部正英，川又政征○ Hironari Kamada, Shunsuke Koshita, Masahide Abe, Masayuki Kawamata
東北大学大学院工学研究科電子工学専攻

Department of Electronic Engineering, Graduate School of Engineering,Tohoku University
キーワード : ストカスティック演算(stochastic computing),FIR フィルタ (FIR filter), 分散伝達関数 (variancetransfer function)

連絡先 : 〒 980-8579 仙台市青葉区荒巻字青葉 6-6-05
東北大学 大学院工学研究科 電子工学専攻 川又・阿部（正）研究室
鎌田

1.

裕成，Tel.: (022)795-7095，Fax.: (022)263-9169，E-mail: kamada@mk.ecei.tohoku.ac.jp

まえがきを許容できるアプリケーションへの応用が望ましい．
逆に，確率的変動が許容できるアプリケーションでストカスティック演算（以下 SC）は，近似計算法のひとつで，数値を確率的に表現し演算する手法であれば，SC を用いることで回路規模の大幅な削減を実現することが可能となる．

ある．従来の二進数演算と比較して大幅に回路規模SC の確率的ふるまいが演算結果に与える影響にを削減することが可能な手法として，近年注目を集

ついては，未だ詳しく明らかにされていない．そこめている．SC の歴史は古く，１９６０年代後半には演算手法が確立された 1) . 演算回路が小型である，ソで本稿では，SC をディジタルフィルタに適用した際に，SC による演算結果の確率的変動がフィルタ出フトエラー耐性が高いなどの利点が存在する一方で，力にどのような影響を与えるかについて考察する．

演算結果が確率的である点，演算時間が長くなってしまう点などを理由に，SC が使われることはほとんどなかった．その SC が近年，注目を集めている
理由としては，デバイスの小型化や省電力化を目的として回路規模の削減が求められる場合が増えてい2.

ストカスティック演算

る挙げられる．

SC は画像処理，ディジタルフィルタ，符号化，デ

本章では，SC の基礎について説明する．初めに，ィープラーニングなど，広い分野での応用が検討されている 2–6) . SC では演算結果が確率的に変動す

SC における数値の表現法について説明する．次に，るため，出力に確率的な変動が含まれていてもそれ説明する．

SC を構成する演算素子と２進数との変換について

–1–

2.1

数値の表現

SC では，ビット列内のビット ‘1’ の存在確率によって数値を表現する．例えば，次の 2 つのビットFig. 1

列，(1 1 0 0) と (0 1 1 0) はどちらも 1/2 の確率でビット ‘1’ が存在している．この 2 つは異なる並びのビット列であるが，SC においては等しい数値を2.2表現する．以下では，前述のように確率によって数値を表現するビット列のことをストカスティック数(SN) と呼ぶ．

乱数発生器と比較器を用いた SN の生成

2 進表現からストカスティック表現への変換

2 進数から SN への変換には，Fig.1 に示すように，乱数発生器（Random Number Generator）と比較

SN の数値表現は，ユニポーラ表現とバイポーラ器（Comparator）からなる SNG(Stochastic Num-表現が知られている．以下ではこの 2 種類の表現法

ber Generator) を用いる．ここで用いる乱数発生器について説明する．

は，範囲 [0, 1] の一様分布の乱数を発生させる．乱ユニポーラ表現では，SN におけるビット ‘1’ の存数発生器には，線形フィードバックシフトレジスタ

在確率を，そのまま数値として扱う．すなわち，語（LFSR： Linear Feedback Shift Register）が多く用

長 N の SNX がユニポーラ表現によって表す数値 x̂

いられる．はじめに，ユニポーラ表現への変換につは，以下のように定められる．

いて説明する．ユニポーラ表現では，与えられた 2進数 x に対して，SNX の i 番目のビット Xi を以下

x̂ =X 内のビット ‘1’ の数
N(1)の確率 P (Xi = 1) にしたがって発生させる．

P (Xi = 1) = x

ユニポーラ表現では範囲 [0, 1] の数値を表現するこ(3)とが可能であり，数値の刻みは 1/N である．例とし

これは，Fig.1 に示した回路を用いて次のように実て，SNA : (1 1 0 0) を考える．4 ビットのうち 2 ビッ現できる．一様乱数 r と，変換したい 2 進数 x を比トが ‘1’ であるから，A がユニポーラ表現で表す数較器に入力する．x の範囲は [0, 1] とする．比較器の値 â は â = 2/4 である．

出力は以下のように定める．

前述のとおり，ユニポーラ表現で表現可能な数値• x > r のとき，1 を出力の範囲は [0，1] であり，負の値を表現することができ• x<= r のとき，0 を出力ない．負の値を扱えるように，表現可能な数値の範囲を拡張した表現法がバイポーラ表現である．SNXがバイポーラ表現によって表す数値 x̂′ は，式（1）のx̂ を用いて以下のように定められる．
x̂′ = 2x̂ − 1

この処理を N 回繰り返すことで，語長 N の SN が得られる．
一方，バイポーラ表現では，与えられた 2 進数 x(2)に対して以下の確率 P ′ (Xi = 1) にしたがって Xi を発生させる．

P ′ (Xi = 1) =バイポーラ表現では，範囲 [−1, 1] の数値を表現可能である．また，バイポーラ表現された N ビット SN

1(x + 1)2(4)の数値の刻みは 2/N である．ユニポーラ表現の場合バイポーラ表現に変換する場合は，x の範囲は [−1, 1]と同様に，例として SNA : (1 1 0 0) について考えである．そのため，x を r と同じ [0，1] の範囲にスる．â = 2/4 であり，バイポーラ表現の場合には，Aケーリングしたもの，すなわちが表す数値 â′ は â′ = 2â − 1 = 0 である．ディジタ

x′ =ルフィルタにおいては，負の値を扱う必要があるため，本稿ではバイポーラ表現を用いる．

1(x + 1)
2(5)によって得られる x′ と一様乱数 r との比較をする．

–2–このように，2 進数から SN への変換には乱数を用いるため，変換結果が一意に定まらず，変換前と変換後で表される数値が変化してしまう可能性がある．すなわち，変換前の 2 進数 x と，x を変換して得た SNX が表す数値 x̂ が，x̂ ̸= x となる場合が存在する．

2.3

Fig. 2

ユニポーラ表現における乗算の例(1 1 0 0)

ストカスティック表現から 2 進表現への変換(0 1 0 1)(0 1 1 0)

SN から 2 進数への変換には，カウンタ回路が用いられる．カウンタ回路によって SNX 内のビット

Fig. 3

バイポーラ表現における乗算の例‘1’ の数をかぞえ，式 (1) と式 (2) から数値を求める．
2 進数から SN への変換と異なり，ある SNX から得ĉ = 1/4 であり，ĉ = â × b̂ を満たしていることがわられる値は一意に定まる．

かる．
一方で，バイポーラ表現された SN 同士の乗算は，2.4排他的論理和の否定をとることで計算される．この乗算処理は，回路上で XNOR ゲートによって実現される．

次に，SN 同士の乗算について述べる．乗算を実

例えば，バイポーラ表現された 2 つの SNA : (1 1 0 0)

現する方法はユニポーラ表現とバイポーラ表現とでと B : (0 1 1 0) の乗算を考える．これを図示したも異なる．ここでは，ユニポーラ表現の場合についてのが Fig.3 である．A と B それぞれがバイポーラ表述べる．

現で表す数値 â′ ，b̂′ は â′ = b̂′ = 0 であるから，積SN 同士の乗算は，2 つのビット列におけるビットâ′ × b̂′ は 0 である．A と B の排他的論理和の否定を‘1’ の同時生起確率を求めることで実現できる．そこC とすると，C : (0 1 0 1) である．C が表現する数で，ユニポーラ表現された SN 同士の乗算は，2 つの値 ĉ は ĉ = 0 であり，ĉ = â′ × b̂′ を満たしている.

SN が互いに無相関であることを前提として，ビットこのように，SC では，乗算を単一の論理ゲート列同士の論理積をとることで求める．互いに無相関のみで行うことができる．そのため，従来の 2 進数である SNA と B の論理積を C とすると，以下の式演算に比べて回路における乗算器の面積を大幅に削が成り立つ．

減することができる．

P (Ci = 1) = P (Ai = 1)P (Bi = 1)

(6)

2.5

本節では，SN の加算について述べる．SN は確率式 (3) と (6) より，以下の式が成り立つ．

c=a×b

加算によって数値を表しているため，絶対値が 1 を超え(7)式 (7) より，SN 同士の論理積をとることで乗算が実る数値を表すことができない．そのため，数値 a とb の和 c は，れた 2 つの SN，A : (1 1 0 0) と B : (0 1 1 0) の乗算

1(a + b)2を考える．これを図示したものが Fig.2 である．そのように結果の絶対値が 1 を超えないようにスケーれぞれが表す数値 â, b̂ は â = b̂ = 1/2 であるから，リングされる必要がある．このような SN 同士の加積 â × b̂ は 1/4 である．A と B の論理積を C とす

算は，ユニポーラ表現とバイポーラ表現のどちらのると，C : (0 1 0 0) である．C が表現する数値 ĉ は場合においてもマルチプレクサによって実現できる．

現できることがわかる．例えば，ユニポーラ表現さc=–3–(8)マルチプレクサの入力を A，B ，出力を C ，制御信号を S とする．それぞれの i 番目のビットにおける ‘1’の存在確率を P (Ai = 1)，P (Bi = 1)，P (Ci = 1)，

P (Si = 1) とする．マルチプレクサの出力信号の i番目のビットにおける ‘1’ の存在確率 P (Ci = 1) は以下のように書くことができる．

Fig. 4𝑥(𝑛)P (Ci = 1)

SNG= P (Si = 1)P (Ai = 1)
Z −1+ (1 − P (Si = 1))P (Bi = 1) (9)マルチプレクサを用いた加算の例

ℎ0

SNG

ℎ1

SNG

ℎ2

SNG

SNG

Z −1𝑦(𝑛)S2B

SNG

一般に，2 つの SN の加算においては，P (Si = 1) =1/2 となるような制御信号 S を用いる．このとき，Fig. 5SC に基づくディジタルフィルタの例

式 (9) は以下のようになる．

1P (Ci = 1) = (P (Ai = 1) + P (Bi = 1))
2(10)

3.

内部雑音の発生と伝搬

3.1

内部雑音の原因

入出力を２進数とし，演算を SC で行うディジタ
式 (10) と，式 (3) もしくは式 (4) より，マルチプレクルフィルタの例を Fig.5 に示す．SC に基づくディジサを用いることによって式 (8) に示した加算ができタルフィルタにおける内部雑音の原因としては，以ることがわかる．式 (10) からもわかるように，マル下の三つが考えられる．

チプレクサを用いた加算では，加算結果の絶対値が• SNG における入力の分散1 を超えないようにスケーリングされて出力される点に注意が必要である．そのため，SN を 2 進数に変• 演算における確率的変動換したあと，スケーリングの補正が必要となる．式• 加算のスケーリング補正における誤差の拡大（10）に示した処理では，加算結果を 1/2 倍にスケーリングしたものを出力している．和を元のスケール

これらの雑音をモデル化したブロック図を Fig.6 にで得るためには，出力を 2 進数に変換したのち，2示す．SNG は確率的プロセスを伴うため，生成され倍する必要がある．また，P (Si = 1) ̸= 1/2 である

た SN は確率的変動を持つ．そしてフィルタの乗算，とき，マルチプレクサを用いた加算は重み付き加算加算の過程でさらに確率的に変動する．これらの確となる．

率的変動が，内部雑音としてフィルタ出力に生じる．

マルチプレクサの制御信号 S は，P (Si = 1) の確率でビット ‘1’ が出現するビット列である．この信号の生成には，ユニポーラ表現における 2 進数からSN への変換器を用いる．

最後に，加算によるスケーリングを補正するために数値を定数倍する必要がある．ここで内部雑音が拡大される．
フィルタの内部雑音を解析するためには，SNG で生じる分散と，演算素子での分散の伝搬について考えマルチプレクサを用いたユニポーラ表現による SNる必要がある．以降では，この点について考察する．

同士の加算の例を Fig.4 に示す. 入力は A : (1 1 0 0)，

B : (0 1 1 0)，制御信号は S : (1 0 1 0) である．
â = b̂ = 2/4 であるから，â + b̂ = 1 である．一方，

3.2

分散伝達関数ĉ = 2/4 であるから，ĉ = 12 (â + b̂) を満たしている．

分散伝達関数 7) を用いることで，入力シーケンスマルチプレクサを用いて正しく SN の加算が実現での，各演算素子における分散の伝搬を計算によってきていることがわかる．

求めることができる．各演算素子の分散伝達関数は–4–

Add
noise

Add
noise

𝑦(𝑛)

𝑥(𝑛)

Z −1

SNG
noise−1

SNG
noise

Z

SNG
noise
ℎ0
SNG
noise

Fig. 6

Mulnoiseℎ1

SNG
noise

SNG
noise

𝑠𝑐𝑎𝑙𝑖𝑛𝑔

Mul
noise

Mul
noiseℎ2

SC に基づくディジタルフィルタで生じる雑音のモデル

以下の通りである．ここで，N は SN の語長，a，bTable 1 実験条件
入力信号 範囲 [−1, 1], 刻み 0.05

は 2 つの入力，s はマルチプレクサの選択信号，Ea′は (1 − Ea ) を表す．E はビットストリーム内の正規2化されたビット’1’ の数の期待値，σ は正規化され信号長

104

SN の語長212

たビット’1’ の数の分散である．

AND

4.

EA (a, b) =2σA(a, b) =

Ea Eb
(11)
1
(Ea − σa2 − Ea2 )(Eb − σb2 − Eb2 )N −1+σa2 Eb2 + σb2 Ea2 + σa2 σb2(12)

単一演算回路の出力の分散

SNG,XNOR による乗算，MUX による加算について，それぞれの回路における出力の分散をビットレベルのシミュレーションによって測定し，分散伝OR達関数による分散の理論値と比較した．

EO (a, b)=2σO(a, b)=

Ea + Eb − Ea Eb(13)1(E ′ − σa2 − Ea′2 )(Eb′ − σb2 − Eb′2 )N −1 a+σa2 Eb′2 + σb2 Ea′2 + σa2 σb2(14)

SNG の出力は二項分布に従う．よって，入力を x と2すると SNG 出力の期待値 ESNG (x) と分散 σSNG(x)は以下のようになる．

1(x + 1)2(19)1
(x + 1)(1 − x)4(20)ESNG (x) =XNOR
EX (a, b)=

Ea Eb + Ea′ Eb′2σX(a, b)=

22σA(a, b) + σA
(a′ , b′ )2σSNG(x) =(15)

入力する値と出力の分散の関係を調べるため，入+2{(Ea − σa2 − Ea2 )(Eb − σb2 − Eb2 )

力値を [−1, 1] の範囲で変化させて測定した．入出力−Ea Eb Ea′ Eb′ }は 64bit 浮動小数点数である．シミュレーションに(16)は MATLAB を使用した．その他の条件は表 1 に示
す．加算と乗算の分散は，SNG の分散も含んでいる

MUXことに注意が必要である．

EM (a, b, s)=

Ea Es + Eb Es′

2σM(a, b, s)=

22σA(a, s) + σA(b, s′ )−2Ea Eb σs2(17)

結果を Fig.7–11 に示す．いずれの結果も，扱う数値が 0 に近いほど分散が大きくなることを示して(18)

いる．

–5–

10-4

2.5

SNG output variance

XNOR output variance MeasurementTheoretical
Measurement

10-43Variance21.5121010.5100-1-0.50Fig. 70.51

Multiplier

SNG の分散Fig. 8SN 語長12フィルタ係数
試行回数2-1

Multiplicand

XNOR の分散の実測値

10-43Variance

1000-1XNOR output variance Theoretical

Table 2 実験条件
入力信号 範囲 [−1, 1] の一様乱数から取り出した標本系列
信号長0範囲 [−1, 1], 刻み 0.1

1000210115.

0

FIR フィルタの出力の分散

Multiplier5.10-1-1

Multiplicand

フィルタ係数と出力の分散
Fig. 9XNOR の分散の理論値

SC に基づく FIR フィルタにおけるフィルタ係数と出力の分散の関係を調べるため，係数を変化させした．結果を Fig.14,15 に示した．実験結果は以下ながらフィルタ出力の分散をビットレベルのシミュのことを示している．

レーションで測定し，分散伝達関数と比較した．一• 出力の分散はタップ数の 2 乗に比例する．

様乱数から取り出した標本系列を複数回入力し，各• 出力の分散は SN の語長に反比例する．

時刻における出力の分散を求めた．分散の時間平均を各係数における分散とした．実験条件を表 2 に示した．結果を Fig.12,13 に示した．係数が 0 に近いほど出力の分散が大きくなることがわかる．これは，

5.3

SNG における分散が伝搬し出力に影響しているからだと考えられる．

2 タップフィルタの出力の分散

FIR フィルタの出力の分散を求めるためには，フィルタのブロック図に従って，入力側から順に分散伝達関数を計算していけばよい．最初に求めるのは，5.2

SNG における平均と分散である．SNG の出力は二タップ数・語長と出力の分散項分布に従う．二項分布 B(N, p) の平均 µ と分散 σ 2SC に基づく FIR フィルタにおけるフィルタのタッは，µ = N p，σ 2 = N p(1−p) である．N は試行回数，プ数および SN の語長と出力の分散の関係を調べる

p は成功確率である．SNG においては，N は SN のため，タップ数と語長を変化させながらフィルタ出語長，p はビット 1 の生成確率に相当する．バイポー

力の分散を測定し，分散伝達関数と比較した．分散

ラ表現の場合，入力実数 x に対して，ビット 1 の生成の求め方は前章と同様である．実験条件を表 3 に示

確率は x+12 である．すなわち，SNG 出力の，正規化–6–MUX output variance Measurement

Measurement Value
10-410-41010Variance

Variance

9.5598.5
801110Input value 1Fig. 10

100-1-1h0Input value 2MUX の分散の実測値

0-1-1h1Fig. 12

フィルタ出力の分散の実測値

Fig. 13フィルタ出力の分散の理論値

MUX output variance TheoreticalVariance10-41050110Input value 1Fig. 110-1-1Input value 2

MUX の分散の理論値2されたビット 1 の数の平均 ESNG (x) と分散 σSNG(x)める．この処理は XNOR ゲートにより実装される(x+1)(1−x)
であ4ので，XNOR ゲートの分散伝達関数より以下の式が2は，ESNG (x) = x+12 ，σSNG (x) =る．入力実数の値に応じて，変換後の SN の分散が得られる．

変化することがわかる．ある時刻の入力 x(n) に対す

EH0 X(n)る SNG 出力 X(n) の期待値と分散は以下のように=なる．ここで x(n) は範囲 [−1, 1] の一様乱数とする．

x(n) + 12(x(n)+1)(1−x(n))
2σX(n)=4EX(n) == N 1−1(22)(23)

22{(1 − EX(n) ) − σX(n)− (1 − EX(n))}
22×{(1 − EH0 ) − σH− (1 − EH)}00

ここでいう期待値は，同一入力下において，ある特222+σX(n)(1 − EH0 )2 + σH
(1 − EX(n))
0定の時刻の多数の測定値から求めた，集合平均であ22+σX(n)σH0る．また，この期待値と分散は，ビット長で正規化された，ビット列内のビット 1 の数の期待値と分散=を表す．前述の通り，SC では，SNG により値が変決定されることから，このような表現を用いる．次h0 x(n) + 122σH0 X(n)(21)

動し，その変動のパラメータは変換前の値によって= EX(n) EH0 + (1 − EX(n) )(1 − EH0 )1 − h20 x(n)24(24)同様に，x(n) の 1 時刻遅延 x(n − 1) と係数 h1 の積については以下のようになる．に，入力 x(n) とフィルタ係数 h0 をそれぞれ SN へ変換し，乗算したもの X(n)H0 の期待値と分散を求–7–

EH1 X(n−1) =h1 x(n − 1) + 12(25)FIR filter output variance Measurement

Table 3 実験条件
入力信号 範囲 [−1, 1] の一様乱数から取り出した標本系列
250SN 語長[21 , 212 ]フィルタタップ数 N[21 , 28 ]フィルタ係数

104Variance

信号長10610210010-2

遮断周波数 ωc = 0.5π10-428h(n) = ωπc sinc ωπc n × ω(n)n = − N 2−1 N 2−1
ω(n) = 0.54 + 0.46 cos N2πn−121226

2824Tap

212124Bit length

低域通過フィルタ
試行回数

2=σH1 X(n−1)

200
1 − h21 x(n − 1)24

フィルタ出力の分散の実測値

Fig. 14

FIR filter output variance Theoretical

(26)
106

h0 x(n) + h1 x(n − 1) を 表 現 す る H0 X(n) +期待値と分散を考える．マルチプレクサの制御信号

S は確率 1/2 でビット 1 が出現する系列と仮定する．
このとき104Variance

H1 X(n − 1) を実現するマルチプレクサ出力 Y の102
100
10-210-428212262824

ES = 1/2(27)σS2 = 1/4(28)である．Y の期待値と分散は，分散伝達関数から以下のように求めることができる．
．

EY

2124
Bit length

フィルタ出力の分散の理論値=

EH0 X(n) ES + EH1 X(n−1) (1 − ES )=h0 x(n) + h1 x(n − 1) + 2422
EH0 X(n) − σH− EH0 X(n)0 X(n)ES − σS2 − ES2(29)==0 (31)

0(32)

22σH
ES2 + σS2 EH0 X(n) + σH
σ20 X(n)0 X(n) S11=
(1 − h20 x(n)2 ) + (h0 x(n) + 1)21616122+ (1 − h0 x(n) )16131(33)= − h20 x(n)2 + h0 x(n) +16816

22(EH0 X(n) − σH− EH)
0 X(n)
0 X(n)
2×(ES − σS2 − ES2 ) + σH
ES20 X(n)22+σS2 EH+ σH
σ20 X(n)0 X(n) S+ N 1−1

Fig. 1521

ここで，

σY2
= N 1−1

Tap22(EH1 X(n−1) − σH− EH)
1 X(n−1)
1 X(n−1)

×((1 − ES ) − σS2 − (1 − ES )2 )2+σH
(1 − ES )21 X(n−1)

同様に,
22
EH1 X(n−1) − σH− EH=01 X(n−1)
1 X(n−1)(34)(1 − ES ) − σS2 − (1 − ES )2 = 0(35)22+σS2 EH+ σH
σ21 X(n−1)
1 X(n−1) S−2EH0 X(n) EH1 X(n−1) σS2(30)–8–22σH
ES2 + σS2 EH1 X(n−1) + σH
σ21 X(n−1)
1 X(n−1) S11=
(1 − h21 x(n − 1)2 ) + (h1 x(n − 1) + 1)21616

1(1 − h21 x(n − 1)2 )
16113= − h21 x(n − 1)2 + h1 x(n − 1) +16816+10-4
10(36)Variance

また，−2EH0 X(n) EH1 X(n−1) σS2111= −2 × (h0 x(n) + 1) × (h1 x(n − 1) + 1) ×2
241(37)= − (h0 x(n) + 1)(h1 x(n − 1) + 1)
8981
100-1h0以上より，σY2Fig. 16113= − h20 x(n)2 + h0 x(n) +16816113− h21 x(n − 1)2 + h1 x(n − 1) +168161− (h0 x(n) + 1)(h1 x(n − 1) + 1)
84 − (h0 x(n) + h1 x(n − 1))2=(38)
16を NL ，フィルタのタップ数を T ，スケーリング補正後の出力を y のとする．S2B 変換とスケーリングは以下の式で表すことができる．

()
N1 (Y )
2×
−1 ×T
NL

(41)

これは確率変数 N1 (Y ) から y への変換であるから，y の期待値と N1 (Y ) の期待値の関係は以下のようになる．

(39)

ここで，E[x(n)] = E[x(n − 1)] = 0，E[x(n)2 ] =E[x(n − 1)2 ] = V [x(n)] = 31 より，
111 1σY2 = − ( h20 + h21 )4 16 3311 2= − (h0 + h21 )4 48

式の解析によって求めたフィルタ出力のx=11=− {h2 E[x(n)2 ]4 16 0+2h0 h1 E[x(n)]E[x(n − 1)]+h21 E[x(n − 1)2 ]}h1分散の理論値

入力 x(n) の時間平均をとる．

σY2-1

Ey =2T
EN1 (Y ) − T
NL(42)

また，y の分散と N1 (Y ) の分散の関係は以下のようになる．

(σy2 =(40)となる．式 40 に加算のスケーリング補正をかけて求めた分散の理論値 (σy2 ) を Fig.16 に示す．このグラン結果と誤差が生じている．これについては，今後

2σN1 (Y )(43)

散 σY2 に置き換える（Nw で正規化する）と，σy2 =関数のから FIR フィルタの出力に生じる分散が記述((h0 , h1 ) = (−1, −1) など) においてシミュレーショ)22
ここで，σNを，分散伝達関数の定義に則った分
1 (Y )

フは Fig.12 と Fig.13 に概ね一致しており，分散伝達できたことが示された．一方で，グラフの端の領域

2T
NL

4T 2 2σNw Y(44)となる．この式は，出力の分散がフィルタのタップ数の二乗に比例し，語長に反比例することを示している．の検討が必要である．

6.
5.4

タップ数・語長と分散の関係

まとめと今後の課題

本稿では，ストカスティック演算によって実現さ次に，フィルタ出力部における S2B 変換直前のれた FIR フィルタの内部で発生する雑音について検SN を Y ，X 内のビット 1 の数を N1 (Y )，X の語長討した．分散伝達関数を用いることで，2 タップ FIR–9–フィルタで発生する雑音を解析し，式で記述できることを示した．今後は，さらに係数の多い場合について，出力の分散 (式 40 の σY2 ) の式を導出したいと考えている．

参考文献
1) B.R. Gaines, “Stochastic computing systems,”
Advances in Information systems Science, vol.2,pp.37–172, 1969.
2) A. Alaghi and J.P. Hayes, “Survey of stochastic computing,” ACM Trans. Embedd. Comput.
Sys., vol.12, no.92, pp.1–19, 2013.
3) B.D. Brown and H.C. Card, “Stochastic neural computation i: Computational elements,”
IEEE Trans. Comput., vol.50, no.9, pp.891–905, 2001.
4) H. Chen and J. Han, “Stochastic computational models for accurate reliability evaluationof logic circuits,” Proc. GLSVLSI, pp.61–66,2010.
5) Y. Liu and K.K. Parhi, “Architectures forrecursive digital filters using stochastic computing,” IEEE Trans. Signal Process., vol.64,
no.14, pp.3705–3718, 2016.
6) H. Ichihara, T. Sugino, S. Ishii, T. Iwagaki, andT. Inoue, “Compact and accurate digital filters
based on stochastic computing,” IEEE Trans.
Emerging Topics in Comp., pp.1–12, 2016.
7) C. Ma, S. Zhong, and H. Dang, “Understandingvariance propagation in stochastic computingsystems,” Proc. ICCD, pp.213–218, 2012.

– 10 –