FFTのコマンドを用いない、DFTのアルゴリズムでのプログラミングについて
Mostrar comentarios más antiguos
初めまして。
私は、現在MATLAB上でFFTコマンドを用いずにDFTのプログラムを作成中です。
ある20000個のデータを解析したいのですが、プログラムがうまく実行できません。
以下が作成中のプログラムとなります。
使用しているDFTの定義式は、
(k=0,1,2,…,N-1)です。
clear;
close all;
filename1 ='C.csv';
sheet=1;
xlRange='A:A';
A=xlsread(filename1,sheet,xlRange);
N=20000;
for k=0:1:N-1
syms I
S1=symsum(A(I+1,1)*exp(-1j*(2*pi/N)*k*I),I,0,N-1);
ck=(1/N)*S1;
rck=real(ck);
end
aCk=abs(rck);
plot(aCk)
このプログラムを実行した結果、
エラー: sym/subsindex (line 769)
インデックス付けまたは関数定義が無効です。関数を定義する場合は、必ず引数をシンボリッ
ク変数にして、関数の本体を SYM 式にしてください。インデックス付けの場合、入力は数
値、論理値または ':' でなければなりません。
エラー: DFT (line 16)
S1=symsum(A(I+1,1)*exp(-1j*(2*pi/N)*k*I),I,0,N-1);
と表示されました。
DFTを行い、振幅スペクトルおよび位相スペクトルをグラフで表示するにはどうしたらよいでしょうか。
皆様のお力を貸していただければと思います。
なお、MATLABのプログラム技術や知識はあまりないので、丁寧に教えてくださると助かります。
1 comentario
michio
el 27 de Feb. de 2019
質問の投稿、ありがとうございました。
回答の内容で課題や疑問が解決されましたら、
ぜひ「この回答を採用」ボタンのクリックをお願いいたします。
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre フーリエ解析とフィルター処理 en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!