よろしくお願いします。
scilabにてオーバーラップを掛けてFFT解析をしたく、いくつかのWebを参考にさせて頂きながら
試しているのですが、”添字に誤りがあります”とエラーになってしまいます。
ソースは
clear all;
stacksize('max')
v0=read_csv('C:\Users\*****\Desktop\scilab\data7.csv',",")
v1 = evstr(v0);//上記v0データは文字列認識の為数値データに変換
//窓関数
N1=256;
win_l = window('hn',N1);
win_l_minus = win_l * -1;
//FFTを実行
N=size(v1,1);//データ長
N2=N1/4; //N/2で50%オーバーラップ
L = floor(N/N2)-1;//全サンプルに対するFFTの必要回数
y = 0;//出力ベクトルyの初期値
past_tail=zeros(1,N2);//ハーフオーバーラップ加算信号の初期値
for k=1:L
n =N2*(k-1);//FFTの開始地点を更新
v2=win_l*v1( n+1 : n+N1 );//観測信号に窓を掛ける
v3=fft(v2,-1);//FFT
y1=fft(v3,1);//IFFT
y=(y,past_tail + y1(1:N2));
//今回のIFFTの前半を前回のIFFT後半に加算してから出力ベクトルyに追加
past_tail=y1(N2+1:N1);//今回のIFFT結果の後半を記憶
end
fv1dBuV=zeros(N,2);
fv1dBuV(1,1) = 0;//DC =0Hzを入力
fv1dBuV(1,2) = 20*log10(abs(y(1)/N)/10.^-6);//dBuVに変換
sr = 4000; //sr:サンプリングレート[sample/sec]
dt = 1/sr; // dt: サンプリング間隔[sec]
T = N*dt; // T: 測定時間[sec]
df =1/T; //Hz df: 1/測定時間->最低周波数、周波数分解能[Hz]
for i=2:N
fv1dBuV(i,1)=(i-1)*df///10^6;//周波数をMHzで記録
fv1dBuV(i,2)=20*log10(abs((y(i))/(N/2))/10.^-6); //N/2の左半分を使用して算出
end
になります。(この後はPlot処理)
y=(y,past_tail + y1(1:N2))で上記エラーが指摘されます。
プログラミングは初心者なのでどのように修正したらよいか
教えていただけると助かります。
また、オーバーラップを掛けてのFFT解析で他の方法があれば
教えてください。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> ”添字に誤りがあります”
と言われているのですから、添字が正しいかどうかを中心に見直すことです。
> y=(y,past_tail + y1(1:N2))で上記エラーが指摘されます。
ということなら、ここで使われている変数等に問題がある、ということです。
となると
y
pass_tail
y1(1:N2)
が関係していると考えます。
それぞれを見ると
pass_tail=zeros(1,N2)
y1=fft(v3,1);//IFFT
です。
https://help.scilab.org/docs/5.5.0/ja_JP/zeros.h …
によると、 zeros(1,N2) は1×N2の行列です。
https://help.scilab.org/docs/5.5.0/ja_JP/fft.html
によると、 fftが返すのはベクトルです。
「行列+ベクトル」って計算できましたっけ?
回答ありがとうございます。
上記エラー部分ですが、
http://www.kumikomi.net/archives/2010/09/ep30rir …
こちらを参考にさせていただいていたのですが。
今回ご指摘頂いた部分を見直してみます。
『行列+ベクトル』⇒修正してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 「FFTの基本は、DFTはサンプル数Nが偶数なら 2つのDFTに分解できるということ。 分解するとD 3 2022/03/31 21:01
- 物理学 風力発電での音 1 2023/04/16 08:55
- 物理学 フーリエ級数展開をExcelのFFTでシミュレートする 5 2023/07/03 22:02
- 統計学 t値の計算方法 1 2022/11/29 18:37
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- 工学 周波数fで表現したフーリエ変換の対称性に関する質問です。 1 2022/09/14 12:27
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- 数学 回答の意味について 3 2023/07/06 14:14
- 数学 離散フーリエ逆変換が周波数分割数をNにできる理由について 4 2022/09/18 12:56
- 工学 オペアンプによる増幅回路でのノイズ対策について 5 2022/03/22 16:06
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
平面の交線の方程式
-
「ノルム、絶対値、長さ」の違...
-
2つに直交する単位ベクトル
-
微積分の記号δ、d、Δ、∂の違い
-
行列とベクトルの表記の仕方に...
-
線形代数 直交するベクトル
-
n次元ベクトルの外積の定義
-
一次独立だけど、基底にならな...
-
「任意」ってどういう意味?
-
一次従属の問題
-
内積、外積の発想はどのように...
-
2点A(-2,1,-1), B (1,3,2)を通...
-
ベクトル解析・外積につて
-
Aはn次正方行列とする。零行列...
-
∇演算子の計算
-
正規直交基底であることの確認
-
問) 4点O(0,0,0)、A(1,2,0)、B(...
-
ナブラ ラプラシアン
-
単位行列の固有ベクトルは全て0...
-
数学における「大きさ」とはな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報