1次元フーリエ変換を理解中の者です。

サンプリングした電圧のデータ列を分析して、周波数成分を取り出したいのですが、
フーリエ変換の概念はわかります。
やりたいのは、よく見かける、横軸周波数、縦軸電圧を作りたいです。

探したサンプルプログラムを実行して出力を得ました
実は一般的なソースらしいのですが、意味はまだ理解していません


1Khzでサンプリングした電圧のデータ列
int samp[20] = {0, 0, 0, 0, 0, 0, 0, 100, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, 0, 0};

結果
0 0 0 0 0 0 0 100 100 100 100 100 100 0 0 0 0 0 0 0
0 12 30 15 -42 -99 -80 60 292 510 600 510 292 60 -80 -100 -42 15 30 12
0 0 0 0 0 0 0 100 100 100 100 100 100 0 0 0 0 0 0 0

ソースは最後に添付します

お聞きしたいのは、この結果は、どう見たら良いのでしょうか
欲しい結果は、
1kHz = 〇v
10kHz = 〇v
...


ソース
int test_1_main()
{
double re[20], im[20];
int i;
FILE *fo;

char *outfile="test.txt";

if ((fo = fopen(outfile, "w")) == NULL) {
printf("file open error!!\n");
return (-1);
}

for(i=0; i<20; i++){
re[i] = samp[i];
im[i] = 0;
}

for(i=0; i<20; i++){
fprintf(fo, "%d ", (int)re[i]);
}

dft_swap(re, im, 20);
fprintf(fo, "\n");
dft_idft(re, im, 20, DFT);
dft_swap(re, im, 20);

for(i=0; i<20; i++){
fprintf(fo, "%d ", (int)re[i]);
}
fprintf(fo, "\n");

dft_swap(re, im, 20);
dft_idft(re, im, 20, IDFT);
dft_swap(re, im, 20);

for(i=0; i<20; i++){
fprintf(fo, "%d ", (int)re[i]);
}
fprintf(fo, "\n");

fclose(fo);

return 0;
}

call関数は書けないので抜粋以下
int dft_idft(double *re, double *im, int num, int flag)
{

for(i=0; i<num; i++){
temp_re[i] = temp_im[i] = 0.0;
}

if(flag==IDFT)coefficient=num;
else coefficient=1;

for(i=0; i<num; i++){
for(j=0; j<num; j++){
temp_re[i] += re[j]*cos(2*PI*i*j/num) + flag*im[j]*sin(2*PI*i*j/num);
temp_im[i] += -flag*re[j]*sin(2*PI*i*j/num) + im[j]*cos(2*PI*i*j/num);
}
temp_re[i] /= coefficient;
temp_im[i] /= coefficient;
}

for(i=0; i<num; i++){
re[i] = temp_re[i];
im[i] = temp_im[i];
}


}

このQ&Aに関連する最新のQ&A

A 回答 (3件)

#1です。



> 結果は、(元データ単位がVだとして)
> 0Hz 900v 
> 50Hz 1332.5v
> ・・・
> でしょうか

違います。
0Hzは30V(3列目)です。

pow=(re/20)^2+(im/20) 

pow=(re/20)^2+(im/20)^2
の間違いでした。
オイラーの公式知っていますか?
reはreal
imはimaginary
を示しています。
re*cos(θ)+i*im*sin(θ)
のパワーがpowです。
大きさはパワーの平方根でmagです。

”折り返し部分を纏めて”は
08行目のパワーと10行目のパワーは同じ周波数のパワーを示しているので
足しているだけです。
((510/20)^2+(-80/20)^2)*2=1332.5
これはパワーなので大きさに直すと
√1332.5=36.5Vです。

最大100Vの信号なので900Vなんて出るわけありません。

また、分析周波数単位という言葉はわかりませんが、
今回のように
1kHzサンプリングで20サンプルの系列をFFTで20個の周波数の系列に変換した場合、
変換後の周波数分解能は50Hzです。
    • good
    • 0
この回答へのお礼

再度有難うございます
初心者ですみません
内容理解できました

お礼日時:2011/04/28 22:17

#1です。


スペースが全部消えてしまった・・・・。
全角スペースで張り直し。

    re   im   re/20   im/20
00   12   -80   0.6   -4
01   30   -95   1.5   -4.75
02   15   -30   0.75   -1.5
03   -42   58   -2.1   2.9
04   -99   100  -4.95   5
05   -80   58   -4    2.9
06   60   -30   3    -1.5
07   292   -95   14.6   -4.75
08   510   -80   25.5   -4
09   600   0    30    0
10   510   -80   25.5   -4
11   292   -95   14.6   -4.75
12   60   -30    3    -1.5
13   -80   58    -4    2.9
14   -99   100   -4.95   5
15   -42   58   -2.1    2.9
16   15   -30   0.75    -1.5
17   30   -95   1.5    -4.75
18   12   -80   0.6    -4
19   0    0    0     0

折り返し部分のパワーはまとめる。
   freq[Hz]   pow=(re/20)^2+(im/20)   mag=sqrt(pow)
00      
01            
02            
03            
04            
05            
06            
07            
08            
09   0    900    30 
10   50   1332.5   36.5
11   100   471.45   21.71
12   150   22.5    4.74
13   200   48.82   6.99
14   250   99.01   9.95
15   300   25.64   5.06
16   350   5.63    2.37 
17   400   49.63   7.04
18   450   32.72   5.72
19   500   0     0

この回答への補足

回答有難うございます

結果は、(元データ単位がVだとして)
0Hz 900v 
50Hz 1332.5v
・・・

でしょうか
pow=(re/20)^2+(im/20) から
00   12   -80   0.6   -4 のとき
0.6×0.6+(-4)=4.36
ここから”折り返し部分を纏めて”の何かをすると、900になるのでしょうか

また、サンプリング単位50Hzが分析周波数単位と考えてよろしいのでしょうか

すみません、初心者で、よろしかったら教えて下さい

補足日時:2011/04/27 17:17
    • good
    • 0

ソースが解らんところがあるから何とも言えんが・・・。


予想で言うと、re,imを全部20で割って、
更にそれを二乗和取ってパワーを求めて、
パワーの折り返し部分を纏めて、
平方根を取ったらVででると思います。
周波数は1kHzサンプリングで20個のサンプルなので、
50Hz分解能ですね。
下記のような感じ・・見難いかな?

reimre/20im/20
012-800.6-4
130-951.5-4.75
215-300.75-1.5
3-4258-2.12.9
4-99100-4.955
5-8058-42.9
660-303-1.5
7292-9514.6-4.75
8510-8025.5-4
96000300
10510-8025.5-4
11292-9514.6-4.75
1260-303-1.5
13-8058-42.9
14-99100-4.955
15-4258-2.12.9
1615-300.75-1.5
1730-951.5-4.75
1812-800.6-4
190000

折り返し部分のpowはまとめる。
freq[Hz]pow=(re/20)^2+(im/20)mag=sqrt(pow)
0
1
2
3
4
5
6
7
8
9090030
10501332.536.5
11100471.4521.71
1215022.54.74
1320048.826.99
1425099.019.95
1530025.645.06
163505.632.37
1740049.637.04
1845032.725.72
1950000
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q関西と関東の交流周波数を55ヘルツに統合できない?

今回の震災で生じた首都圏の電力不足の対応策についてなのですが、関西の電力を関東に融通するのに、交流周波数変換が必要で、その設備がボトルネックになっているそうです。
そこで思ったのですが、昔は洗濯機やレコードプレーヤーに使用場所の違い(関西・関東)で切り替えるスイッチがついていたけど、最近は自動認識するのか、そもそもその程度の周波数変動に影響されないのか、とんと切り替えの必要性を聞いたことがありません。
だから関東に60ヘルツの交流を流しても端末機器にはそんなに悪影響無い気もするのですが、さすがに、50ヘルツの発電所と60ヘルツの発電所が同じネットワークにつながっているのは、ネットワークとして何か不都合がありそうにも思います。

...であれば、いっそのこと西日本と東日本の交流周波数のあいだをとって55ヘルツにしてみたらどうなんだろうと思うのですが。
10%の周波数誤差だったら、端末で吸収できる気がします。(昔の電動置時計とかレコードプレーヤーは難しいでしょうが。
)もし許容可能なレベルの不都合であれば、関西の人も震災の痛みを共有できるテーマのようにも思います。
誰か電気に詳しい人、教えてください。

今回の震災で生じた首都圏の電力不足の対応策についてなのですが、関西の電力を関東に融通するのに、交流周波数変換が必要で、その設備がボトルネックになっているそうです。
そこで思ったのですが、昔は洗濯機やレコードプレーヤーに使用場所の違い(関西・関東)で切り替えるスイッチがついていたけど、最近は自動認識するのか、そもそもその程度の周波数変動に影響されないのか、とんと切り替えの必要性を聞いたことがありません。
だから関東に60ヘルツの交流を流しても端末機器にはそんなに悪影響無い気も...続きを読む

Aベストアンサー

周波数50Hzと60Hzで,異なっているから,
中部・関西電力から東京電力への送電電力量が制限されるため,
今回の震災によって計画停電が行われている.
というのは,あながち間違いではありません.
当然のことながら,周波数を変えるということは,色々なところで,大きな影響を及ぼします.
たとえば,関東など東日本にある工場と,大阪など西日本にある工場では,電源周波数が違うわけですから,工場の電気関係の設計が異なります.
だから,50と60の間をとってしまえば良いというのは,暴論に近い議論となります.

まぁ,家庭用の電源なんて,大して問題ではないです.
なぜなら,家庭で使用される電源はAD変換されて,ほとんどが直流で動いていますから.
ちなみに,PCはDV12と5Vですね.
交流で動いているものなんて,洗濯機とか一部の冷蔵庫くらいでしょう.
しかし,洗濯機はインバータで制御してますから,周波数が違ったところでなんら問題はありません.
要は,産業用の電源供給がネックになってきます.
工場とすれば,色々なところで周波数の変化への対応をとらなければならないので,
変えて欲しくないと思うでしょう.
周波数の統一は,正直,不可能ではないかと思います.
最近よく,統一するべきだ!という意見を聞きますが,
そんなに簡単にできることであれば,もはや統一されていると思います.
しかしまぁ,技術的には簡単なことだと思いますが.

さらに,中部地方で周波数変換が行われておりますが,
そういう施設を製造したために,西側から直接東側に電力を送ることができないはずです.
そのような施設を新しく製造しなければならないことを考えると,
ただでさえ昨年度決算が大赤字の東京電力としては,絶対にやりたくないでしょう.

周波数50Hzと60Hzで,異なっているから,
中部・関西電力から東京電力への送電電力量が制限されるため,
今回の震災によって計画停電が行われている.
というのは,あながち間違いではありません.
当然のことながら,周波数を変えるということは,色々なところで,大きな影響を及ぼします.
たとえば,関東など東日本にある工場と,大阪など西日本にある工場では,電源周波数が違うわけですから,工場の電気関係の設計が異なります.
だから,50と60の間をとってしまえば良いというのは,暴論に近い議論...続きを読む

Qアクセス解析で「次のページ、サイト」というものは、何を示しているのですか?

こんにちは。

アクセス解析で「次のページ、サイト」というものは、何を示しているのですか?
そのページからリンクを貼られているどのページに飛んだか。なのか、それとも、お気に入りなどをクリックして、そのブラウザを閉じないでそのままそのウィンドウを使用して次のページに言ったりしたページのことですか?

つまり、戻るボタンで戻れる場合の、次のサイトですか?そのサイトを開いたまま、アドレスを入力したりして飛んだページのことですか?

お願いいたします。

Aベストアンサー

「アクセス解析」と言われてもアクセス解析プログラムも山のようにありますから、具体的に名前を出していただかないと、回答のしようがありませんT-T

どちら側のアクセス解析でしょうか?
 ・ご自分のHPのアクセス解析なのか
 ・ホスト側のアクセス解析なのか
によっても異なってきますよ。

Q関東と関西の電気、周波数の差はどうして?

関東と関西の電気の周波数の差があるため、西日本から東日本へ電気の輸送に制限があるとききました。なぜ同じ日本なのに、統一していないのですか。統一する方がメリットがあるとおもうのですが、そうしない理由はなぜですか。

Aベストアンサー

http://chiri-zemi.web.infoseek.co.jp/framepagekansai.html

ご参考までに。

要するに、日本で初めて「発電」が始まった時まで遡る訳ですね。
明治29年、東京電灯(東京電力の前身)はドイツのAEG社から50ヘルツの発電機を購入。
その翌年、大阪電灯(関西電力の前身)はアメリカのGE社から60ヘルツの発電機を購入。
僅か1年の差で、それぞれ操業を始めて以来100余年、50ヘルツと60ヘルツの地域に分かれてしまったのです。

「周波数を統一する動き」は何度かあったようですが、莫大な費用がかかる上に、どちらかの地方の電気製品が使えなくなってしまうデメリットも有るようです。
もっとも、最近の家電製品の殆どは、共用になっているようですが。

Q変換フリーソフトについて

MP3. WAV.等々の相互変換ソフトはありますか?
教えてください

Aベストアンサー

[AudioEncoder]
WAVE/MP3/WMA/Ogg Vorbis/Monkey's Audio/Twin VQ形式の音声ファイルを相互変換できるソフト。

参考URL:http://kazuki.s18.xrea.com/

Q関西と関東!周波数違うけど家電大丈夫!

今度、仕事で東京へ行く事に成ったのですが、家電製品は周波数が違う場合は壊れやすく成ったりしないでしょうか?
ご存知あればご回答のほど宜しくお願い致します。

Aベストアンサー

http://www.joshin.co.jp/j_service/qanda/zenpan01.html
http://omoinimotu.net/jj66loi.htm
http://www.yomiuri.co.jp/komachi/reader/200509/2005090600193.htm

■東日本と西日本で同じ家電商品使えますか?
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1498417

こんなページがありました。

Q次のフリーソフトについて

このサイトで以前紹介していただいたフリーソフトがあるのですが、フリーソフトはあまり信頼できないようなので、このフリーソフトを使用したことがある方、もしくはご存知の方は感想をお聞かせください。

バックアップソフトです↓
http://www.forest.impress.co.jp/lib/sys/file/syncbackup/paragonbakup.html
データのリカバリーソフトです↓
http://www.forest.impress.co.jp/lib/sys/file/delundel/datarecovery.html

よろしくお願いします。

Aベストアンサー

前者は有料版イメージバックアップソフト(aがつくソフト)を使用しているのでパス
後者は、以前の「復元」(フリーソフト)なき後の(ごみ箱の削除ファイルを)復元ソフトの定番です。(復元できない場合もありますから有料ソフトファイナル**タの体験版で復元可能かどうかをみて有料版を購入します)

>フリーソフトはあまり信頼できないようなので

フリーソフトも信頼できるものが多数あります。(パソコン誌PCjap*n9月号「手放せなくなる即効ツール50」などは信頼できるかと)それ以外にも・・・・・・PC環境によりトラブルこともモチあり。

Q電気製品の周波数について

電気製品の周波数はいつ頃から問題視されなくなったのでしょうか?
また関西では扇風機の風力が周波数の影響で強いという話を耳にしたのですが
ホントでしょうか?お教え下さいませ。

Aベストアンサー

扇風機のような誘導モーターを使用した機器では電源周波数により回転数が変わるので、関西で使用したほうが回転数が早くなります。最近の家電機器は電源周波数に影響されるものが少なくなっているのは事実で、これは、モーターを使用した機器で回転数の変化があってはならないような機器が、DCサーボモーターやインバーター制御などにより電源の周波数とは直接関係無くなってきたためです。ステレオなどは周波数依存のヒステリシスモーターを使用した機種では回転数が変化してしまい問題でしたが、ここ10年程度のものは殆どDCまたはACのサーボモーターを使用しているので、周波数の変化とは無縁です。

電子レンジに関しても最近のものでは問題ありませんが、型が古いものでは、マグネトロンの交換が必要になるものもあります。こうなると新品を購入した方がはるかに安いでしょう。

周波数依存性のある機器で、周波数の異なる地域での使用に支障がある機器には、その器具のどこかに仕様周波数の表示があるはずです。

QHDDディスク容量変換ソフト

482kbが何GBか。

また16GBが何MBか即座に計算したいのですが、

そのようなわかりやすいWEBページはありますでしょうか。
(例:http://homepage1.nifty.com/acs/pc/hddcapa.htm)

ご存知の方、宜しくお願いします。

Aベストアンサー

実は、前提条件によって結果が違うんですが・・・。

HDDの容量などを表す時には、単純に1MB=1000KB
1GB=1000MBです。HDDの箱などに買いてある容量は
この計算方法で計算されてます。

ちゃんと容量を計算する時は1MB=1024KB、1GB=1024MB
と、2の倍数で計算します(2の10乗は1024です)。
エクスプローラーで表示される容量はこちらです。

どちらかが分かれば、ソフトなんぞ不要。単純に掛け算する
だけで、暗算でも十分できますよ。

Q家電の周波数について

関西に旅行するのですが、関東の電化製品は関西で使えますか?たとえば、携帯やデジカメの充電器など。周波数が違うということをきいたことがあるのですか・・・。

Aベストアンサー

最近の物は問題なく使えますが、念のためにその機器の表示を確認してください。50‐60Hzと表示があれば問題なく使えます。

QWindowsでログオフする度に元の設定に戻す方法

WindowsXP SP3を使ってます。
ユーザーにはAdministratorとAuserがあります。

このPCは常にAuserにログインして他人にインターネットの特定のページを見せる用にしたいので、
Auserでログインしている時はシステムの変更が一切できないようにしたいのです。
以前、教習所に通っていた時に備え付けのPCでログオフして再度ログインしたら、
ファイルの移動や、アプリケーションの設定まで全ての変更が戻っていたので、そんなふうにしたいと考えています。

Administratorを使う時はFlashとかのバージョンアップや別途インストールが必要になった時に使う程度にしたいです。

どなたがご存知の方がいらっしゃいましたらご教示宜しくお願いします。

Aベストアンサー

不特定多数の人が触るパソコンには「リカバリーソフト」というのが入っています。
これはどんな設定をしたり、個人情報を残しても再起動すれば何一つ残らないようにするソフトです。
再起動が必要だと思うのでログオフだとダメかも知れません。

こんな感じ。
http://www.zetta.co.jp/products/recovery_king_z/
http://www.ever-denshi.co.jp/de/product/sw/keeper/index.html

マイクロソフトでも無償で出ていたような気がするんですが今はないかもしれません。


人気Q&Aランキング

おすすめ情報