fftwでいろいろ実験

by K.I
2014/08/05〜2014/08/29

Index


概要


[top]

fftwインストール

とにかくインストールしてみる

ちゃんとインストールする

fftwのプログラム


[top]

gnuplotインストール

gnuplotのスクリプト

スクリプトで標準入力

表示用スクリプトいろいろ

位相アンラッピング


1最初の行は自分の環境に合わせて、gnuplotのパスを指定する。

[top]

信号発生

正弦波発生

DDS

矩形波

Dutyを変えてみる

三角波

ノコギリ波

ノイズ

PN符号

→意外と変な波形だ。

PN符号(1ビット)


2矩形波と比較すると、縦方向のスケールが全然違うことが分かる。

[top]

信号の組み合わせ

足し算

掛け算

比較

最小値・最大値


[top]

音声データへの変換ツール

txt2wav

ステレオにする(170407追記)

dumpwave

% dumpwave dds1000x.wav > dds1000x.txt

lame

sox

option description
-s signed
-u unsigned
-b 8bit
-w 16bit
-l 32bit
-d 64bit
-r rate Sampling Rate
-c ch Channel(ch:1,2)
-x exchange endian
-t type format type

[top]

音で確認

DDSの音

三角波の音

三角波の音(改)

矩形波の音

ノコギリ波の音

ノイズの音

PN符号の音

DDSの音(サンプリング1MHz)


3音で聞く限りは、全然わかんないけれども。

[top]

2値化

単純な2値化

PWM

PWMの周波数を上げる(161223追記)

RPWM

1次ΔΣ


4良く見ると縦軸の目盛り変わってるので、それほど悪くはなってない。

[top]

擬似ホワイトノイズを作る

正弦波の加算プログラム

サンプリング周波数1kHz(失敗)

位相特性用には使える

サンプリング周波数1kHz(改)

サンプリング周波数48kHz

指定範囲だけ生成


5δ関数は、全ての周波数を均等に含んでいるらしいので。
6π、或いは−πで暴れるので、unwrapを掛けている。だから、値は元の計算値とは違っている。
7これについては、fftwプログラムの位相角計算が間違っていた。プログラムは直したけど、図は後で差換えないと。。
8だいたい実際は窓をどう取るかによって、全然変わってくるよね。
9ちゃんと、ナイキスト周波数で、折り返しがあることが分かる。

[top]

まとめ

参考


[top] [プログラムの部屋に戻る]

comments powered by Disqus