资源简介
位同步信号提取的流程为:过零检测;微分;整流;带通滤波;整形,过零检测
基于以上步骤利用MATLAB的M文件函数编程
代码片段和文件信息
function BitSynch=BSextract(signal_demodfs)
%该函数输入宗量中,signal_demod是数字基带信号经过调制、传输、解调后的信号,为双极性,假设每个码元长度为1,fs为每个码元的抽样次数也即抽样频率%
%输出宗量为位同步脉冲信号%
%位同步信号提取的流程为:
%过零检测%
%微分%
%整流%
%带通滤波%
%整形,过零检测%
N = length(signal_demod)*fs; %采样点数
w = (0:(N-1))*fs*2*pi/N; %FFT结果中各点的频率
T = (0:(N-1))/fs;
%根据抽样次数,把原码元序列扩展
for i=1:length(signal_demod)
if signal_demod(i)==1
for j=1:fs
signal((i-1)*fs+j)=1;
end
elseif signal_demod(i)==-1
for j=1:fs
signal((i-1)*fs+j)=-1;
end
else
for j=1:fs
signal((i-1)*fs+j)=0;
end
end
end
%归零
signal_zcd = zcd(signal);
figure
subplot(411)
plot(Tsignal_zcd)
title(‘解调信号过零检测‘)
%微分
signal_diff = mydiff(signal_zcd);
subplot(412)
plot(Tsignal_diff)
title(‘微分‘)
%整流
signal_rectified = abs(signal_diff);
subplot(413)
plot(Tsignal_rectified)
title(‘整流‘)
%带通
%fft处理实际上是傅里叶变换的一种算法,他算出的结果是以频率作为横轴,Y轴是幅值情况,因此FFT算出的图像称为幅频特性图;Y轴数值取模方即得功率谱。
%fft滤波的是这样操作的,首先对原信号进行FFT变换,得到频域的幅值函数,然后再确定需要的频段,将函数中不需要的频率段幅值置零;然后进行逆傅里叶变换,即得到滤波后的图像。
signal_fft = fft(signal_rectified);
wl = 2*pi*0.8; wh = 2*pi*1.2; %设置上下限截止频率,提取位同步信号分量
signal_bf = band_filter(signal_fftwlwhw);
codeclock = ifft(signal_bf);
codeclock = real(codeclock);
subplot(414)
- 上一篇:基于MATLAB的图像分割含GUI界面
- 下一篇:B样条曲线逼近
评论
共有 条评论