======================
($BLnB<$5$s$X$N%a%b(B)
$B!&?^(B2-5-11$B$O%M%C%H$+$iMn$H$7$?$N$G!"$=$N$^$^;H$o$:%H%l!<%9$7$F2<$5$$(B
======================

$B"#Bh(B4$BIt!!%^%$%3%s$G%H%i%$!*(B $B@8BN>pJs$N?.9f=hM}$N4pAC"#(B

$BBh(B2$B>O!!(Bmbed$B$K$h$k6ZEE>pJs%7%9%F%`$NNc(B

2-5$B!!%N%$%:=|5n%U%#%k%?(B

$BK\@a$G$O!"A0@a(B2-4$B$G!V8!GH(B+$BJ?3j!W$^$G$N=hM}$r9T$C$?6ZEE%;%s%5%7%9%F%`$N(Bmbed$B%^%$%3%s(BNucleoF401RE$B$N%W%m%0%i%`$r$h$j3HD%$7$F$$$/;vNc$H$7$F!"$$$/$D$+$N%N%$%:=|5n%U%#%k%?$N%"%k%4%j%:%`$r>R2p$7$^$9!#(B

$BBh(B1$B>O(B(1-3)$B$G$b>R2p$7$?$h$&$K!"(BCQ$B=PHG$+$iB?$/$N?.9f=hM}$N=q@R$r=PHG$7$F$$$k;0>eD><y;a$,!"$A$g$&$I%$%s%?!<%U%'!<%9;o$G(BNucleoF401RE$B$r%*!<%G%#%*?.9f=hM}$K3hMQ$7$?;vNc$rO":\$7!"$=$N(BNucleoF401RE$B%W%m%0%i%`$r(Bmbed$B$N%5%$%H$G8x3+$7$F$$$^$9(B($BI.<T$bK\9F$N%W%m%0%i%`$rF1MM$K8x3+Cf(B)$B!#(B

$B$=$3$GK\@a$G$O!"$^$:(BFIR$B%U%#%k%?$K$h$C$F%m!<%Q%9%U%#%k%?$rAH$_9~$s$@;vNc$H$7$F!"(Bmbed$B$N%5%$%H$K$"$k;0>e;a$N(BNucleoF401RE$B%=!<%9$r$3$A$i$N%7%9%F%`$GF0$/$h$&$KKd$a9~$s$G$_$^$7$?$N$G!"%*!<%W%s%=!<%9$N%3!<%I$r<+J,$J$j$K%+%9%?%^%$%:$9$k;29M$H$7$F$_$F2<$5$$!#(B
$B$3$NB>$KK\@a$G$O!"!VEE8;%N%$%:(B($B%O%`(B)$B=|5n%N%C%A%U%#%k%?!W$H!"6ZEE$J$I@8BN?.9f$KFCM-$N!V%"!<%F%#%U%!%/%H$N%U%#%k%?!W$N%"%k%4%j%:%`$r<BAu$7$F$$$-$^$9!#(B

$B!|9b0h%N%$%:M^;_$H@QJ,(B($BJ?3j(B) - LPF

$B%j%9%H(B2-5-1$B$G$O!"A0@a(B2-4$B$G$N!V8!GH(B+$BJ?3j!W$^$G$N=hM}2C$($F$K!">e=R$N;0>e;a(B(CQpub0 Mikami)$B$,(Bmbed$B$N%5%$%H$G8x3+$7$F$$$k%3!<%I(B(FIR_LPF_Direct)$B$+$i!"%G%#%8%?%k%U%#%k%?1i;;$N78?t$J$I$r$=$N$^$^3hMQ$7$^$7$?!#;0>e;a$N%5%s%W%k%3!<%I$O%*!<%G%#%*BS0hMQ$G!"K\%7%9%F%`$N6ZEE?.9fBS0h$G$O$[$\!VAGDL$7!W$G$9$N$G!"78?t$rJQ99$7$?$$>l9g$K$O!"(BCQ$B=PHG%5%$%H$G;0>e;a$,8x3+$7$F$$$k$H$$$&@_7W%D!<%k$r;H$C$F2<$5$$!#$3$3$G$O!"(BFIR LPF$B$N%G%#%8%?%k1i;;$rJB9T$7$F8F$S=P$7$F$b(BNucleoF401RE$B$O$^$@$^$@M>M5$G;E;v$G$-$F$$$k!"$H$$$&;v$r3NG'$7$F$$$^$9!#(B

($B%j%9%H(B2-5-1)

$B$3$N(BNucleoF401RE$B%=%U%H$N2~D{E@$H$7$F$O!"%?%$%^3d$j9~$_$N;~4V4V3V$r<B@oE*$J(B5$B&L(Bsec$B$K@_Dj$7!"%a%$%s%k!<%WCf$N%+%&%s%HCM$r;0>e;a$N%W%m%0%i%`$K9g$o$;$F!"F1$8!V(B0.1msec$B!W$N%5%s%W%j%s%0<~4|$G%G%#%8%?%k%U%#%k%?1i;;$r9T$$$^$7$?!#7k2L$r%[%9%H(BPC$B$K(BXBee$B7PM3$G%7%j%"%kEAAw$9$k4V3V$O(B10msec$B$H$7$F!"A0@a$G(B200$BCJ$N0\F0J?6Q$OITMW$HH=$C$?$N$G!"(B100$BCJ$^$G$rA*Br$9$k$h$&$K$7$^$7$?!#$J$*!"(BFIR$B%U%#%k%?$NItJ,$r!V%5%V(B FIR_LPF.hpp$B!W$H$7$F@Z$j=P$7$F!"!V%5%V(B sub.hpp$B!W$NItJ,$O%j%9%H(B2-4-1$B$+$iJQ99$"$j$^$;$s!#(B

$B0\F0J?6Q$K$D$$$F$O!"%G!<%?$r(BFIFO$B%P%C%U%!$K@Q$s$G!"FI$_=P$7%]%$%s%?$r$&$^$/A`:n$9$k$3$H$G!"!VB?CJ$N%G!<%?$r$$$A$$$ANY$j$K0\F0!W$H$$$&%k!<%W=hM}$r>JN,$7$?$N$G$9$,!"$3$A$i$N(BFIR$B%U%#%k%?$N=hM}$O652J=qDL$j$K!"(B

    float acc = 0;	$BN_;;CM$r=i4|2=(B

    xn[0] = data;	$BF~NO(BA/D$BCM$r%G!<%?(B[0]$B$X(B

    for (i=0; i<=order; i++) acc = acc + fc[i] * xn[i];	$B78?t$H>h;;$7$FN_;;(B

    for (i=order; i>0; i--) xn[i] = xn[i-1];	$B%G!<%?$r(B1$B$D$:$DNY$j$K0\F0(B

    return(acc);	$BN_;;CM$rJV$9(B

$B$H$$$&$h$&$K!"8+$d$9$5$rB:=E$7$F$=$N$^$^6rD>$K7W;;$7$F$$$^$9!#(B

$B$3$l$r!"%[%9%H(BPC$B$N(BMax$B%Q%C%A$GF0:n3NG'$7$?$N$,!"?^(B2-5-1$B$+$i?^(B2-5-4$B$G$9!#GH7A$N%0%i%U$O:8C<$+$iF~NO$5$l$F1&$K%9%/%m!<%k$7$F$$$/$N$G!"1&$[$I8E$$!"$H$$$&$h$&$KD/$a$F2<$5$$!#(B

$B?^(B2-5-1$B$O!"1&H>J,$O!V8!GH%*%U!W(B($B0\F0J?6Q$b%*%U(B)$B$N>uBV$G!"F~NO?.9f$O%P%$%]!<%i$K$J$C$F$$$^$9!#;~4VE*$K8eH>$N:8H>J,$O!V8!GH%*%s!W(B($B0\F0J?6Q$O%*%U(B)$B$K$7$?$H$3$m$G!"@0N.$5$l$?GH7A$,3NG'$G$-$^$9$,!"$3$N(BFIR$B%U%#%k%?$N%+%C%H%*%U<~GH?t$O$:$C$H9b$$$N$G!"J?3j!&@QJ,$N5$G[$O$^$C$?$/$"$j$^$;$s!#$3$l0J9_$OA4$F!V8!GH%*%s!W$H$7$F$$$^$9!#(B

($B?^(B2-5-1$B!!%W%m%0%i%`(B[$B%j%9%H(B2-5-1]$B$NF0:n2hLLNc(B(1))

$B?^(B2-5-2$B$O!"1&H>J,$O!V(B5$BCJ$N0\F0J?6Q!W$N>uBV$G!";~4VE*$K8eH>$N:8H>J,$O!V(B10$BCJ$N0\F0J?6Q!W$N>uBV$G$9!#?^(B2-5-3$B$O!"1&C<$+$i(B1/3$B$O!V(B10$BCJ$N0\F0J?6Q!W$N>uBV!"Cf1{IU6a$N(B1/3$B$O!V(B20$BCJ$N0\F0J?6Q!W$N>uBV!";~4VE*$K8eH>$N:8C<(B1/3$B$O!V(B50$BCJ$N0\F0J?6Q!W$N>uBV$G$9!#%G%#%8%?%k%U%#%k%?$K$h$k%m!<%Q%9%U%#%k%?$O<B<AE*$K$OAGDL$7$J$N$G!"0\F0J?6Q$K$h$kJ?3j2=$,8z$$$F$/$k$N$,H=$j$^$9!#(B

($B?^(B2-5-2$B!!%W%m%0%i%`(B[$B%j%9%H(B2-5-1]$B$NF0:n2hLLNc(B(2))

($B?^(B2-5-3$B!!%W%m%0%i%`(B[$B%j%9%H(B2-5-1]$B$NF0:n2hLLNc(B(3))

$B?^(B2-5-4$B$O!"1&C<$+$i(B1/3$B$O!V(B20$BCJ$N0\F0J?6Q!W$N>uBV!"Cf1{IU6a$N(B1/3$B$O!V(B60$BCJ$N0\F0J?6Q!W$N>uBV!";~4VE*$K8eH>$N:8C<(B1/3$B$O!V(B100$BCJ$N0\F0J?6Q!W$N>uBV$G$9!#:Y$+$$?6F0@.J,$r%+%C%H$7$F4]$a$k$K$O!"(B100$BCJ$N0\F0J?6Q$ONI9%$G$9$,!"H?1~$,F_$/$J$k$H$$$&%H%l!<%I%*%U$K$J$j$^$9!#(B

($B?^(B2-5-4$B!!%W%m%0%i%`(B[$B%j%9%H(B2-5-1]$B$NF0:n2hLLNc(B(4))

$B!|D>N.@.J,%+%C%H(B - HPF(5Hz)

$B%N%$%:=|5n%U%#%k%?$N%"%k%4%j%:%`$G%O%$%Q%9%U%#%k%?$r;H$&L\E*$H$7$F$O!"(B
	$B!&?.9f$ND>N.@.J,$r%+%C%H$9$k(B
	$B!&EE6K$rE=$C$??HBN$,F0$/$3$H$K$h$kJQF0@.J,(B($B%"!<%F%#%U%!%/%H(B)$B$r%+%C%H$9$k(B
$B$H$$$&(B2$B$D$,$"$j$^$9!#(B

$BA0<T$ND>N.@.J,%+%C%H(BHPF$B$K$D$$$F$O!"%+%C%H%*%U<~GH?t$O(B5Hz$B$b$"$l$P$h$/!"$3$l$O(BJIS$B5,3J$N!V6ZEE!W$G5,Dj$5$l$F$$$k%+%C%H%*%U$G$9!#$?$@$7K\%7%9%F%`$G$O!"6ZEEEE6K$+$i$N%"%J%m%06ZEE%;%s%5$G!"4{$K%3%s%G%s%5$K$h$kD>N.@.J,%+%C%H(B(F=4.8Hz)$B$N(BHPF$B$,F~$C$F$$$k$N$G!"$3$3$G$5$i$K(BHPF$B$rF~$l$k0UL#$,$J$/!"K\9F$G$O>JN,$7$^$9!#(B

$B6ZEE%7%9%F%`$K$*$$$F!#%G%8%?%k%U%#%k%?$GD>N.@.J,%+%C%H(BHPF$B$rF~$l$k$H$9$l$P!"6ZEE%;%s%5$N%U%m%s%H%(%s%I$K4:$($F(BHPF$B$rF~$l$:$K$=$N$^$^(BA/D$BJQ49F~NO$7$F!"?t(BHz$B%*!<%@$ND6Dc<~GHBS0h$NJQF0@.J,$r7WB,!&4F;k$7$?$$!"$H$$$&$h$&$JFC0[$J%1!<%9$K8B$i$l$=$&$G$9!#$?$@$7$3$l$O!"%"!<%F%#%U%!%/%H$ND>7b$r<u$1$k$N$G!"?.9f$NK0OBBP:v$J$I$,I,MW$K$J$j$^$9!#(B

$B"!(B1$B%A%c%s%M%k$+$i(B2$B%A%c%s%M%k$X$N2~D{(B

$B$3$3$G!"K\%7%9%F%`(B(NucleoF401RE$BB&$H!"%[%9%H(BPC$BB&$NN>J}(B)$B$r<B83MQ$N(B1$B%A%c%s%M%k(B(USB$B<#6q$+$i$N%"%J%m%0(B(3)$BF~NO(B)$B$+$i!"<!$N%9%F%C%W$N$?$a$K(B2$B%A%c%s%M%k(B(USB$B<#6q$+$i$N%"%J%m%0(B(3)(4)$BF~NO(B)$B$K2~D{$7$^$7$?!#$5$i$K!V8!GH$N(BON/OFF$B!W<B83$,=*$C$?$N$G!V>o$K8!GH(BON$B!W$H$9$k$H$H$b$K!">e=R$N(BFIR$B%U%#%k%?$K$h$k%m!<%Q%9%U%#%k%?$r(BON/OFF$B$G$-$k$h$&$K$7$^$7$?!#$^$?!"0\F0J?6Q$K$D$$$F$O9o$`I,A3@-$b$J$$$N$G!"@_Dj%P%C%U%!:GBg$^$G$N4V$G!V(B0$BCJ!A(B100$BCJ!W$^$G$N?tCM$rG$0U$K%[%9%H(BPC$B$+$iM?$($k$h$&$K$7$^$7$?!#(B

NucleoF401RE$B$+$i%[%9%H(BPC$B$KBP$7$F$O!"(B2$B%A%c%s%M%k$N(BA/D$BF~NO$N$=$l$>$l$r!"Ls(B15msec$B$4$H$KJV$9$h$&$K$7$^$7$?!#%j%9%H(B2-5-2$B$,$=$N(BNucleoF401RE$B$N%=!<%9%3!<%I$G!"$3$3$G$O0J9_$N%U%#%k%?=hM}$r8+$d$9$/$9$k$?$a$K!"!V(Bsub.hpp$B!W$K<~JU%k!<%A%s$r0\F0$7$^$7$?!#$3$l0JA0$N%P!<%8%g%s$HF1$8L>A0$G$9$N$G6hJL$9$k$h$&Cm0U$7$F2<$5$$!#(B

$B?^(B2-5-5$B$O!"$3$N$h$&$K2~D{$7$?(B2$B%A%c%s%M%kHG$N%=%U%H$rAv$i$;$F!"(B2$B%A%c%s%M%kJ,$N6ZEE(B($B5-O?(B)$B?.9f$r(BUSB$B%*!<%G%#%*<#6q$+$i6!5k$7!"%j%"%k%?%$%`$K(BNucleoF401RE$B$,!V8!GH(B+$BJ?3j(B(50$BCJ$N0\F0J?6Q(B)$B!W!"(BFIR_LPF$B=hM}$r9T$C$F$$$kMM;R$G$9!#6a$/$KG[CV$7$?6ZEE%;%s%5EE6K$K$h$C$F!"N>J}$N%A%c%s%M%k$,$[$\F14|$7$F?.9f$r=P$7$F$$$k$3$H!"$=$l$G$bGH7A$NMM;R$OHyL/$K0[$J$C$F$$$k$3$H$+$i!"$3$N(B2$B%A%c%s%M%k$N>pJs$r$&$^$/%j%"%k%?%$%`=hM}$7$F!"2?$i$+$N!V%8%'%9%A%c!<!W!&!V%K%e%"%s%9!W!&!V%3%s%H%m!<%k!W!&!V%3%_%e%K%1!<%7%g%s!W$N$h$&$J>pJs$rCj=P$G$-$k2DG=@-$r<($7$F$$$^$9!#(B

($B%j%9%H(B2-5-2)

($B?^(B2-5-5$B!!(B2$B%A%c%s%M%k2=$7$?%W%m%0%i%`(B[$B%j%9%H(B2-5-2]$B$NF0:n2hLLNc(B)

$B!|%O%`M^;_(B - $B%N%C%A%U%#%k%?(B

$B>e=R$N$h$&$KK\%7%9%F%`$r(B2$B%A%c%s%M%k(BA/D$B2=$7$?$N$G!"(BUSB$B%*!<%G%#%*<#6q$+$i(BNucleoF401RE$B$N(BA/D$BF~NO$KM?$($k6ZEE?.9f$H$7$F!"4:$($FJR%A%c%s%M%k$N6&DL$N6ZEE?.9f$rMQ$$$F!"N>%A%c%s%M%k$K(B60Hz/50Hz$B$N%5%$%sGH(B($BEE8;%O%`%N%$%:$N%$%a!<%8(B)$B$r2C$($FF~NO$7!"JR%A%c%s%M%k$@$1%N%C%A%U%#%k%?!VM-$j!W(B($B$b$&0lJ}$O!VAGDL$7!W(B)$B$H$7$F8z2L$rHf3S8!>Z$G$-$k$3$H$K$J$j$^$7$?!#(B

$B$3$3$G$O!"Bh(B1$B>O$N(B1-3$B$G>R2p$7$?!"?^(B1-3-5$B$N%N%C%A%U%#%k%?$N%"%k%4%j%:%`$H78?t$r(BNucleoF401RE$B$K<BAu$7$^$7$?!#$^$:$OJ88%$KBP1~$7$F!"?^(B1-3-5$B$N%"%k%4%j%:%`$KNW;~$NJQ?t$rDj5A$7$??^(B2-5-6$B$KBP$7$F?t<0$HDj?t$r3NG'$9$k$H!"%5%s%W%j%s%0<~4|$4$H$K!"(B
	$B!&F~NO(Bx[n]$B$O!"?^$N:8B&$N2C;;=PNO(B($B!z(B1)$B$H2C;;$5$l(B $B"*(B y[n]$B$H$J$k(B
	$B!&(By[n]$B$O%5%s%W%j%s%0$4$H$K(B2$BCJ$K$o$?$C$FJ]B8$5$l(B $B"*(B y[n-1]$B$H(B $B"*(B y[n-2]$B$H$J$k(B
	$B!&(By[n-1]$B$,Dj?t(Bb1$B$H>h;;$5$l!"$5$i$K(By[n-2]$B$,Dj?t(Ba2$B$H>h;;$5$l$?7k2L$H2C;;$5$l$F(B $B"*(B $B!z(B1$B$K$J$k(B
	$B!&(By[n-1]$B$,Dj?t(Bb1$B$H>h;;$5$l$?7k2L$H!"(By[n-2]$B$H$,2C;;$5$l(B
		 $B"*(B $B$5$i$K(By[n]$B$H2C;;$5$l!"$=$N7k2L$,Dj?t(BC0$B$H>h;;$5$l$?7k2L$,=PNO$H$J$k(B
$B$H$$$&$h$&$JN.$l$H$J$j$^$9!#(B

($B?^(B2-5-6$B!!%N%C%A%U%#%k%?$N%"%k%4%j%:%`$r<BAu$9$k$?$aJQ?t$rDj5A(B)

$BDj?t$K$D$$$F$O!"%l%>%J%s%9FC@-$ONI9%$J!V1T$$!WJ}$r:NMQ$9$k$H$7$F!"(B
	$B%5%s%W%j%s%0<~4|(B T = 0.1msec = 0.0001sec
	$B%5%s%W%j%s%0<~GH?t(B fs = 1/T = 10kHz = 10000Hz
	$B%l%>%J%s%9BS0hI}(B B0 = fs/100 = 100
	$B%N%C%A<~GH?t(B F0 = 60Hz/50Hz$B!!"($=$l$>$l7W;;$7$F@Z$jBX$($k(B
$B$H$7$^$7$?!#(B

$B$=$3$G!"%j%9%H(B2-5-3(Unix$B%?!<%_%J%k$N2hLL$h$j(B)$B$N$h$&$K!"?^(B2-5-6$B$=$N$^$^$K78?t$r7W;;$9$k%W%m%0%i%`$r:n$C$F!"%N%C%A<~GH?t(B F0 = 60Hz/50Hz$B$N$=$l$>$l$KBP$7$F!"(B4$B$D$NDj?t$r7W;;$7$^$7$?!#$3$NN>J}$r(BNucleoF401RE$B$N%W%m%0%i%`$KDj?t%F!<%V%k$H$7$F;}$A!"%[%9%H(BPC$B$+$i$N%3%^%s%I$G@Z$jBX$($k$3$H$K$7$^$7$?!#(B

($B%j%9%H(B2-5-3)

$B$=$7$F!"(BNucleoF401RE$B$N%W%m%0%i%`$H$7$F(B2$B%A%c%s%M%k$NN>J}$K%N%C%A%U%#%k%?$rF~$l$?$b$N$,!"%j%9%H(B2-5-4$B$G$9!#$3$3$G$O%j%9%H(B2-5-2$B$KBP$7$F!"!V(Bsub.hpp$B!W$H!V(BFIR_LPF$B!W$N(B2$B$D$OJQ99$J$/6&DL$H$J$C$F$$$^$9!#%[%9%H(BPC$B$N(BMax$B%W%m%0%i%`$+$i(BXBee$B7PM3$N%7%j%"%k$G@_Dj$G$-$k%Q%i%a!<%?$H$7$F$O!"(B
	$B!&(BFIR LPF$B$N(BON/OFF
	$B!&(BA/D$BF~NO$r;}$A>e$2$k%2%$%s(B(1$BG\!A(B15$BG\(B)
	$B!&J?3j$N0\F0J?6Q$NCJ?t(B(0$BCJ!A(B100$BCJ(B)
	$B!&3F%A%c%s%M%k$N%N%C%A%U%#%k%?$N(BON/OFF
	$B!&%N%C%A%U%#%k%?<~GH?t$H$7$F(B50Hz/60Hz
$B$H$$$&$h$&$KDj5A$7$F$$$^$9!#(B

($B%j%9%H(B2-5-4)

$B$3$NF0:n$r!"%[%9%H(BPC$BB&$N(BMax$B%Q%C%A$H(BUSB$B%*!<%G%#%*<#6q$+$i<u$1$H$C$?6ZEE5-O??.9f$N%9%/%j!<%s%7%g%C%H$G3NG'$7$F$_$^$7$g$&!#?^(B2-5-7$B$O!"N>%A%c%s%M%k$K6&DL$N6ZEE?.9f$rM?$($F!"$^$@(B60Hz$B$N%N%$%:$N%l%Y%k$r%<%m$K9J$C$F$$$k$N$G!"F1$86ZEE?.9f$@$1$G$9!#2hLL$,%9%/%m!<%k$7$F$$$/H>J,$"$?$j$G!">e%A%c%s%M%k$@$1%N%C%A%U%#%k%?$r(BON$B$K$9$k$H!"2hLL:8B&$NL5?.9f%l%Y%k$,2<$,$j$^$7$?!#$3$l$O!"6ZEE?.9f%l%3!<%G%#%s%0$N:]$K>h$C$F$$$?4D6-%O%`%N%$%:$,!"%N%C%A%U%#%k%?$GDc8:$5$l$F$$$k$3$H$N3NG'$G$9!#(B

($B?^(B2-5-7$B!!%N%C%A%U%#%k%?$rE,MQ$5$;$?(B[$B%j%9%H(B2-5-4]$B$NF0:n2hLLNc(B(1))

$B?^(B2-5-8$B$N2hLL1&B&(B1/3$B$N$"$?$j$G!"N>%A%c%s%M%k$K2C$($k(B60Hz$B$N@589GH(B($B%N%$%:(B)$B$N%l%Y%k$r>e$2$F$_$^$7$?!#2hLL:8B&(B2/3$B$"$?$j$r8+$k$H!"%N%C%A%U%#%k%?$rF~$l$F$$$J$$2<%A%c%s%M%k$N?.9f%l%Y%k$,%O%`%N%$%:$K2!$7>e$2$i$l$F$$$k$N$KBP$7$F!">e%A%c%s%M%k$N>e>:$OM^$($i$l$F$$$F!"%O%`%N%$%:M^;_$K8z$$$F$$$k$3$H$,$o$+$j$^$9!#(B

($B?^(B2-5-8$B!!%N%C%A%U%#%k%?$rE,MQ$5$;$?(B[$B%j%9%H(B2-5-4]$B$NF0:n2hLLNc(B(2))

$B?^(B2-5-9$B$G$O$5$i$K2hLLCf1{IU6a$+$i!"N>%A%c%s%M%k$K2C$($k(B60Hz$B$N@589GH$N%l%Y%k$r>e$2$F!"6ZEE?.9f%l%Y%k$r1[$($k$[$I$^$G$K$9$k$H!"$3$3$G$b%N%C%A%U%#%k%?$rF~$l$?>e%A%c%s%M%k$N>e>:$OM^$($i$l$F!"%O%`%N%$%:M^;_$K8z$$$F$$$k$3$H$,$o$+$j$^$9!#(B

($B?^(B2-5-9$B!!%N%C%A%U%#%k%?$rE,MQ$5$;$?(B[$B%j%9%H(B2-5-4]$B$NF0:n2hLLNc(B(3))

$B?^(B2-5-10$B$G$O!"2hLL1&(B1/3$B$"$?$j$GIU2C%N%$%:$N%l%Y%k$r$A$g$C$H2<$2$F!":#EY$O%N%C%A%U%#%k%?$N<~GH?t$r!V(B60Hz$B!W$+$i!V(B50Hz$B!W$KJQ99$7$F$_$^$7$?!#%N%C%A<~GH?t$,$:$l$F$$$k$N$G$9$,!"$=$l$G$b>e%A%c%s%M%k$NJ}$,%P%C%/%0%i%&%s%I%N%$%:$N%l%Y%k$rM^$($F$$$k$3$H$,H=$j$^$7$?!#(B

($B?^(B2-5-10$B!!%N%C%A%U%#%k%?$rE,MQ$5$;$?(B[$B%j%9%H(B2-5-4]$B$NF0:n2hLLNc(B(4))

$B!|%"!<%F%#%U%!%/%H$N%U%#%k%?%j%s%0(B

$B$5$F!"K\@a!V%N%$%:=|5n%U%#%k%?!W$N:G8e$N%H%T%C%/$O!"6ZEE$r$O$8$a$H$9$k@8BN?.9f$KFCM-$N!V%"!<%F%#%U%!%/%H!W%N%$%:$rM^;_$9$k$?$a$N%U%#%k%?%j%s%0$N?.9f=hM}E*$J%"%k%4%j%:%`$G$9!#2;@<?.9f=hM}$d1GA|?.9f=hM}$K$*$1$k%N%$%:=|5n%U%#%k%?$H$$$&$N$O!"%N%$%:$NEE5$E*$J@-<A$,3NDj$7$F$$$k$N$G!"%T%s%]%$%s%H$K$=$NEE5$E*!&J*M}E*!&?t3XE*$J@-<A$KBP1~$7$?%"%k%4%j%:%`$r@_7W$G$-$^$9!#Nc$($P!"<~0O$NA{2;$r5UAj$G%-%c%s%;%k$9$k%N%$%:%-%c%s%;%i!<$J$I$O$=$NE57?$G!"4D6-2;$rF~NO$7$F!"$=$N?.9f$r%^%$%J%9$K$7$FK\Mh$N%5%&%s%I$K2C;;$9$k!"$H%k!<%k$,L@3N$G$9!#(B

$B$3$l$KBP$7$F!"@8BN?.9f$N%"!<%F%#%U%!%/%H$H$$$&$N$O!"6vH/E*$J@\?(ITNI$H$+!"?HBN$NF0$-$KH<$C$FEE6K$N@\?(>uBV$,JQ2=$7$?$j$9$k$N$G!"%k!<%k$H$7$F%"%k%4%j%:%`2=$9$k$N$O$H$F$b:$Fq$G$9!#$3$3$G$O(B2$B$D$NNc$r>R2p$7$F$*$-$^$9!#(B

$B"!JQF0@.J,%+%C%H(B - HPF(50Hz)

$B%"!<%F%#%U%!%/%H$N$&$A!"?M4V$N?HBN$N?6F0!"$D$^$j!V?L$(!W$N$h$&$J@.J,$O!"$*$h$=(B10$B?t(BHz$B$"$?$j$N<~GH?t@.J,$K$J$k$?$a$K!"%+%C%H%*%U(B50Hz$B$"$?$j$N%O%$%Q%9%U%#%k%?$r$+$1$k$3$H$GM^;_$9$k!"$H$$$&%"%W%m!<%A$,$"$j$^$9!#$"$H>/$7$@$1%+%C%H%*%U$r>e$2$F(B70Hz$B$"$?$j$K$9$k$3$H$G!"EE8;%O%`(B(50Hz/60Hz)$B$^$G%+%C%H$7$h$&!"$H$$$&M_D%$C$?<jK!$b$"$j$^$9$,!"$3$l$@$H4N?4$N6ZEE>pJs$N$&$ADc0h@.J,$K$D$$$F$b>C$7$F$7$^$&$N$G!"G:$^$7$$$H$3$m$G$9!#(B

$B%O%$%Q%9%U%#%k%?(B(HPF)$B$r9=@.$9$k$K$O!"Nc$($P?^(B2-5-11$B$N$h$&$J9=@.$N(B2$B<!$N(BIIR$B%U%#%k%?$G$"$k!V(BBiquad$B%U%#%k%?!W$r;H$&$3$H$,$G$-$^$9!#78?t$N7W;;J}K!$O!"M-L>$J!V(BCookbook formulae for audio EQ biquad filter coefficients$B!W(B(http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt)$B$H$$$&J88%$,$"$j!"4XO"$7$?F|K\8l%5%$%H$d7W;;%=%U%H$b$?$/$5$s$"$j$^$9!#<BAu$N<jK!$O>e5-$N%N%C%A%U%#%k%?$H$[$\F1MM$G$9$N$G!"K\9F$G$O>JN,$7$F$$$^$9!#(B

($B?^(B2-5-11 Biquad$B%U%#%k%?$N%"%k%4%j%:%`Nc(B)

$B"!%l%s%84F;k(B

$B%"!<%F%#%U%!%/%H$N%U%#%k%?%j%s%0$N%"%k%4%j%:%`Nc$H$7$F!"%R%e!<%j%9%F%#%/%9(B($B7P83B'(B)$B$K4p$E$/Nc$H$7$F!"$3$3$G$O!V?.9f%l%s%84F;k!W$H$$$&%"%$%G%"$r>R2p$7$^$9!#$3$l$O6ZEE%;%s%5$N<B83$G$h$/Ax6x$7$F$-$?!"!VEE6K$,30$l$k!W!&!VEE6K%1!<%V%k$,@\?(ITNI(B/$BCG@~$9$k!W!&!VB>$N?.9f@~$H@\?($7$F0[>oEE05$,$+$+$k!W$H$$$&$h$&$J%H%i%V%k$r!"%j%"%k%?%$%`$GF0$/6ZEE%7%9%F%`$,2sHr$9$k$?$a$N$b$N$G$9!#(B

$B$=$N86M}$O$H$F$b4JC1$G!"6ZEE?.9f$N%l%Y%k$,E,@Z$K@_Dj$5$l$F$$$k>u67$G!"F~NO?.9f%l%Y%k$,!V%<%m$^$?$O:GBgCM!W$K?6$j@Z$l$F$7$^$C$F$$$k>uBV$r4F;k$7$F!"(B
	$B!&@_Dj$7$?2<8B%9%l%7%g%k%I0J2<!"$"$k$$$O>e8B%9%l%7%g%k%I0J>e$N$G$"$k$+4F;k!&8!=P$9$k(B
	$B!&8!=P$7$?$i!"F~NO%G!<%?$rL5;k$9$k$@$1$G$J$/!"$=$N;~$K$OA02s$N%G!<%?$rF~NO%G!<%?$H$7$FMQ$$$k(B
	$B!&$3$N0[>o>uBV$,B3$/$+$r%+%&%s%H$7$F!"%+%&%s%H$,@_DjCM0J>e$J$i%7%9%F%`$KJs9p$9$k(B
$B$H$$$&$h$&$J%"%k%4%j%:%`$H$J$j$^$9!#0lHLE*$J!V%G%8%?%k?.9f=hM}!W$H$OMM;R$,0c$$$^$9$,!"@8BN?.9f$N>pJs=hM}%"%k%4%j%:%`$H$7$F$O!"$3$l$O$H$F$b=EMW$G$9!#$D$^$j!"@8BN$H$H$b$K2TF/$9$k$N$G%9%H%C%W$9$k;v$O5v$5$l$:!"!VA02s$N%G!<%?$rF~NO%G!<%?$H$7$FMQ$$$k!W$H$$$&BP1~$r$G2TF/$rB3$1!"$5$i$K!V0[>o>uBV$,B3$/$$$?$i%7%9%F%`$KJs9p$9$k!W$H$$$&F0:n$r9T$&$b$N$G$9!#(B

$B<B:]$K(BNucleoF401RE$B$N%W%m%0%i%`$K<BAu$7$F$_$?$N$,%j%9%H(B2-5-5$B$G$9!#$3$3$G$O!">e=R$N%N%C%A%U%#%k%?$H$H$b$K!"HFMQ(B($B6&MQ(B)$BItJ,$K$D$$$F$O!V(Bsub.hpp$B!W$K0\F0$5$;$F!"%a%$%s$N!V(Bmain.cpp$B!W$r:#8e$N2~D{$KHw$($F@0M}$7$^$7$?$N$G!"A0$N%=!<%9%W%m%0%i%`$HF1$8%b%8%e!<%kL>$G$b8_49$G$J$/$J$C$F$$$k(B($B!V(BFIR_LPF.hpp$B!W$@$1$OF1$8(B)$B$3$H$KCm0U$7$F2<$5$$!#$?$@$7!"(BUSB$B%*!<%G%#%*<#6q$r7PM3$9$k$H!":GBg(B($BK0OB(B)$B=PNO$G$b%U%k%9%1!<%k$KFO$+$:!"=PNO$r(BOFF$B$K$7$F$bCfE@EE0L$KLa$k$H$$$&2sO)FC@->e!"$3$N%"%k%4%j%:%`$K$R$C$+$+$k0[>o?.9f$,H/@8$G$-$J$$$N$G!"<BMQ$KHw$($F%[%9%H(BPC$B$+$i%3%^%s%I$G!V(BON/OFF$B!W@_Dj$G$-$k$h$&$K$7$^$7$?!#(B

($B%j%9%H(B2-5-5)
