Matlabは、fftを使って信号のスペクトルを描く方法です。
雷原作業をするには、信号のスペクトル分析が必要です。ネットで検索すると混乱しています。多くは私のほしいものではなく、ここで整理します。
DSPはまだfftを習っていないので、fftの原理を詳しく説明しないで、直接コードをつけます。
周波数領域に変換する鍵関数は、
この動作を終えた後、二国間スペクトルが得られ、周波数範囲は-fs/2からfs/2までであり、これはナイキストのサンプリング定理によって、サンプル周波数がfsであると元の信号の最大周波数がfs/2を超えないからである。横座標の点数と時間領域信号のサンプリング点数は同じで,これは離散的フーリエ変換の性質によって与えられる。
スペクトルの幅図は以下の通りです。
直流成分の振幅は3であり、これは時間領域の振幅と同じで、5 Hzと10 Hzの振幅はそれぞれ0.5と1であり、これは時間領域の振幅より半分減少していることが分かる。これはこのスペクトルマップが2乗スペクトルであるためである。x=0線に沿った「二つ折り」を過去に加算すると、片側スペクトルになり、周波数領域の振幅が時間領域の振幅に対応します。
以上、Matlabに関してはfftを使って信号のスペクトルを描いた文章を紹介します。Matlabのffut信号のスペクトルの内容については以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。
DSPはまだfftを習っていないので、fftの原理を詳しく説明しないで、直接コードをつけます。
fs=500;%
f1=5;%
f2=10;%
T=1;% 1s
n=round(T*fs);%
t=linspace(0,T,n);%
x = 3+cos(2*pi*f1*t) + 2.*cos(2*pi*f2*t);% , 2, 3
figure(1);
plot(t,x);%
xlabel("t/s")
grid on
X = fftshift(fft(x./(n))); % fft
f=linspace(-fs/2,fs/2-1,n);% , ,
figure(2)
plot(f,abs(X));%
xlabel("f/Hz")
ylabel(" ")
grid on
明らかに、この信号は3つの周波数成分、直流(0周波数)、5 Hz、10 Hzがあり、対応する振幅はそれぞれ3、1、2であり、その時間領域波形図は以下の通りである。周波数領域に変換する鍵関数は、
X = fftshift(fft(x./(n)));
であり、全サンプル数nで除算された後、シフトで曲線を位置を移動する必要があることに注意が必要である。この動作を終えた後、二国間スペクトルが得られ、周波数範囲は-fs/2からfs/2までであり、これはナイキストのサンプリング定理によって、サンプル周波数がfsであると元の信号の最大周波数がfs/2を超えないからである。横座標の点数と時間領域信号のサンプリング点数は同じで,これは離散的フーリエ変換の性質によって与えられる。
スペクトルの幅図は以下の通りです。
直流成分の振幅は3であり、これは時間領域の振幅と同じで、5 Hzと10 Hzの振幅はそれぞれ0.5と1であり、これは時間領域の振幅より半分減少していることが分かる。これはこのスペクトルマップが2乗スペクトルであるためである。x=0線に沿った「二つ折り」を過去に加算すると、片側スペクトルになり、周波数領域の振幅が時間領域の振幅に対応します。
以上、Matlabに関してはfftを使って信号のスペクトルを描いた文章を紹介します。Matlabのffut信号のスペクトルの内容については以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。