3
我試圖用Matlab繪製正弦波的相位譜。下面我附上代碼,由於缺乏聲譽,我無法附上圖表。由於幅度譜似乎很好,相位譜似乎是不正確的,它就像一個噪音。你有什麼想法,爲什麼?正弦波的相位譜與Matlab
clear all;
fs=8000;
l=1000;
t=1/fs*(1:l);
x1=sin(2*pi()*1000*t);
spec_x1=fft(x1,1000);
magnitude=2*abs(spec_x1)/l;
phase=angle(spec_x1)*180/pi;
figure
plot(fs/2*linspace(0,1,500),magnitude(1:500));
title('Magnitude spectrum');
xlabel('F[Hz]');
ylabel('Magnitude');
figure
plot(fs/2*linspace(0,1,500),phase(1:500));
title('Phase spectrum');
xlabel('F[Hz]');
ylabel('Phase [degrees]');
非常感謝。這是一個問題。我還有一個問題:我做了四個正弦曲線之和的信號: 'x1 = sin(2 * pi()* 1000 * t); x2 = sin(2 * pi()* 2000 * t); x3 = cos(2 * pi()* 3000 * t); x4 = sin(2 * pi()* 3500 * t); x5 = x1 + x2 + x4 + x3;' 當我繪製x5的幅度譜時,我收到四個峯。其中三個具有相同的值= 1,但第四個(對於3500Hz)具有約0.65的值。什麼原因?它們不應該具有與正弦波振幅相同的值嗎? – Pawel
隨着您將正弦波頻率提高到4000 Hz(奈奎斯特頻率),正弦波的表示不夠準確,這會導致更寬範圍頻譜分量中的能量「模糊」。請注意,隨着峯值降低,附近的組件的幅度也在增加。正弦曲線的總能量是相同的,但由於其不太精確的表示,它會得到更多的頻率。如果你「繪製(t,x4)」並放大,你會看到不準確的地方。換句話說,部分sinuosoid被轉換成噪聲,並且您可以在頻率圖中看到噪聲頻譜。 –