1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJ6Vl5Zy
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
基带信号的软同步接收系统是通信系统中非常重要的一部分。在多种通信系统中,如无线通信、光纤通信等,接收到的信号一般都是基带信号。为了有效地处理这些信号,需要对其进行同步接收。这里的“同步”指的是将接收到的信号与发送端的信号在时间上对齐。在多种基带信号同步接收技术中,以下五种方法较为常见:统计同步、BTDT、CZT、ZOOM-FFT以及频谱细化法。
4.部分源码
..........................................................................
b = hanning(127);
msg = filter(b,1,msg2);
msg = msg/max(msg);
msg(1:1024) = [];
%调制
ff = cos(2*pi*freqcarrier.*[0:length(msg)-1]/freqSample);
signalSample = msg.*ff;
t = length(signalSample);
[f,sf] = T2Fv2(t,signalSample);
figure;
subplot(311);
plot(msg);
title('测试随机数');
axis([1,length(msg),-1.5,1.5]);
subplot(312);
plot(f,abs(sf));
xlabel('频率 Mhz');
subplot(313);
plot(sf);
xlabel('归一化频率 点数');
%==========================计算Fcourse========================
sf1(1) = 0;
index = find(sf== max(sf));
I = 3;
Fcourse = index;
tic;
%==========================利用BTDT计算Fpresize================
Fth = Fcourse;
N = length(msg);
for k = 1:I
Ntemp = N*(Fcourse-0.5)/Fth;
numTemp = round(Ntemp);
[ftemp,sftemp]=T2Fv2(t,signalSample(1:numTemp));
sftemp(1) = 0;
indexTemp = find(sftemp== max(sftemp));
if sftemp(indexTemp)>sftemp(indexTemp-1)
Fth = Fth+(0.5)^(k+1);
else
Fth = Fth-(0.5)^(k+1);
end
end
format long;
Fpresize = Fth;
fprintf('%6.5f\n',Fpresize);
clc;
t=toc;
figure;
%恢复眼图
delta = (Fcourse)/length(msg);
Xpoint = mod((1:length(msg))*delta,64);
Ypoint = msg;
subplot(211)
tip = ceil((1:length(msg))*delta);
for k = 1:max(tip)
indexSS = find(tip==k);
plot(Xpoint(indexSS),Ypoint(indexSS));
hold on;
end
axis([2.3,18.4,-0.96,0.96]);
title('标准眼图');
grid on;
%恢复眼图
delta = Fpresize/length(msg);
Xpoint = mod((1:length(msg))*delta,64);
Ypoint = msg;
subplot(212)
tip = ceil((1:length(msg))*delta);
for k = 1:max(tip)
indexSS = find(tip==k);
plot(Xpoint(indexSS),Ypoint(indexSS));
hold on;
end
axis([2.3,18.4,-0.96,0.96]);
title('同步之后眼图');
grid on;
p=100*abs(Fpresize-Fcourse)/Fcourse;
fprintf('估计精度:');
fprintf('%2.4f',p);
fprintf('%%\n');
fprintf('仿真时间:');
fprintf('%2.4f',t);
fprintf('s\n');
save r2.mat t p
0X_028m
---