512個のデータに対してFFTをかけ、変換後の絶対値を得たいのですが矢印の部分でプログラムがとまり、特にエラーメッセージも出ません。
原因がわかりません。申し訳ありませんが、よろしくお願いします。
void FFT(int x[], int y[])
{
int d, dn, pow, m, j1, j2, exp2, j , k, ndv2, t, flags= 1;
int n_data = 0, dnumb = 512, nf, jk;
double w, arg, c, s, t1, t2, t0, dt, ana, anb, answer;
double [] xr = new double[512];
double [] xi = new double[512];
dn=dnumb;
w=6.283185303/dnumb;
pow=exp2(dnumb); *2の何乗かを計算するメソッドです
for(t = 0; t < 512; t++){
if(t < 500)
xr[t] = x[t];
else
xr[t] = xr[499];
xi[t] = 0;
}
for(int i=1; i<=pow ; i++)
{
m=dn;
dn=dn/2;
arg=0;
for(int j=1; j<=dn; j++)
{
c=Math.cos(arg);
s=-flags*Math.sin(arg);
arg=arg+w;
k=m;
while(k<=dnumb)
{
j1=k-m+j;
j2=j1+dn;
→→→→→→→ t1=xr[j1]-xr[j2];
t2=xi[j1]-xi[j2];
xr[j1]=xr[j1]+xr[j2];
xi[j1]=xi[j1]+xi[j2];
xr[j2]=c*t1+s*t2;
xi[j2]=c*t2-s*t1;
k=k+m;
}
}
w=2*w;
}
j=1;
ndv2=dnumb/2;
for(int i=1; i<=(dnumb-1); i++)
{
if(i<j)
{
t1=xr[j];
t2=xi[j];
xr[j]=xr[i];
xi[j]=xi[i];
xr[i]=t1;
xi[i]=t2;
}
k=ndv2;
while(k<j)
{
j=j-k;
k=k/2;
}
j=j+k;
}
for(t = 0; t < 512; t++){
ana = Math.pow(xr[t], 2);
anb = Math.pow(xi[t], 2);
answer = Math.pow(ana + anb, 0.5);
}
if (flags==1)
{
for(int j=1; j<=dnumb; j++)
{
xr[j]=xr[j]/dnumb;
xi[j]=xi[j]/dnumb;
}
}
}
No.2ベストアンサー
- 回答日時:
エラーメッセージが出てないのにどうしてその行が悪いとわかったのですか?
もう少し情報がないと答えようがないと思います。
実行時にとまるのであれば
配列の添え字が範囲外になっていませんか?
No.1
- 回答日時:
Javaにしてはへんなプログラムと思ったら、Math.sinて、JavaScript??
いろいろとチェック点ありすぎなので、
変数にどんなデータが入ってるのかとか、自作関数の動作は?
とか、エラーメッセージくらいチェックする方法を勉強してから、JavaScript掲示板でその成果を質問に反映させて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# ポインタの型変換、どうやるんでしたっけ? 2 2022/03/28 11:00
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- JavaScript 最小二乗法 2 2023/01/01 20:57
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- 統計学 1次式の線形回帰 1 2023/05/10 14:49
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実数からの小数部の取得
-
Javaで何パーセント%かを表示...
-
べき乗
-
doubleで入力するには?
-
JAVAのプログラムで、2乗計算...
-
0dの意味を教えてください
-
乱数のdouble型について
-
Javaによる利率計算の実装方法
-
面積や角度を出力するプログラム
-
分を表す数値(int型)を、小数...
-
IF関数でEmpty値を設定する方法。
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
System.out.printlnの意味がよ...
-
1~100までの数字を表示し、か...
-
JSPやサーブレットでSystem.out...
-
VBAで配列の計算
-
パソコンキーボードで時分秒を...
-
[JAVA]try 内の変数を外で!?
-
javaで質問です。 文字列2023/2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0dの意味を教えてください
-
Javaで何パーセント%かを表示...
-
実数からの小数部の取得
-
べき乗
-
double型変数値の整数部分のみ...
-
JAVAのプログラムで、2乗計算...
-
printfでのエラーがわからない...
-
doubleとintの違い
-
java のfor文について質問です。
-
分を表す数値(int型)を、小数...
-
99.98+0.01の誤差
-
面積や角度を出力するプログラム
-
ダイアログベースの3次Spline...
-
四捨五入をするメソッドを実装...
-
Javaのeval関数処理
-
最大値を求めるプログラム
-
掛け算演算を使わない掛け算
-
少数50桁以上を表示するには
-
javaで1.8x10の308乗÷...
-
double を すべて bigdecimal
おすすめ情報