目录

信号的希尔伯特变换与等效基带表示原理与Matlab实践

信号的希尔伯特变换与等效基带表示:原理与Matlab实践

内容摘要

本文深入解析信号的希尔伯特变换原理及其核心性质,包括频谱特性、奇偶性与正交性。通过解析信号与等效基带表示,展示如何将带通信号转换为基带信号以简化系统分析,并结合带通系统的等效基带模型验证其有效性。

关键词 :希尔伯特变换,解析信号,等效基带信号,带通系统,频谱分析


1. 希尔伯特变换及其性质

1.1 定义与频谱分析

希尔伯特变换(Hilbert Transform)是一种重要的信号处理工具,定义为:

s ^ ( t )

H [ s ( t ) ]

∫ − ∞ ∞ s ( τ ) π ( t − τ ) d τ \hat{s}(t) = \mathcal{H}[s(t)] = \int_{-\infty}^{\infty} \frac{s(\tau)}{\pi(t - \tau)} d\tau

s

^

(

t

)

=

H

[

s

(

t

)]

=

π

(

t

τ

)

s

(

τ

)

d

τ

其逆变换为:

s ( t )

H − 1 [ s ^ ( t ) ]

− ∫ − ∞ ∞ s ^ ( τ ) π ( t − τ ) d τ s(t) = \mathcal{H}^{-1}[\hat{s}(t)] = -\int_{-\infty}^{\infty} \frac{\hat{s}(\tau)}{\pi(t - \tau)} d\tau

s

(

t

)

=

H

1

[

s

^

(

t

)]

=

π

(

t

τ

)

s

^

(

τ

)

d

τ

通过傅里叶变换分析,希尔伯特变换的频域特性为:

F [ s ^ ( t ) ]

− j ⋅ sgn ( f ) ⋅ F [ s ( t ) ] \mathcal{F}[\hat{s}(t)] = -j \cdot \text{sgn}(f) \cdot \mathcal{F}[s(t)]

F

[

s

^

(

t

)]

=

j

sgn

(

f

)

F

[

s

(

t

)]

其中,

sgn ( f ) \text{sgn}(f)

sgn

(

f

) 为符号函数,表示对信号正频率分量移相

− 9 0 ∘ -90^\circ

9

0

∘ ,负频率分量移相

9 0 ∘ 90^\circ

9

0

∘ ,等效于一个线性系统(如图2-5所示)。

1.2 核心性质

  1. 奇偶性

    s ( t ) s(t)

    s

    (

    t

    ) 与其希尔伯特变换

    s ^ ( t ) \hat{s}(t)

    s

    ^

    (

    t

    ) 互为奇偶函数。

  2. 正交性

    ∫ − ∞ ∞ s ( t ) s ^ ( t ) d t

    0 \int_{-\infty}^{\infty} s(t)\hat{s}(t) dt = 0

    s

    (

    t

    )

    s

    ^

    (

    t

    )

    d

    t

    =

    0 。

  3. 等能量性

    ∫ − ∞ ∞ s 2 ( t ) d t

    ∫ − ∞ ∞ [ s ^ ( t ) ] 2 d t \int_{-\infty}^{\infty} s^2(t) dt = \int_{-\infty}^{\infty} [\hat{s}(t)]^2 dt

    s

    2

    (

    t

    )

    d

    t

    =

    [

    s

    ^

    (

    t

    )

    ]

    2

    d

    t 。


2. 解析信号与等效基带信号

2.1 解析信号

信号

f ( t ) f(t)

f

(

t

) 的解析信号定义为:

z ( t )

f ( t ) + j f ^ ( t ) z(t) = f(t) + j\hat{f}(t)

z

(

t

)

=

f

(

t

)

j

f

^

(

t

)

其频谱为:

Z ( f )

2 F ( f ) U ( f ) Z(f) = 2F(f)U(f)

Z

(

f

)

=

2

F

(

f

)

U

(

f

)

即解析信号仅保留原信号的正频率分量,且幅度加倍。

2.2 带通信号的等效基带表示

带通信号(如

s ( t )

f ( t ) cos ⁡ ω c t s(t) = f(t)\cos\omega_c t

s

(

t

)

=

f

(

t

)

cos

ω

c

t )可通过解析信号平移至基带:

  1. 解析信号:

    z ( t )

    s ( t ) + j s ^ ( t ) z(t) = s(t) + j\hat{s}(t)

    z

    (

    t

    )

    =

    s

    (

    t

    )

j

s

^

(

t

) 2. 平移至基带:

s L ( t )

z ( t ) e − j 2 π f c t

s r ( t ) + j s c ( t ) s_L(t) = z(t)e^{-j2\pi f_c t} = s_r(t) + j s_c(t)

s

L

(

t

)

=

z

(

t

)

e

j

2

π

f

c

t

=

s

r

(

t

)

j

s

c

(

t

)

此时,原带通信号可表示为:

s ( t )

Re [ s L ( t ) e j 2 π f c t ] s(t) = \text{Re}\left[s_L(t)e^{j2\pi f_c t}\right]

s

(

t

)

=

Re

[

s

L

(

t

)

e

j

2

π

f

c

t

]


3. 等效基带系统

带通系统(如通信信道)的冲激响应

h ( t ) h(t)

h

(

t

) 与输入信号

s ( t ) s(t)

s

(

t

) 均可分解为基带形式:

h ( t )

Re [ h L ( t ) e j 2 π f c t ] , s ( t )

Re [ s L ( t ) e j 2 π f c t ] h(t) = \text{Re}\left[h_L(t)e^{j2\pi f_c t}\right], \quad s(t) = \text{Re}\left[s_L(t)e^{j2\pi f_c t}\right]

h

(

t

)

=

Re

[

h

L

(

t

)

e

j

2

π

f

c

t

]

,

s

(

t

)

=

Re

[

s

L

(

t

)

e

j

2

π

f

c

t

]

系统输出为:

y ( t )

Re [ y L ( t ) e j 2 π f c t ] , y L ( t )

h L ( t ) ∗ s L ( t ) y(t) = \text{Re}\left[y_L(t)e^{j2\pi f_c t}\right], \quad y_L(t) = h_L(t) * s_L(t)

y

(

t

)

=

Re

[

y

L

(

t

)

e

j

2

π

f

c

t

]

,

y

L

(

t

)

=

h

L

(

t

)

s

L

(

t

)

结论 :带通系统可等效为基带系统的卷积操作,大幅简化分析与计算。


4. Matlab实例:带通信号处理对比

4.1 实例描述

输入信号:

s ( t )

e − t cos ⁡ 20 π t s(t) = e^{-t}\cos20\pi t

s

(

t

)

=

e

t

cos

20

π

t

带通系统响应:

∣ H ( f ) ∣

{ 1 ∣ f − 10 ∣ ≤ 5 − 1 ∣ f + 10 ∣ ≤ 5 0 其他 |H(f)| = \begin{cases} 1 & |f - 10| \leq 5 \ -1 & |f + 10| \leq 5 \ 0 & \text{其他} \end{cases}

H

(

f

)

=

1

1

0

f

10∣

5

f

10∣

5

其他

可以用带通信号直接经过带通系统求得输出信号,其中带通系统的冲激响应函数为

https://i-blog.csdnimg.cn/direct/6c9189290ec34a3fb90b14ffe9099279.png#pic_center

带通系统的输出为

[y(t)=s(t)*h(t)]

4.2 代码实现

%带通信号经过带通系统的等效基带表示,sig_bandpass.m
clear all;
close all;
dt=0.01;
t=0:dt:5;
s1=exp(-t).*cos(20*pi*t); %输入信号
[f1,s1f]=T2F(t,s1); %输入信号的频谱
s1_lowpass = hilbert(s1).*exp(-j*2*pi*10*t); %输入信号的等效基带信号
[f2,s2f]=T2F(t,s1_lowpass); %输入等效基带信号的频谱
h2t = zeros(1,length(s2f));
[a,b]=find(abs(s1f)==max(abs(s1f))); %找到带通信号的中心频率
h2f(201 - 25:201 + 25)=1;
h2f(301 - 25:301 + 25)=1;
h2f = h2f.*exp(-j*2*pi*f2); %加入线性相位
[t1,h1]=F2T(f2,h2f); %带通系统的冲激响应
h1_lowpass = hilbert(h1).*exp(-j*2*pi*10*t1);%等效基带系统的冲激响应
figure(1)
subplot(521);
plot(t,s1);
xlabel('t');ylabel('s1(t)');title('带通信号');
subplot(523);
plot(f1,abs(s1f));
xlabel('f');ylabel('|S1(f)|');title('带通信号幅度谱');
subplot(522)
plot(t,real(s1_lowpass));
xlabel('t');ylabel('Re[s1(t)]');title('等效基带信号的实部');
subplot(524)
plot(f2,abs(s2f));
xlabel('f');ylabel('|S2(f)|');title('等效基带信号的幅度谱');
%画带通系统及其等效基带的图
subplot(525)
plot(f2,abs(h2f));
xlabel('f');ylabel('|H(f)|');title('带通系统的传输响应幅度谱');
subplot(527)
plot(t1,h1);
xlabel('t');ylabel('h(t)');title('带通系统的冲激响应');
subplot(526)
[f3,h1f]=T2F(t1,h1_lowpass);
plot(f3,abs(h1f));
xlabel('f');ylabel('|H1(f)|');title('带通系统的等效基带幅度谱');
subplot(528)
plot(t1,h1_lowpass);
xlabel('t');ylabel('h1(t)');title('带通系统的等效基带冲激响应');
%画出带通信号经过带通系统的响应及等效基带信号经过等效基带系统的响应
tt = 0:dt:t1(end)+t(end);
yt = conv(s1,h1);
subplot(529)
plot(tt,yt);
xlabel('t');ylabel('y(t)');title('带通信号与带通系统响应的卷积');
yt1 = conv(s1_lowpass,h1_lowpass).*exp(j*2*pi*10*tt);
subplot(5,2,10)
plot(tt,real(yt1));
xlabel('t');ylabel('y1(t)cos(20*pi*t)');
title('等效基带与等效基带系统响应的卷积×中心频率载波');clear all;
close all;
dt = 0.01;
t = 0:dt:5;
s1 = exp(-t).*cos(20*pi*t); % 输入信号
[f1,s1f] = T2F(t,s1); % 输入信号的频谱
s1_lowpass = hilbert(s1).*exp(-j*2*pi*10*t); % 输入信号的等效基带信号
[f2,s2f] = T2F(t,s1_lowpass); % 输入等效基带信号的频谱

% 完整初始化 h2f,使其长度和 f2 一致
h2f = zeros(size(f2)); 
h2f(201 - 25:201 + 25) = 1;
h2f(301 - 25:301 + 25) = 1;
h2f = h2f.*exp(-j*2*pi*f2); % 加入线性相位

[t1,h1] = F2T(f2,h2f); % 带通系统的冲激响应
h1_lowpass = hilbert(h1).*exp(-j*2*pi*10*t1); % 等效基带系统的冲激响应

figure(1)
subplot(521);
plot(t,s1);
xlabel('t');
ylabel('s1(t)');
title('带通信号');

subplot(523);
plot(f1,abs(s1f));
xlabel('f');
ylabel('|S1(f)|');
title('带通信号幅度谱');

subplot(522)
plot(t,real(s1_lowpass));
xlabel('t');
ylabel('Re[s1(t)]');
title('等效基带信号的实部');

subplot(524)
plot(f2,abs(s2f));
xlabel('f');
ylabel('|S2(f)|');
title('等效基带信号的幅度谱');

% 画带通系统及其等效基带的图
subplot(525)
plot(f2,abs(h2f));
xlabel('f');
ylabel('|H(f)|');
title('带通系统的传输响应幅度谱');

subplot(527)
plot(t1,h1);
xlabel('t');
ylabel('h(t)');
title('带通系统的冲激响应');

subplot(526)
[f3,h1f] = T2F(t1,h1_lowpass);
plot(f3,abs(h1f));
xlabel('f');
ylabel('|H1(f)|');
title('带通系统的等效基带幅度谱');

subplot(528)
plot(t1,h1_lowpass);
xlabel('t');
ylabel('h1(t)');
title('带通系统的等效基带冲激响应');

% 画出带通信号经过带通系统的响应及等效基带信号经过等效基带系统的响应
yt = conv(s1,h1);
tt = 0:dt:(length(yt)-1)*dt; 
subplot(529)
plot(tt,yt);
xlabel('t');
ylabel('y(t)');
title('带通信号与带通系统响应的卷积');

yt1 = conv(s1_lowpass,h1_lowpass).*exp(j*2*pi*10*tt);
subplot(5,2,10)
plot(tt,real(yt1));
xlabel('t');
ylabel('y1(t)cos(20*pi*t)');
title('等效基带与等效基带系统响应的卷积×中心频率载波');

https://i-blog.csdnimg.cn/direct/bc61cac0854944a5b8d591df2e4d060a.png#pic_center

结果如图显示了一个带通信号经过带通系统的输出信号可以通过直接与带通系统进行卷积得到输出信号,也可以通过等效基带系统的方式得到最终的输出信号。图中可以看到采用等效基带的方式与直接带通信号的处理方式得到的结果是完全相同的。

4.3 结果分析

图2-6显示,直接对带通信号进行卷积处理与等效基带处理方法得到的输出完全一致,验证了等效基带模型的有效性。


5. 总结

希尔伯特变换及其等效基带表示是通信系统与信号处理的核心工具,通过简化带通信号分析,显著提升计算效率。结合Matlab实例,本文系统展示了理论与实践的紧密结合,为工程应用提供重要参考。