このような以下のプログラムを実行しました.図は得られたdとLchをFFTしたものなのですが,dはxを単純遅延させただけなので本来形は同じになるはずなのですが,半円を何度も描いているようなグラフになっています.特にプログラムに問題はなさそうなのですが,どうしてでしょうか.
조회 수: 23 (최근 30일)
이전 댓글 표시
clear;
[data,fs]=audioread('2000rpm.wav');
a=[0,1,0,0,0,0,0,0];
L=8;
Lch=data(:,1);
N=numel(Lch);
d=zeros(1,N);
for n=L:N
d(n)=a*Lch(n-L+1:n);
end
f=fs/1024:fs/1024:fs;
fft_Lch=fft(Lch,1024);%fftは同様にしてdも行いました
dB_Lch=mag2db(abs(fft_Lch));
plot(f,dB_Lch)
댓글 수: 4
채택된 답변
Shoumei
2020년 5월 29일
単純に0データを挿入して遅延させると、0データから、有効データの境界で不連続点が発生し、それが高調波成分となります。それがFFTの結果に現れているものと推測します。
予想しない結果が得られることはよくあります。今後も沢山そのような場面に遭遇すると思います。
そういうときは、まず単純なデータ(例えばSin波)などで、同じようなことをやってみて、現象を理解することをお勧めします。
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 スペクトル測定에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!