假定BPSK信号传输不存在时延,其数据帧结构为一段伪随机序列+有用信息构成,伪随机序列46bit,有用信息100bit,8倍过采样,根升余弦成型,滚降系数0.35,采样率512Hz,载波频率80Hz,频偏104Hz。如何通过相关运算,逐渐逼近信号真实频率?
%%设置频率步进,尝试估计信号频率,模拟相干解调过程
clear;
clc;
UW1 = [0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0];
%% 组帧
msg=randi([0,1],1,100);
UW1_bpsk=(1-2*UW1)*exp(1i*pi/4);
msg_bpsk=(1-2*msg)*exp(1i*pi/4);
frame=[UW1_bpsk msg_bpsk];
% %% 滚降成型,假设8倍过采样
roll=0.35;
span=20;
sps=8;
%---------------滚降成型滤波-------------------
%%%%%%%%%%% 符号首先进行多倍插值,然后再进滤波器 %%%%%%%%%%
ins_value = 8;
for i=1:(length(frame))*ins_value
if rem(i,ins_value) ==1
bit_flowzero(i) =frame(fix((i-1)/ins_value)+1);
else
bit_flowzero(i) =0;
end
end
psf=rcosdesign(roll,span,sps,"sqrt");
frame_mod=conv(bit_flowzero,psf);
%
%
% %%去除滤波器延迟
signal=frame_mod((length(psf)-1)/2+1:length(frame_mod));
f_offset=104;%%频偏
fs=512;%%采样率
fc=80;%%载频
phi=pi/3;%%载波初相
sig_tx=signal.*exp(1i*2*pi*(fc+f_offset)/fs*(0:length(signal)-1)+1i*phi);
%%接收端频率相关分析
ini_freq=10;
%%下变频
sigrx=sigtx.*exp(-1i*2*pi*fc/fs*(0:length(signal)-1));