新浪博客

集中插入式帧同步法的MATLAB实现

2014-12-11 20:31阅读:
使用MATLAB实现基于7位巴克码的集中插入式帧同步算法:
由于可能出现信息序列与巴克码相同的情况,因此为了同步的准确性,系统在捕获到帧头后应该进入维持状态,即仍需逐帧比较下去,直到出现帧头的位置始终周期出现。

clear all;
clc;
len = 100; %每帧的数据长度
n = 3; %进行仿真的帧数
c = [1 1 1 -1 -1 1 -1]; %巴克码
for i = 1:n
s(
i,:) = randsrc(1,len); %产生每周期的信源数据
end
r = [c s(1,:) c s(2,:) c s(3,:)]; %将巴克码插入信源数据中
thr = 6; %判决门限,这个数值可在实际系统中进行调整
out=zeros(1,length(r));
num=[]; %储存可能的帧头
for i=7:n*len+n*7
out(i)=sum(r(i-6:i).*c); %每7个数据进行一次相关求和
if(out(i)>thr) %判断相关求和值是否大于门限
num=[num i]; %将大于门限的位置进行储存
end
end

运行上述程序,可以得到可能的帧头为 num = [7 114 150 221],即帧头可能在发送数据的第7位、第114位、第150位、第221位。每次运行程序的结果可能不同,经过多次仿真,可确定帧头在7、114、221位置。

我的更多文章

下载客户端阅读体验更佳

APP专享