一、通信信号瞬时参数的测量原理
通信信号的瞬时参数可用于信号的分析识别,通过利用希尔伯特变换,得到信号的正交分量,根据实部与虚部的关系,计算信号的瞬时参数:如瞬时幅度、瞬时相位、瞬时频率等。
对于窄带信号
u
(
t
)
=
a
(
t
)
c
o
s
θ
(
t
)
u(t)=a(t)cos\theta(t)
u(t)=a(t)cosθ(t),如果引入
v
(
t
)
=
a
(
t
)
s
i
n
θ
(
t
)
v(t)=a(t)sin\theta(t)
v(t)=a(t)sinθ(t),则构成复信号:
z
(
t
)
=
u
(
t
)
+
i
v
(
t
)
z(t) = u(t)+iv(t)
z(t)=u(t)+iv(t)
信号的瞬时幅度、瞬时相位和瞬时频率就可以表示为:
瞬时幅度: a ( t ) = ( u ( t ) 2 + v ( t ) 2 ) a(t) = \sqrt{(u(t)^2+v(t)^2)} a(t)=(u(t)2+v(t)2)
瞬时幅度: θ ( t ) = a r c t a n ( r e ( z ( t ) ) i m ( z ( t ) ) ) = a r c t a n ( v ( t ) u ( t ) ) \theta(t)=arctan(\frac{re(z(t))}{im(z(t))})=arctan(\frac{v(t)}{u(t)}) θ(t)=arctan(im(z(t))re(z(t)))=arctan(u(t)v(t))
瞬时幅度: w ( n ) = d θ ( t ) d t w(n)=\frac{d\theta(t)}{dt} w(n)=dtdθ(t)
由于窄带信号的特点是频谱局限在w0附近很窄的频率范围内,其包络变化是缓慢的,因此可用Hilbert得到其共轭正交分量,对信号进行解析表示,进行瞬时特征提取,经过中频采样后,瞬时参数的表达式如下:
1.瞬时幅度
a ( n ) = ( u ( n ) 2 + v ( n ) 2 ) a(n) = \sqrt{(u(n)^2+v(n)^2)} a(n)=(u(n)2+v(n)2)
2.瞬时相位
θ ( n ) = a r c t a n ( r e ( z ( n ) ) i m ( z ( n ) ) ) = a r c t a n ( v ( n ) u ( n ) ) \theta(n)=arctan(\frac{re(z(n))}{im(z(n))})=arctan(\frac{v(n)}{u(n)}) θ(n)=arctan(im(z(n))re(z(n)))=arctan(u(n)v(n))
3.瞬时频率
使用差分法,由信号的瞬时相位得瞬时频率。中心差分法如下所示:
w
(
n
)
=
F
s
2
∗
p
i
∗
(
θ
(
n
+
1
)
−
θ
(
n
−
1
)
)
w(n)=\frac{Fs}{2*pi}*(\theta(n+1)-\theta(n-1))
w(n)=2∗piFs∗(θ(n+1)−θ(n−1))
二、Matlab程序
以4FSK信号为例,对信号瞬时参数进行分析测量。
1.代码
%--------------Function:Measure Transient Paras: --------------------------
%--------------Remark: Transient Amp Transient Phase and Transient Freq ---
%--------------Data:2024.08.05--------------------------------------------
%--------------Author:Clemence--------------------------------------------
clc;
clear all;
close all;
%-----Signal Paras-------
f = 2e6; % Signal Frequency
M = 4; % Freq Num
phase = 0; % Initial Phase
a = 1; % Amplitude
b = 0; % Offs
%-----Sample Paras-------
N=10e4; % Sample Points
S_N = 1e3; % Symbol Num
Fs = 100e6; % Sample Frequency
ts = 1/Fs; % Sample Interval
t = 0:ts:(N-1)*ts; % Sample Time
%-----FSK Singal-----------------
s = zeros(1,N);
mf = 2; % Modulatu factor
nSamp = N/S_N; % Sample Num Per Symbol
Rb = Fs/nSamp; % Symbol Rate
fstep = mf*Rb; % Freq Interval
symbol = randi([0 M-1],S_N,1);% Symbol
for i=1:S_N
s((i-1)*nSamp+1:i*nSamp) = a*cos(2*pi*(f+symbol(i)*fstep).*t((i-1)*nSamp+1:i*nSamp)+phase);
end
%---------PSK Spectrum----------------------------
y_fft = abs(fft(s));
f_M = (0:N/2-1)*(Fs/N);
%----------- Hilbert--------------------------
v = hilbert(s);
vi = imag(v);
%----------Calculate Transient Amp------------
% An = sqrt(s.^2+vi.^2);
An = abs(v);
%----------Calculate Transient Phase----------
instPhase = atan2(vi,s);
theata = unwrap(instPhase);
instfrq = Fs/(2*pi)*diff(unwrap(instPhase));
%-----Plot Signal Analysis Result -------------------------------------
figure;
subplot(211)
plot(t,s);
xlabel('time');
ylabel('amp');
title('PSK signal');
subplot(212)
plot(f_M,10*log10(y_fft(1:N/2)));
xlabel('freq');
ylabel('amp');
title('FSK Freq');
figure
subplot(311)
plot(t,An);
xlabel('time');
ylabel('instamp');
title('Measure InstAmp');
subplot(312)
plot(t,instPhase);
xlabel('time');
ylabel('instphase');
title('Measure InstPhase');
subplot(313)
plot(t(2:end),instfrq);
xlabel('time');
ylabel('instfreq');
title('Measure InstFreq');
2.仿真结果
三、结果分析
示例中采样4FSK信号,频移间隔为2MHz,仿真结果符合预期。注意,瞬时相位的计算需解混叠。