跳转至

Backscatter的起源

在上个世纪40年代,苏联开发出了一种窃听设备 the Great Seal bug(金唇)。该设备的构造十分简单,由一个接收特定频段的天线,和一个连接到天线的空腔构成。空中的声波会撞击这个空腔,并使其发生震动,而震动引起的形变会改变这个空腔的电容,从而改变入射电磁波的幅度、相位等特征(类似于调制技术)。在接收端,反射回来的电磁波便可以解调出空腔拾取的声音信号。

图. 窃听设备 the Great Seal bug

在1945年,苏联少年先锋队将一个精致的的木质美国国徽赠送给了美国驻苏联大使,而这个国徽正是一个上述的窃听设备。值得一提的是,由于这个设备无需供电,其在美国驻苏联大使馆的大使办公室中工作了七年才被发现并取下。 the Great Seal bug是无源的,且同样需要外部的激励信号,被认为是Backscatter技术的前身。

Backscatter基础原理

Backscatter通信又可以被称为反向散射通信。之前我们看到的通信方式大多可以被认为是主动式的通信方式,即发送方主动产生电磁波,并在基于这个电磁波进行调制传输信号。反向散射通信是采用的另外一种模式,发送方不需要主动产生信号,而是通过反射别的设备产生的电磁波来进行通信。

反向散射通常是通过如下的基本思想实现的,发送方控制其天线在完全吸收信号/完全反射两种状态中切换,相应,反射出来的信号就会具备不同的振幅,这个振幅就可以用来代表不同的信息。

为了更深入的理解反向散射标签如何在两种状态中切换,进而改变反射信号的振幅,我们在这一章对backscatter的基础原理进行介绍。

当电磁波在传播中遇到具有不同阻抗的两种介质的边界时,电磁波将会被一定程度的吸收或反射回去。所以,只需要在天线处进行阻抗的切换,就可以实现信息的传输。Backscatter技术可使射频设备的功耗若干个数量级,因此在物联网的各种应用中,Backscatter技术有很大的优势。

如果向一个Backscatter设备发送一个激励信号S_{in},则其反射出信号S_{out}可以由下式描述:

S_{out} = \frac{Z_{a}-Z_{c}}{Z_{a}+Z_{c}}S_{in}

其中,Z_{a}Z_{c}和分别表示天线的阻抗(一般为50\Omega)以及连接到天线的电路对应的阻抗。

下面以RFID系统为例介绍,RFID系统使用反射信号的振幅高低编码数据(在下节详细介绍)。我们将标签的Z_{c}值设置在0和Z_{a}之间切换,在电路实现中是切换图5中的S_{1}连接到的阻抗值。分别将Z_{a}=0Z_{a}=Z_{c}代入上面的公式,可以得到S_{out}=S_{in}(这里S_{in}为前文提到的CW)和S_{out}=0。RFID reader可以通过反射回信号的振幅就可以判定基带的高低电平。

图. RFID标签通过改变阻抗控制反射信号的振幅

基于频移的Backscatter

在RFID中,激励信号S_{in},与反射信号S_{out}处在同一频段,导致他们之间存在互干扰。为了减轻这种干扰,我们可以将S_{in}通过频移(Frequency Shifting)的手段使其远离S_{out}所处的频段。这样,在接收处便可通过一个滤波器排除来自不同频段的干扰。

接着我们以使用FSK(频移键控)的Backscatter为例向大家介绍Backscatter中常见的频移操作。如果将开关S_{1}在两个状态间切换的频率设置为f_{0},相当于将S_{in}乘上了\{0, 1, 0, 1, \ldots, 0, 1\}这样的序列,也就是频率为f_{0}的方波S_{square}(f_{0}t)。如果忽略掉方波的高次谐波,将方波近似为同频的余弦信号cos(f_{0}t)。可以得到:

\begin{equation} \begin{split} S_{out} &= S_{square}(f_{0}t) \cdot S_{in}\\ & \approx cos(f_{0}t) \cdot S_{in}\\ & = \frac{1}{2}(e^{j2 \pi f_{0}t}+e^{-j2 \pi f_{0}t})S_{in} \end{split} \end{equation}

该式的含义为,Backscatter反射出的信号S_{out}将激励信号S_{in}分别向上和向下频移f_{0}。如果Backscatter标签根据需要发送的内容,切换f_{0}的取值,接收端就可以对比激励信号与S_{out}的频率差,以得到Backscatter标签发送的FSK数据。

请读者在Matlab中运行下面的代码,理解对S_{in}的频移操作,以及接收机如何解出backscatter信号。

% 注:以下的代码假设直接在基带进行频移操作,实际的通信过程中发射机与接收机需要经过上变频和
% 下变频等操作,为了方便理解,在这里略去 

t = (1 : 1024)/128e3;
s_in = exp(1j*2*pi*100e3*t);
% 生成激励信号S_in,为一个单频信号

s_backscatter_bit0 = cos(2*pi*16e3*t);
s_backscatter_bit1 = cos(2*pi*32e3*t);
% tag以不同频率控制开关以发送"0"或"1"

s_out_bit0 = s_in .* s_backscatter_bit0;
s_out_bit1 = s_in .* s_backscatter_bit1;
% tag生成不同频率的信号与s_in相乘,得到s_out

figure;
hold on
plot(abs(fftshift(fft(s_out_bit0))));
plot(abs(fftshift(fft(s_in))));
hold off
figure;
hold on
plot(abs(fftshift(fft(s_out_bit1))));
plot(abs(fftshift(fft(s_in))));
hold off
% 画出发送"0"或者"1"(即频移不同频率)的频谱

思考:Backscatter除了利用不同的频移频率来编码数据,同样可以通过改变S_{square}的初相位,在频移的同时使用PSK的方式通信,这是如何实现的?