• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: Matlab
  • 标签:

资源简介

位同步信号提取的流程为:过零检测;微分;整流;带通滤波;整形,过零检测 基于以上步骤利用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)

评论

共有 条评论

相关资源