ネットに載っていたものなのですが、エラーが出てしまい実行できません。
どこを直したらよいのかご教授ください。
#include <stdio.h>
#include <math.h>
#include "common.h"
#include "fftcore.h"
#define SIZE 16
void maketimedomain(double x[],int size)
{
int i;
for (i=0;i<size;i++) {
x[i]=sin((2*M_PI)*i/size);
}
}
main()
{
double timedomain[SIZE]; /*時間領域データ格納域*/
dcomplex_t fftwork[SIZE]; /*複素数作業領域*/
/*FFTの初期化*/
initfft(SIZE);
/*時間領域データの作成とファイル保存*/
maketimedomain(timedomain,SIZE);
savereal(timedomain,SIZE,"timedomain.txt");
/*FFT作業の準備のため,時間領域データを複素数作業領域へ*/
/*コピーとファイル保存*/
real2cmp(timedomain,fftwork,SIZE);
savecmp(fftwork,SIZE,"comptimedomain.txt");
/*FFT(順方向フーリエ変換)*/
/*作業領域fftworkの内容がスペクトルになる*/
/*得られたスペクトルのファイルへの保存*/
fft(1,fftwork,SIZE);
savecmp(fftwork,SIZE,"spectrum.txt");
}
そしてfftcore.h は
void savereal(double r[],int size,char *fname);
void savecmp(dcomplex_t c[],int size,char *fname);
void real2cmp(double r[],dcomplex_t c[],int size);
void cmp2real(dcomplex_t c[],double r[],int size);
void movecmp(dcomplex_t s[],dcomplex_t d[],int size);
void movereal(double s[],double d[],int size);
void compress(dcomplex_t x[],int size);
void expand(dcomplex_t x[],int size);
void makepower(dcomplex_t s[],double pow[],int size,int mode);
void makecross(dcomplex_t x[],dcomplex_t y[],dcomplex_t crs[],int size,int mode);
void makecohe(double psx[], double psy[], dcomplex_t crs[],double cohe[],int size);
/* mode -1:clear&calc, 0:calc&add, 0<m:calc,add&normarize by m */
void makecoheop(double pow[],double cohe[],double cohepow[],int size);
void makexfunc(double psx[], dcomplex_t crs[], dcomplex_t trans[],int size);
void hanning(dcomplex_t data[],int size);
void hamming(dcomplex_t data[],int size);
void rectwindow(dcomplex_t data[],int size,int lowerlimit,int upperlimit);
void fft(int cdir,dcomplex_t x[],int size);
void initfft(int fftsize);
void windowout(void);
そしてcommon.h は
typedef struct {
double real;
double image;
} dcomplex_t;
typedef struct {
double *firdfcoef;
double *firdfx;
int firdflen;
int ptr;
} firdf_t;
/*#define WORKSIZE 256
#define FREQDSIZE (WORKSIZE/2)+1*/
#ifndef M_PI
#define M_PI 3.14159265358979
#endif
になります。
No.1
- 回答日時:
さて・・・・
どんなエラーが出たんでしょうか・・・・・
エラーの中身が分からなければ何が起きたのかは分かりませんね
時数足りなくて一行だけ書けないところがあったのですが以下の通りです。
17 | main()
| ^~~~
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\kymt\AppData\Local\Temp\ccvwMcEA.o:gyouretu4.c:(.text+0x67): undefined reference to `initfft'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\kymt\AppData\Local\Temp\ccvwMcEA.o:gyouretu4.c:(.text+0x9d): undefined reference to `savereal'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\kymt\AppData\Local\Temp\ccvwMcEA.o:gyouretu4.c:(.text+0xbc): undefined reference to `real2cmp'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\kymt\AppData\Local\Temp\ccvwMcEA.o:gyouretu4.c:(.text+0xd8): undefined reference to `savecmp'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\kymt\AppData\Local\Temp\ccvwMcEA.o:gyouretu4.c:(.text+0xf4): undefined reference to `fft'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語での引数の省略方法
-
【C++】関数ポインタの使い方
-
「指定されたキャストは有効で...
-
#define _CRT_SECURE_NO_WARNIN...
-
複数桁10進数の*桁目だけを抽出...
-
「{ } で囲むだけ」は正しい?
-
実数の整数部,小数部の取得
-
c言語の配列を使ってサイコロを...
-
if と配列の組み合わせ
-
C言語で行列の積を計算できるよ...
-
入力を待たずにstdinの監視をし...
-
C言語 エラーの原因がわからな...
-
C++でvectorにテキストファイル...
-
ラップ関数とはどんなものですか?
-
数字列を3桁ごとにカンマで区切...
-
return 1L
-
PowerShellがうまくいかない
-
C言語の配列をC++のvectorに高...
-
野球の対戦成績のテーブル表示...
-
部分行列の抜き出し(C言語)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
複数桁10進数の*桁目だけを抽出...
-
【C++】関数ポインタの使い方
-
C言語 エラーの原因がわからな...
-
c++でテンプレートのコードでわ...
-
(int *)の意味
-
ラップ関数とはどんなものですか?
-
数字列を3桁ごとにカンマで区切...
-
c言語のリダイレクトによる円...
-
比較回数と交換回数表示について
-
実数の整数部,小数部の取得
-
if と配列の組み合わせ
-
構造体の勉強中です 合計点の高...
-
PowerShellがうまくいかない
-
c言語の配列を使ってサイコロを...
-
課題でつまってます・・・
-
C言語のサイコロシミュレート
-
エラー 添字が付けられた値が、...
おすすめ情報