ページ 11

C++でDFTしましたが,おかしな値になってしまいました

Posted: 2019年5月07日(火) 20:07
by naonaonara
MPLAB X IDEを用いて
加速度をDFTするプログラムを書きました

しかし,フーリエ変換した結果がおかしなことになりました
フーリエスペクトルが周期性をもち,何度も同じ波形が現れます

int型の最大値を超えているという指摘をされました
その指摘の意味すら分かりません・・・

初心者故,説明が足りない部分もありますが
どなたか教えていただけませんでしょうか・・・

Re: C++でDFTしましたが,おかしな値になってしまいました

Posted: 2019年5月08日(水) 08:30
by あたっしゅ
https://sanuki-tech.net/pic/development ... lab-x-ide/
2-3 MPLAB X IDE のインストール(Windows 編) PIC マイコンの統合開発環境 - サヌキテックネット(ja)

あぁ、PIC の話ね。Arduino に対抗しようとしてるんだ。

初心者なのに DFT するのか ? 何が専門なんだ ?
フーリエ変換するプログラムは、どっからもってきたの ? まず、コピペ・ミスが考えられます。

「int 型の最大値」とは、例えば 16 bit だと、int 型で表現できるのは、-32767..+32767 です。で、

http://ackynonichijou.com/syskai/%E3%83 ... 9B%B2.html
桁あふれ(オーバーフロー)とは何か?許容範囲の考え方を知る!- システム開発の現場で困ったときの思考法(ja)

という事です。

Re: C++でDFTしましたが,おかしな値になってしまいました

Posted: 2019年5月12日(日) 21:17
by Math
フーリエスペクトルは有限の時間窓を基本周期と見なしてフーリエ級数展開した複素フーリエ級数でMPLAB X IDEでは周期を十分大きく出来ないからでしょう。

Re: C++でDFTしましたが,おかしな値になってしまいました

Posted: 2019年5月22日(水) 09:54
by naonaonara
Mathさん,ありがとうございました!