このような以下のプロ​グラムを実行しました​.図は得られたdとL​chをFFTしたもの​なのですが,dはxを​単純遅延させただけな​ので本来形は同じにな​るはずなのですが,半​円を何度も描いている​ようなグラフになって​います.特にプログラ​ムに問題はなさそうな​のですが,どうしてで​しょうか.

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 comentarios

Kenta
Kenta el 27 de Mayo de 2020
こんにちは、単純に遅延させたxとはどれを指すのでしょうか?
Kaede
Kaede el 27 de Mayo de 2020
こんにちは.コメントありがとうございます. 青です.単純遅延させただけなので本来ならばオレンジと同じような形になるはずです.
Kenta
Kenta el 27 de Mayo de 2020
なるほど、理解しました。ありがとうございます。ちなみに、2000rpm.wavを添付していただくことは可能ですか?
Kaede
Kaede el 27 de Mayo de 2020
お返事ありがとうございます.wavファイルを添付できないみたいなのですが,解決策はございますでしょうか?

Iniciar sesión para comentar.

 Respuesta aceptada

Shoumei
Shoumei el 29 de Mayo de 2020

0 votos

単純に0データを挿入して遅延させると、0データから、有効データの境界で不連続点が発生し、それが高調波成分となります。それがFFTの結果に現れているものと推測します。
予想しない結果が得られることはよくあります。今後も沢山そのような場面に遭遇すると思います。
そういうときは、まず単純なデータ(例えばSin波)などで、同じようなことをやってみて、現象を理解することをお勧めします。

5 comentarios

Kaede
Kaede el 3 de Jun. de 2020
お返事ありがとうございます.
あれから毎日色んなことに苦戦しながらもMATLABを使って勉強をしております.
ディーゼルエンジン音にハミング窓をかけてfft1したのですが,表示する帯域を変更するとこのようにいきなりカーブするというようなグラフになりました.これを上で書かれていたように不連続点で高調波成分が出ていると考えてもようのでしょうか.また最初に質問した時に高調波成分が出たときは0データを挿入せずfor分を1からスタートに変更したら消えたのですが,この場合は消すことはできるのでしょうか.
1枚目が1kHz程,2枚目が2kHz程まで表示したものです.
よろしくお願いいたします.
Kaede
Kaede el 3 de Jun. de 2020
Kaede
Kaede el 3 de Jun. de 2020
Kaede
Kaede el 3 de Jun. de 2020
いつもコメントいただきありがとうございます
Kaede
Kaede el 3 de Jun. de 2020
これはeが発散しているのが原因でした

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre フーリエ解析とフィルター処理 en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 27 de Mayo de 2020

Comentada:

el 3 de Jun. de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!