上一個章節對時限正弦訊號進行了基礎訊號分析,這一章,繼續分析其中的一些重要特性。
如何區分兩個頻率相同,初相不同的兩個訊號,如下圖所示:
上述兩個訊號的頻率是相同的,我們對上述兩個訊號進行FFT,得到幅頻特性,如下圖所示
上圖表明,兩者具有相同的幅頻特性,因此從幅頻特性上,無法區分這兩個訊號。但頻譜分析,除了從幅頻特性出發,還可以從相頻特性出發,我們得到兩個訊號的相頻特性曲線如下圖所示:
上圖結果表明,儘管兩個訊號的幅頻特性一致,但是兩個訊號的相頻特性是不同的,因此我們可以從相頻率特性上區分這兩個訊號,而且相頻特性具有奇對稱的特點。我們再來關注下頻率點對應的相位:對於初相為0的正弦訊號,10Hz的地方,相位為-90°;對於初相為pi/3的正弦訊號,10Hz的地方,相位為-30°。
因此,對於正弦訊號而言:幅頻特性中對應的峰值點的相位,實際上與訊號的初始相位有關,且等於初始相位-90°。而實際上,對於餘弦訊號的表達形式,幅頻特性峰值點對應的相位實際上就等於訊號的初始相位。
另外的一個問題在於:
如果一個接收訊號中,包含了兩個正弦回波訊號,那麼我們訊號的擷取時長需要為多長,才能從頻譜上將這兩個訊號區分開呢?
比如,對於訊號:
我們的訊號持續時間Tc究竟取多長,從頻譜上才能將兩者區分開來?
我們擷取不同長度的訊號進行FFT,進行訊號頻譜分析:
1 訊號S訊號持續時長0.1s。
對上述訊號進行FFT,得到幅頻特性如下圖:
上圖結果中,零頻以上只有一個峰,實際上是兩個峰混疊在一起了,我們無法將這兩個頻率區分開。
2 訊號S訊號持續時長0.5s。
對上述訊號進行FFT,得到幅頻特性如下圖:
上圖中,零頻以上有兩個峰,可見,從頻譜上這兩個訊號可以區分。那麼,訊號持續時間取多長?,兩個訊號才能區分開呢?答案是:
其中:
即,訊號的持續時間與混合訊號頻率的差值有關。只有當滿足上述關係的時候,才能將兩個訊號從頻譜上區分開。
以上分析的matlab程式碼如下:
1 %% 正弦訊號頻譜分析 2 clear 3 close all 4 clc 5 %% signal 6 A=1; %幅度 7 f=10; %頻率 8 w=2*pi*f; % 9 p=0; %相位 10 %取樣 11 T=1; %s %觀測時間 12 fs=20*f; %Hz %取樣頻率 13 d=1/fs; %s %取樣間隔 14 t0=-T/2:d:T/2; %離散時間t 15 s1=A*cos(w*t0+p); %正弦訊號 16 figure(1) 17 plot(t0,s1); 18 title('s=sin(20\pit)') 19 xlabel('時間/s'); 20 ylabel('幅度'); 21 %% FFT 22 NFFT = length(t0); 23 FFTres = fftshift(fft(s1,NFFT)); 24 FFTAmu = abs(FFTres); 25 ft=(-NFFT/2:NFFT/2-1)*fs/NFFT; %頻率序列 26 % 求幅頻曲線 27 figure(2) 28 plot(ft,FFTAmu) 29 title('s=sin(20\pit)') 30 xlabel('頻率/Hz'); 31 ylabel('幅度'); 32 % 求幅相曲線 33 FFT_phase = angle(FFTres)*180/pi; 34 figure(3) 35 plot(ft,FFT_phase) 36 title('s=sin(20\pit)') 37 xlabel('頻率/Hz'); 38 ylabel('相位/角度制'); 39 %% 變換訊號的初相 40 %% signal1 41 A=1; %幅度 42 f=10; %頻率 43 w=2*pi*f; % 44 p=pi/3; %相位 45 %取樣 46 T=1; %s %觀測時間 47 fs=20*f; %Hz %取樣頻率 48 d=1/fs; %s %取樣間隔 49 t0=-T/2:d:T/2; %離散時間t 50 s1=A*cos(w*t0+p); %正弦訊號 51 figure(4) 52 plot(t0,s1); 53 title('s=sin(20\pit+\pi/3)') 54 xlabel('時間/s'); 55 ylabel('幅度'); 56 %% FFT 57 NFFT = length(t0); 58 FFTres = fftshift(fft(s1,NFFT)); 59 FFTAmu = abs(FFTres); 60 ft=(-NFFT/2:NFFT/2-1)*fs/NFFT; %頻率序列 61 62 % 求幅頻曲線 63 figure(5) 64 plot(ft,FFTAmu) 65 title('s=sin(20\pit+\pi/3)') 66 xlabel('頻率/Hz'); 67 ylabel('幅度'); 68 % 求幅相曲線 69 FFT_phase = angle(FFTres)*180/pi; 70 figure(6) 71 plot(ft,FFT_phase) 72 title('s=sin(20\pit+\pi/3)') 73 xlabel('頻率/Hz'); 74 ylabel('相位'); 75 76 %% 將兩個訊號區分開來持續時長 77 %% 處理接收兩路的回波訊號 78 A=1; %幅度 79 f1=10; %頻率 80 f2=15; 81 w1=2*pi*f1; 82 w2=2*pi*f2; 83 p=0; 84 %取樣 85 Tc=1/10; %s %觀測時間 86 fs=20*f2; %Hz %取樣頻率 87 d=1/fs; %s %取樣間隔 88 t0=-Tc/2:d:Tc/2; %離散時間t 89 s1=A*cos(w1*t0+p)+A*cos(w2*t0+p); %正弦訊號 90 figure(7) 91 plot(t0,s1); 92 title('s=sin(20\pit)+s=sin(30\pit)') 93 xlabel('時間/s'); 94 ylabel('幅度'); 95 96 % 觀察時長為1/10s 97 FFTres = fftshift(fft(s1,NFFT)); 98 FFTAmu = abs(FFTres); 99 ft=(-NFFT/2:NFFT/2-1)*fs/NFFT; %頻率序列 100 figure(8) 101 plot(ft,FFTAmu) 102 title('訊號觀測時長T =1/10s') 103 104 %觀測時長為1/2s 105 Tc=1/2; %s %觀測時間 106 fs=20*f2; %Hz %取樣頻率 107 d=1/fs; %s %取樣間隔 108 t0=-Tc/2:d:Tc/2; %離散時間t 109 s1=A*cos(w1*t0+p)+A*cos(w2*t0+p); %正弦訊號 110 111 figure(9) 112 plot(t0,s1); 113 title('s=sin(20\pit)+s=sin(30\pit)') 114 xlabel('時間/s'); 115 ylabel('幅度'); 116 117 FFTres = fftshift(fft(s1,NFFT)); 118 FFTAmu = abs(FFTres); 119 ft=(-NFFT/2:NFFT/2-1)*fs/NFFT; %頻率序列 120 121 figure(10) 122 plot(ft,FFTAmu) 123 title('訊號觀測時長T =1/2s') 124 %% 對比正弦訊號頻譜和指數訊號頻譜