ページ 1 / 1
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さん,ありがとうございました!