このような以下のプログラムを実行しました.図は得られたdとLchをFFTしたものなのですが,dはxを単純遅延させただけなので本来形は同じになるはずなのですが,半円を何度も描いているようなグラフになっています.特にプログラムに問題はなさそうなのですが,どうしてでしょうか.
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Shoumei
le 29 Mai 2020
単純に0データを挿入して遅延させると、0データから、有効データの境界で不連続点が発生し、それが高調波成分となります。それがFFTの結果に現れているものと推測します。
予想しない結果が得られることはよくあります。今後も沢山そのような場面に遭遇すると思います。
そういうときは、まず単純なデータ(例えばSin波)などで、同じようなことをやってみて、現象を理解することをお勧めします。
5 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur スペクトル測定 dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!