<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>bluedb.org</title>
	<link>http://bluedb.org</link>
	<description>さまざまな情報をいかに効率よく扱うかを模索するサイト</description>
	<pubDate>Sat, 26 Jan 2008 06:09:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3</generator>
	<language>en</language>
			<item>
		<title>aer</title>
		<link>http://bluedb.org/archives/94</link>
		<comments>http://bluedb.org/archives/94#comments</comments>
		<pubDate>Sat, 26 Jan 2008 06:09:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[MISC]]></category>

		<guid isPermaLink="false">http://bluedb.org/archives/94</guid>
		<description><![CDATA[American Eagleというフォントをインストール。
フォントをコピーしてmktexlsrを実行すればOK。
]]></description>
			<content:encoded><![CDATA[<p>American Eagleというフォントをインストール。<br />
フォントをコピーしてmktexlsrを実行すればOK。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedb.org/archives/94/feed</wfw:commentRss>
		</item>
		<item>
		<title>ハザードとは</title>
		<link>http://bluedb.org/archives/93</link>
		<comments>http://bluedb.org/archives/93#comments</comments>
		<pubDate>Sat, 08 Dec 2007 18:36:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[MISC]]></category>

		<guid isPermaLink="false">http://bluedb.org/archives/93</guid>
		<description><![CDATA[
論理回路で構成する素子の遅延などが原因で，二つ以上の信号が同時に変化すると，どちらか動作の速いほうの素子の出力が先に出てきて出力がおかしくなることをいう．また，このように二つ以上の信号が競争することをレース（race）という．組み合わせ回路の場合は，ある時間がたてばハザードがおさまるが，この出力をフリップフロップなどの順序回路にとりこむと問題をおこすので注意を要する．ハザードには，本来出力が不可なのに入力が変化したため，一度または二度出力がばたつくスタティック・ハザードと，出力が変化（“L”から“H”または“H”から“L”へ）したときにばたつくダイナミック・ハザードがあり，チャタリングと同じような現象が起こる．
回路素子の遅延などの理由によって発生する細い幅の不要信号．ひげ（髭）． 

]]></description>
			<content:encoded><![CDATA[<p><UL></p>
<li>論理回路で構成する素子の遅延などが原因で，二つ以上の信号が同時に変化すると，どちらか動作の速いほうの素子の出力が先に出てきて出力がおかしくなることをいう．また，このように二つ以上の信号が競争することをレース（race）という．組み合わせ回路の場合は，ある時間がたてばハザードがおさまるが，この出力をフリップフロップなどの順序回路にとりこむと問題をおこすので注意を要する．ハザードには，本来出力が不可なのに入力が変化したため，一度または二度出力がばたつくスタティック・ハザードと，出力が変化（“L”から“H”または“H”から“L”へ）したときにばたつくダイナミック・ハザードがあり，チャタリングと同じような現象が起こる．</li>
<li>回路素子の遅延などの理由によって発生する細い幅の不要信号．ひげ（髭）． </li>
<p></UL></p>
]]></content:encoded>
			<wfw:commentRss>http://bluedb.org/archives/93/feed</wfw:commentRss>
		</item>
		<item>
		<title>波を表す数式の特性</title>
		<link>http://bluedb.org/archives/83</link>
		<comments>http://bluedb.org/archives/83#comments</comments>
		<pubDate>Tue, 06 Nov 2007 23:58:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[MISC]]></category>

		<guid isPermaLink="false">http://bluedb.org/archives/83</guid>
		<description><![CDATA[波を数式で表すとき、三角関数を用います。

tは時間です。ω（オメガ）は角速度と呼ばれ、

で表されます。Tは波の周期です。fは周波数です。つまりωはある周波数の波を表すことになります。
では、2つの波を掛け算したらどうなるかを考えてみます。数式に表すと

になります。つまり全ての時間においてω1とω2のtにおける波を掛け合わすことを意味しています。10Hzの波と20Hzの波を掛け算した場合のことを考えて見ます。10Hzの波は

です。20Hzの波は

です。この2つの波を全てのtにおいて掛け算すると

という波が得られます。このように、ω1 != ω2の場合には0を中心に上下対称な波になり、全ての波の成分を足し合わせると0になります。
今度は10Hzの波と10Hzの波を足し合わせてみます。

このように今度は全く同じ波であるので、マイナスとマイナスが打ち消しあいます。なので全ての波の成分を足し合わせると∞になります。
]]></description>
			<content:encoded><![CDATA[<p>波を数式で表すとき、三角関数を用います。</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/wave003.png' alt='' /></p>
<p>tは時間です。ω（オメガ）は角速度と呼ばれ、</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/wave002.png' alt='' /></p>
<p>で表されます。Tは波の周期です。fは周波数です。つまりωはある周波数の波を表すことになります。</p>
<p>では、2つの波を掛け算したらどうなるかを考えてみます。数式に表すと</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/wave001.png' alt='' /></p>
<p>になります。つまり全ての時間においてω<sub>1</sub>とω<sub>2</sub>のtにおける波を掛け合わすことを意味しています。10Hzの波と20Hzの波を掛け算した場合のことを考えて見ます。10Hzの波は</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/freq10.png' alt='' /></p>
<p>です。20Hzの波は</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/freq20.png' alt='' /></p>
<p>です。この2つの波を全てのtにおいて掛け算すると</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/freq10-20.png' alt='' /></p>
<p>という波が得られます。このように、ω<sub>1</sub> != ω<sub>2</sub>の場合には0を中心に上下対称な波になり、全ての波の成分を足し合わせると0になります。</p>
<p>今度は10Hzの波と10Hzの波を足し合わせてみます。</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/freq10-10.png' alt='' /></p>
<p>このように今度は全く同じ波であるので、マイナスとマイナスが打ち消しあいます。なので全ての波の成分を足し合わせると∞になります。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedb.org/archives/83/feed</wfw:commentRss>
		</item>
		<item>
		<title>アドレナリンを出す方法</title>
		<link>http://bluedb.org/archives/81</link>
		<comments>http://bluedb.org/archives/81#comments</comments>
		<pubDate>Tue, 06 Nov 2007 20:45:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[MISC]]></category>

		<guid isPermaLink="false">http://bluedb.org/archives/81</guid>
		<description><![CDATA[なんか気分がうまくコントロールできない、と思うときには脳内物質のバランスが崩れている可能性があります。
・ノルアドレナリン
恐怖や緊張で分泌される、身体を臨戦態勢にするホルモンです。
集中力が高まり、強い力が出せるようになります。火事場の馬鹿力は典型例です。
大声を出すと多く分泌されます。
アドレナリンが足りないと無気力になります。
アドレナリンが分泌されすぎるとイライラしやすくなります。
アドレナリンが足りないときの対処法は自分が何か興奮できることをすることです。
映画を見るのでもいいですし、運動をしたりするのもいいかもしれません。
アドレナリンが過剰なときの対処法はセロトニンを分泌させるような行動を取ることです。
・ドーパミン
動機付けをするホルモンです。快感を増幅させる働きもあります。
恋愛・買い物・ギャンブルで勝ったときなどに多く分泌されます。ストレスなどでセロトニン（後述）などが少なく、ドーパミンが多く分泌される状態が続くと、さらに強い刺激を求めて依存症になることがあります。
ドーパミンが不足すると無気力になります。
ドーパミンが過剰だとSEXや煙草、酒、ショッピングなどに依存しやすくなります。
ドーパミンが不足したときの対処法はアドレナリンと同様に自分の好きなことをやることです。何かをするとドーパミンが出てくるので無気力なときはとりあえず何かをするというのも効果があります。
ドーパミンが過剰な場合はドーパミンが出ている原因を絶つことです。ドーパミンが過剰な場合にはSEXや煙草、お酒などに依存していることが多いので欲求が収まるまでそれを絶つ以外に方法はありません。
・エンドルフィン
苦痛を和らげる効果があり、恍惚感を感じます。
緊張から解き放たれたとき、長時間走り続けたとき、陣痛のような強い痛みなどで多く分泌されます。瞑想やプラス思考でも分泌されると言われています。
エンドルフィンが不足すると人生が苦痛で満ちたものであるように感じるようになります。
エンドルフィンが過剰だと全能感が芽生え、いわゆる躁状態になります。
・セロトニン
心を落ち着けるホルモンです。
朝日をしっかり浴びたり、毎日２０分くらい歩くなどのリズムのある運動をすると多く分泌されるそうです。
セロトニンが足りないとイライラしやすくなります。
セロトニンが分泌されすぎると眠くなります。
セロトニンが足りないときの対処法は軽くて眺めの運動をしたり、お風呂に入ったり、緩やかな音楽を聴いたりとリラックスできるようなことをすると効果があります。
セロトニンが過剰な時の対処法はアドレナリンがでるような行動を取ることです。
]]></description>
			<content:encoded><![CDATA[<p>なんか気分がうまくコントロールできない、と思うときには脳内物質のバランスが崩れている可能性があります。</p>
<p>・ノルアドレナリン<br />
恐怖や緊張で分泌される、身体を臨戦態勢にするホルモンです。<br />
集中力が高まり、強い力が出せるようになります。火事場の馬鹿力は典型例です。<br />
大声を出すと多く分泌されます。<br />
アドレナリンが足りないと無気力になります。<br />
アドレナリンが分泌されすぎるとイライラしやすくなります。</p>
<p>アドレナリンが足りないときの対処法は自分が何か興奮できることをすることです。<br />
映画を見るのでもいいですし、運動をしたりするのもいいかもしれません。</p>
<p>アドレナリンが過剰なときの対処法はセロトニンを分泌させるような行動を取ることです。</p>
<p>・ドーパミン<br />
動機付けをするホルモンです。快感を増幅させる働きもあります。<br />
恋愛・買い物・ギャンブルで勝ったときなどに多く分泌されます。ストレスなどでセロトニン（後述）などが少なく、ドーパミンが多く分泌される状態が続くと、さらに強い刺激を求めて依存症になることがあります。<br />
ドーパミンが不足すると無気力になります。<br />
ドーパミンが過剰だとSEXや煙草、酒、ショッピングなどに依存しやすくなります。</p>
<p>ドーパミンが不足したときの対処法はアドレナリンと同様に自分の好きなことをやることです。何かをするとドーパミンが出てくるので無気力なときはとりあえず何かをするというのも効果があります。<br />
ドーパミンが過剰な場合はドーパミンが出ている原因を絶つことです。ドーパミンが過剰な場合にはSEXや煙草、お酒などに依存していることが多いので欲求が収まるまでそれを絶つ以外に方法はありません。</p>
<p>・エンドルフィン<br />
苦痛を和らげる効果があり、恍惚感を感じます。<br />
緊張から解き放たれたとき、長時間走り続けたとき、陣痛のような強い痛みなどで多く分泌されます。瞑想やプラス思考でも分泌されると言われています。<br />
エンドルフィンが不足すると人生が苦痛で満ちたものであるように感じるようになります。<br />
エンドルフィンが過剰だと全能感が芽生え、いわゆる躁状態になります。</p>
<p>・セロトニン<br />
心を落ち着けるホルモンです。<br />
朝日をしっかり浴びたり、毎日２０分くらい歩くなどのリズムのある運動をすると多く分泌されるそうです。<br />
セロトニンが足りないとイライラしやすくなります。<br />
セロトニンが分泌されすぎると眠くなります。</p>
<p>セロトニンが足りないときの対処法は軽くて眺めの運動をしたり、お風呂に入ったり、緩やかな音楽を聴いたりとリラックスできるようなことをすると効果があります。<br />
セロトニンが過剰な時の対処法はアドレナリンがでるような行動を取ることです。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedb.org/archives/81/feed</wfw:commentRss>
		</item>
		<item>
		<title>フーリエ変換の分かりやすい説明 -7</title>
		<link>http://bluedb.org/archives/69</link>
		<comments>http://bluedb.org/archives/69#comments</comments>
		<pubDate>Tue, 06 Nov 2007 00:04:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[MISC]]></category>

		<guid isPermaLink="false">http://bluedb.org/archives/69</guid>
		<description><![CDATA[さて、今回は離散フーリエ変換の理解をフーリエ変換の理解につなげたいと思います。
まず、離散フーリエ変換のもともとの式

を見てみます。離散フーリエ変換では離散なのでΣでkが0からn-1までを足していますが、これを実数にするには、積分を使います。つまり、全ての実数の結果を足すわけです。

これでフーリエ変換の説明は終わりです。ポイントはネイピア数に複素数が累乗されていたら波の要素をあらわしていることを理解することです。
離散値と連続値の関係は面白いですね。こんな感じでウェーブレット変換やコサイン変換も理解できたらいいのですが．．．．
]]></description>
			<content:encoded><![CDATA[<p>さて、今回は離散フーリエ変換の理解をフーリエ変換の理解につなげたいと思います。</p>
<p>まず、離散フーリエ変換のもともとの式</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier1.png' alt='' /></p>
<p>を見てみます。離散フーリエ変換では離散なのでΣで<em>k</em>が0からn-1までを足していますが、これを実数にするには、積分を使います。つまり、全ての実数の結果を足すわけです。</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier12.png' alt='' /></p>
<p>これでフーリエ変換の説明は終わりです。ポイントはネイピア数に複素数が累乗されていたら波の要素をあらわしていることを理解することです。</p>
<p>離散値と連続値の関係は面白いですね。こんな感じでウェーブレット変換やコサイン変換も理解できたらいいのですが．．．．</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedb.org/archives/69/feed</wfw:commentRss>
		</item>
		<item>
		<title>フーリエ変換の分かりやすい説明 -6</title>
		<link>http://bluedb.org/archives/73</link>
		<comments>http://bluedb.org/archives/73#comments</comments>
		<pubDate>Mon, 05 Nov 2007 23:36:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[MISC]]></category>

		<guid isPermaLink="false">http://bluedb.org/archives/73</guid>
		<description><![CDATA[今回は波をちょっとずらした場合の離散フーリエ変換の結果を見て行きたいと思います。
まずはこれまでも用いた

x = {1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0}
の波は

になります。つまりコサイン波と一致します。これを離散フーリエ変換すると

f10 = 20.0 + 0i

が得られます。これを複素数平面にプロットすると

となり位相スペクトルは0度になります。また、実部スペクトルは20、虚部スペクトルは0、パワースペクトル&#124;f&#124;は400、振幅スペクトル&#124;f&#124;/lnは0.5、位相スペクトルはarg(f)=tan-1(20/0)=0度になります。
今度はこの波形を90度進めてみましょう。すると数列xは

x = {0, -1, 0, 1, 0, -1, 0, 1, [...]]]></description>
			<content:encoded><![CDATA[<p>今回は波をちょっとずらした場合の離散フーリエ変換の結果を見て行きたいと思います。</p>
<p>まずはこれまでも用いた</p>
<blockquote><p>
<em>x</em> = {1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0}</p></blockquote>
<p>の波は</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier141.png' alt='' /></p>
<p>になります。つまりコサイン波と一致します。これを離散フーリエ変換すると</p>
<blockquote><p>
f<sub>10</sub> = 20.0 + 0i
</p></blockquote>
<p>が得られます。これを複素数平面にプロットすると</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/complex00.png' alt='' /></p>
<p>となり位相スペクトルは0度になります。また、実部スペクトルは20、虚部スペクトルは0、パワースペクトル|<em>f</em>|は400、振幅スペクトル|f|/l<em>n</em>は0.5、位相スペクトルはarg(f)=tan<sup>-1</sup>(20/0)=0度になります。</p>
<p>今度はこの波形を90度進めてみましょう。すると数列<em>x</em>は</p>
<blockquote><p>
<em>x</em> = {0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1}</p></blockquote>
<p>になり、グラフは</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier151.png' alt='' /></p>
<p>になります。これを離散フーリエ変換すると</p>
<blockquote><p>
f<sub>10</sub> = 0.0 + 20.0i
</p></blockquote>
<p>が求まります。つまり実部スペクトルは0、虚部スペクトルは20、パワースペクトル|<em>f</em>|は400、振幅スペクトル|f|/l<em>n</em>は0.5、位相スペクトルはarg(f)=tan<sup>-1</sup>(0/20)=90度になります。つまり位相スペクトルにはコサイン波から波を何度進めたかが現れます。</p>
<p>次に元の10Hzの波の振幅を2倍にしてみます。すると数列<em>x</em>は</p>
<blockquote><p>
<em>x</em> = {0, -2, 0, 2, 0, -2, 0, 2, 0, -2, 0, 2, 0, -2, 0, 2, 0, -2, 0, 2, 0, -2, 0, 2, 0, -2, 0, 2, 0, -2, 0, 2, 0, -2, 0, 2, 0, -2, 0, 2}</p></blockquote>
<p>なります。これをグラフで表すと</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier13.png' alt='' /></p>
<p>これを離散フーリエ変換すると</p>
<blockquote><p>
f<sub>10</sub> = 0.0 + 40.0i
</p></blockquote>
<p>が求まります。つまり実部スペクトルは0、虚部スペクトルは40、パワースペクトル|<em>f</em>|は1600、振幅スペクトル|f|/l<em>n</em>は1.0、位相スペクトルはarg(f)=tan<sup>-1</sup>(0/40)=90度になります。振幅のエネルギーを示すパワースペクトルが2の2乗倍、振幅の半分の値を示す振幅スペクトルの値が2倍になっているのが分かります。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedb.org/archives/73/feed</wfw:commentRss>
		</item>
		<item>
		<title>フーリエ変換の分かりやすい説明 -5</title>
		<link>http://bluedb.org/archives/68</link>
		<comments>http://bluedb.org/archives/68#comments</comments>
		<pubDate>Mon, 05 Nov 2007 22:41:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[MISC]]></category>

		<guid isPermaLink="false">http://bluedb.org/archives/68</guid>
		<description><![CDATA[今回はいよいよ10Hzの離散フーリエ変換を計算してみます。

に関してk=10、n=40、xが

x = {1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0}
の時にj=0～39で列挙すると

1.0 + 0.0i
0.0 + 0.0i
1.0 + 0.0i
0.0 + 0.0i
1.0 + 0.0i
0.0 + 0.0i
1.0 + [...]]]></description>
			<content:encoded><![CDATA[<p>今回はいよいよ10Hzの離散フーリエ変換を計算してみます。</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier8.png' alt='' /></p>
<p>に関して<em>k</em>=10、<em>n</em>=40、<em>x</em>が</p>
<blockquote><p>
<em>x</em> = {1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0}</p></blockquote>
<p>の時に<em>j</em>=0～39で列挙すると</p>
<pre><code>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + 0.0<em>i</em>
</code></pre>
<p>が得られます。これを全部足すと</p>
<pre><code>
20.0+ 0.0<em>i</em>
</code></pre>
<p>つまりパワースペクトラムが400になります。このように、数列<em>x</em>が</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier91.png' alt='' /></p>
<p>の周波数を含んでいた場合、波の大きさに応じた値が出力されます。</p>
<p>次回は離散フーリエ変換を用いて普通のフーリエ変換を理解してみます。</p>
<p><a href="http://bluedb.org/archives/69">http://bluedb.org/archives/69</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluedb.org/archives/68/feed</wfw:commentRss>
		</item>
		<item>
		<title>フーリエ変換の分かりやすい説明 -4</title>
		<link>http://bluedb.org/archives/62</link>
		<comments>http://bluedb.org/archives/62#comments</comments>
		<pubDate>Mon, 05 Nov 2007 08:00:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[MISC]]></category>

		<guid isPermaLink="false">http://bluedb.org/archives/62</guid>
		<description><![CDATA[さて、それではなぜこのように数列から周波数を取り出すことができるかを
http://bluedb.org/archives/47
の

x = {1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0}
と

から紐解いていきます。
まず周波数が0Hzの部分を考えます。つまり

j=0

です。すると[]の中は常に1であるので、計算は

f0 = 1 + 0 + (-1) + 0 + &#8230;. + 1 + [...]]]></description>
			<content:encoded><![CDATA[<p>さて、それではなぜこのように数列から周波数を取り出すことができるかを</p>
<p><a href="http://bluedb.org/archives/47">http://bluedb.org/archives/47</a></p>
<p>の</p>
<blockquote><p>
<em>x</em> = {1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0}</p></blockquote>
<p>と</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier4.png' alt='' /></p>
<p>から紐解いていきます。</p>
<p>まず周波数が0Hzの部分を考えます。つまり</p>
<blockquote><p>
<em>j</em>=0
</p></blockquote>
<p>です。すると[]の中は常に1であるので、計算は</p>
<blockquote><p>
f<sub>0</sub> = 1 + 0 + (-1) + 0 + &#8230;. + 1 + 0 + (-1) + 0 = 0
</p></blockquote>
<p>になります。つまり周波数0Hzの成分は0ということになります。周波数0Hzとは切片を意味するので0であっています。</p>
<p>次に周波数が5Hzの部分を考えます。計算はちょっと長くなります。まず、[]の中のcos成分だけに注目しましょう。つまり</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier6.png' alt='' /></p>
<p>の部分です。<em>j</em>は0～39、<em>k</em>は5Hzなので5、<em>n</em>はサンプル数の40になります。この成分だけ<em>j</em>が0～39の部分を列挙すると</p>
<pre><code>
1.00
0.707
0.0
-0.707
-1.00
-0.707
0.0
0.707
1.00
0.707
0.0
-0.707
-1.00
-0.707
0.0
0.707
1.00
0.707
0.0
-0.707
-1.00
-0.707
0.0
0.707
1.00
0.707
0.0
-0.707
-1.00
-0.707
0.0
0.707
1.00
0.707
0.0
-0.707
-1.00
-0.707
0.0
0.707
</code></pre>
<p>が得られます。これをグラフでプロットすると</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier7.png' alt='' /></p>
<p>のように5Hzの波が表示されます。同様にsin成分も5Hzの波になります。この各成分にもとの10Hzの波をかけています。つまり</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier8.png' alt='' /></p>
<p>に関して<em>k</em>=5、<em>n</em>=40を<em>j</em>=0～39で列挙すると</p>
<pre><code>
1.0 + -0.0<em>i</em>
0.0 + -0.0<em>i</em>
-0.0 + 1.0<em>i</em>
-0.0 + -0.0<em>i</em>
-1.0 + -0.0<em>i</em>
-0.0 + 0.0<em>i</em>
0.0 + -1.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + -0.0<em>i</em>
-0.0 + 1.0<em>i</em>
-0.0 + -0.0<em>i</em>
-1.0 + -0.0<em>i</em>
-0.0 + 0.0<em>i</em>
0.0 + -1.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + -0.0<em>i</em>
-0.0 + 1.0<em>i</em>
-0.0 + -0.0<em>i</em>
-1.0 + -0.0<em>i</em>
-0.0 + 0.0<em>i</em>
0.0 + -1.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + -0.0<em>i</em>
0.0 + 1.0<em>i</em>
-0.0 + -0.0<em>i</em>
-1.0 + -0.0<em>i</em>
-0.0 + 0.0<em>i</em>
0.0 + -1.0<em>i</em>
0.0 + 0.0<em>i</em>
1.0 + 0.0<em>i</em>
0.0 + -0.0<em>i</em>
0.0 + 1.0<em>i</em>
-0.0 + -0.0<em>i</em>
-1.0 + -0.0<em>i</em>
-0.0 + 0.0<em>i</em>
0.0 + -1.0<em>i</em>
0.0 + 0.0<em>i</em>
</code></pre>
<p>が得られます。これを全て足すと、各成分が打ち消しあい、</p>
<pre><code>
0.0+ 0.0<em>i</em>
</code></pre>
<p>になります。つまり、5Hzの成分はもとの波に含まれてないことが分かりました。</p>
<p>つまりsineとcosineから構成される</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier91.png' alt='' /></p>
<p>の部分は周波数<em>k</em>の波を意味していることになります。そして元の配列<em>x</em>にその波の成分が含まれていない場合にはゼロになるというわけです。</p>
<p>ではもし<em>x</em>にその波の成分が含まれていたらどうなるのでしょうか？次回は10Hzの場合に関して調べます。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedb.org/archives/62/feed</wfw:commentRss>
		</item>
		<item>
		<title>フーリエ変換の分かりやすい説明 -3</title>
		<link>http://bluedb.org/archives/60</link>
		<comments>http://bluedb.org/archives/60#comments</comments>
		<pubDate>Mon, 05 Nov 2007 07:11:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[MISC]]></category>

		<guid isPermaLink="false">http://bluedb.org/archives/60</guid>
		<description><![CDATA[前回はプログラムで離散フーリエ変換を実行したところまで説明しました。今回は出力された結果の意味を説明したいと思います。
http://bluedb.org/archives/59
前回出力された結果をグラフに表します。

x軸が周波数、y軸がパワースペクトラムになります。ちょうど10Hzのところと30Hzのところにスペクトルが出ています。さて、今回離散フーリエ変換をかけたのは10Hzの波でした。
http://bluedb.org/archives/47
なぜ30Hzにもスペクトルが出てしまっているのでしょうか？
実は40Hzでサンプリングした場合、標本化定理によりサンプリング周波数の半分の周波数までしか取得することができません。今回の場合は20Hzまでしか取得できません。30Hzのスペクトルは10Hzのスペクトルを誤って検出した結果になります。
なぜフーリエ変換で周波数が取り出せるのか、に関しては次回以降で話します。
]]></description>
			<content:encoded><![CDATA[<p>前回はプログラムで離散フーリエ変換を実行したところまで説明しました。今回は出力された結果の意味を説明したいと思います。<br />
<a href="http://bluedb.org/archives/59">http://bluedb.org/archives/59</a></p>
<p>前回出力された結果をグラフに表します。</p>
<p><img src='http://bluedb.org/wp-content/uploads/2007/11/fourier5.png' alt='' /></p>
<p>x軸が周波数、y軸がパワースペクトラムになります。ちょうど10Hzのところと30Hzのところにスペクトルが出ています。さて、今回離散フーリエ変換をかけたのは10Hzの波でした。<br />
<a href="http://bluedb.org/archives/47">http://bluedb.org/archives/47</a><br />
なぜ30Hzにもスペクトルが出てしまっているのでしょうか？</p>
<p>実は40Hzでサンプリングした場合、標本化定理によりサンプリング周波数の半分の周波数までしか取得することができません。今回の場合は20Hzまでしか取得できません。30Hzのスペクトルは10Hzのスペクトルを誤って検出した結果になります。</p>
<p>なぜフーリエ変換で周波数が取り出せるのか、に関しては次回以降で話します。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedb.org/archives/60/feed</wfw:commentRss>
		</item>
		<item>
		<title>フーリエ変換の分かりやすい説明 -2</title>
		<link>http://bluedb.org/archives/59</link>
		<comments>http://bluedb.org/archives/59#comments</comments>
		<pubDate>Mon, 05 Nov 2007 06:48:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[MISC]]></category>

		<guid isPermaLink="false">http://bluedb.org/archives/59</guid>
		<description><![CDATA[前回の続きです。
http://bluedb.org/archives/47
前回の数列を離散フーリエ変換するプログラムを以下に示します。

#include &#60;stdio.h&#62;
#include &#60;math.h&#62;

int main(){
    float x[40] = {1, 0, &#8722;1, 0, 1, 0, &#8722;1, 0, 1, 0, &#8722;1, 0,
                   1, 0, &#8722;1, 0, 1, 0, &#8722;1, 0, 1, 0, &#8722;1, 0,
    [...]]]></description>
			<content:encoded><![CDATA[<p>前回の続きです。<br />
<a href="http://bluedb.org/archives/47">http://bluedb.org/archives/47</a></p>
<p>前回の数列を離散フーリエ変換するプログラムを以下に示します。</p>
<pre><code>
#include &lt;stdio.h&gt;
#include &lt;math.h&gt;

int main(){
    float x[40] = {1, 0, &minus;1, 0, 1, 0, &minus;1, 0, 1, 0, &minus;1, 0,
                   1, 0, &minus;1, 0, 1, 0, &minus;1, 0, 1, 0, &minus;1, 0,
                   1, 0, &minus;1, 0, 1, 0, &minus;1, 0, 1, 0, &minus;1, 0,
                   1, 0, &minus;1, 0};
    float f[40];

    int j, k;

    for(j = 0; j &lt; 40; j++){
        float real = 0;
        float imaginary = 0;

        for(k = 0; k &lt; 40; k++){
            real += x[k] * cos((float)&minus;j * k * 2.0 * M_PI / 40.0);
            imaginary += x[k] * sin((float)&minus;j * k * 2.0 * M_PI  / 40.0);
        }

        f[j] = pow(real, 2.0) + pow(imaginary, 2.0);
    }

    for(j = 0; j &lt; 40; j++){
        printf("%03d: %f\r\n", j, f[j]);
    }

    return 0;
}
</code></pre>
<p>特に難しいところはないのですが変数realが複素数の実部、imaginaryが複素数の虚部を示しています。配列fにはパワースペクトルが入っています。<br />
これを実行すると</p>
<pre><code>
000: 0.0
001: 0.0
002: 0.0
003: 0.0
004: 0.0
005: 0.0
006: 0.0
007: 0.0
008: 0.0
009: 0.0
010: 400.0
011: 0.0
012: 0.0
013: 0.0
014: 0.0
015: 0.0
016: 0.0
017: 0.0
018: 0.0
019: 0.0
020: 0.0
021: 0.0
022: 0.0
023: 0.0
024: 0.0
025: 0.0
026: 0.0
027: 0.0
028: 0.0
029: 0.0
030: 400.0
031: 0.0
032: 0.0
033: 0.0
034: 0.0
035: 0.0
036: 0.0
037: 0.0
038: 0.0
039: 0.0
</code></pre>
<p>が出力されます。次回はこの結果の意味に関して話したいと思います。</p>
<p><a href="http://bluedb.org/archives/60">http://bluedb.org/archives/60</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluedb.org/archives/59/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
