信號處理第二篇——接着談正弦信號


上一個章節對時限正弦信號進行了基礎信號分析,這一章,繼續分析其中的一些重要特性。

如何區分兩個頻率相同,初相不同的兩個信號,如下圖所示:

 

 

 上述兩個信號的頻率是相同的,我們對上述兩個信號進行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 %% 對比正弦信號頻譜和指數信號頻譜

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM