任何信息,无论是模拟的还是数字的,都可以被转换为一串二进制数字。
为了传输或存储这些数字,它们通常被聚类或编码成一种更方便的表示形式,其元素是符号。为了有效地利用带宽,这些符号随后(再次!)被转换为称为脉冲形状的短模拟波形,这些脉冲形状组合在一起形成实际传输的信号。
接收器必须对上述过程的每一个操作进行逆操作。首先,它检查接收到的模拟波形并对符号进行解码。然后,它将符号转换回二进制数字,希望能从中重建原始信息。
符号到信号:采用hamming脉冲成形的pam信号
clear all
str='transmit';
m=letters2pam(str);
factor=10;
mup=zeros(1,length(m)*factor);
mup(1:factor:end)=m;
ps=hamming(factor);
x=filter(ps,1,mup);
subplot(3,1,1)
plot(ps)
subplot(3,1,2)
plot(mup)
subplot(3,1,3)
plot(x)
通过相关性寻找帧开始:
header=[1 -1 1 -1 -1 1 1 1];
l=30;r=25;
data=[sign(randn(1,l)) header sign(randn(1,r))];
data=data+0.0025*randn(size(data));
%
y=xcorr(header, data);%不可调换顺序
% 互相关测量向量 x 和移位(滞后)副本向量 y 的之间的相似性,形式为滞后的函数。如果 x 和 y 的长度不同,函数会在较短向量的末尾添加零,使其长度与另一个向量相同。
[m,index]=max(y);
headerstart=length(data)-index+1;
subplot(3,1,1),stem(header)
title("header")
subplot(3,1,2),plot(data)
title("data")
data(1:headerstart-1)=0;
data((headerstart+length(header)):end)=0;
subplot(3,1,3),plot(data)
title("data(only header)")
接收滤波器:从信号再到符号
clear all
str='transmit';
m=letters2pam(str);
factor=10;
mup=zeros(1,length(m)*factor);
mup(1:factor:end)=m;
ps=hamming(factor);
x=filter(ps,1,mup);
y=xcorr(x,ps);
z=y(length(m)*factor:factor:end);
z=3*z/max(z);
dz=discretize(z,[-3.5 -2 0 2 3.5],[-3 -1 1 3]);
mm=pam2letters(dz)
帧同步:在许多通信系统中,传输信号中的数据被分成称为帧的块。为了在接收端正确解码文本,有必要定位每个块的边界(开始)。这是在接收方的命令下完成的。由于这个起点通常不会事先知道,因此必须以某种方式确定它的位置。这是相关性和标记序列的理想工作。标记是一组预定义的符号,嵌入在每帧内的某个指定位置。接收器可以通过将标记与输入信号流交叉相关来定位标记。