上一个章节对时限正弦信号进行了基础信号分析,这一章,继续分析其中的一些重要特性。
如何区分两个频率相同,初相不同的两个信号,如下图所示:
上述两个信号的频率是相同的,我们对上述两个信号进行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 %% 对比正弦信号频谱和指数信号频谱