美文网首页嵌牛IT观察
利用zc序列进行简单的帧同步

利用zc序列进行简单的帧同步

作者: 山青影湛 | 来源:发表于2019-12-13 20:25 被阅读0次

    嵌牛导读:帧同步有起止式同步法和插入特殊同步码组法两种。,为了能正确分离各路时隙信号,在发送端必须提供每帧的起始标记,在接收端检测并获取这一标志的过程称为帧同步

    嵌牛鼻子:帧同步 zc序列

    嵌牛提问:怎么减少信噪比较低时帧同步的地板效应?

    嵌牛正文:

    zc序列的产生

    产生zc序列,根据论文公式得出,K值可以用来评价ZC序列的好坏。1位最好,其次为signal_length-1.

    function [cazac_sequence] = CreatCazac(signal_length, K)

    if nargin == 1

        K = signal_length-1;

    end

    n = 1:signal_length;

    p = 0;

    if mod(signal_length, 2)==0

        cazac_sequence=exp(1j*2*pi*K/signal_length*(n.*n/2+p*n));

    else

        cazac_sequence=exp(1j*2*pi*K/signal_length*(n.*(n+1)/2+p*n));

    end

    end

    ————————————————

    同步算法

    这里的同步主要指帧同步,就是利用已知的zc序列和接收信号进行同步,来查找同步头。

    zc = CreatCazac(27, 1);

    pre = randn(1, 13);

    rx = [pre zc ones(1, 10)]; % 创造接收数据,分别在头尾加了一些数字

    res = xcorr(rx, zc);

    res(1:length(rx)-1)=[]; % matlabxcorr互相关函数会产生一些冗余。这个多余的长度恰好是max(rx, zc) - 1。在这之后的值才是真正的互相关,理解这里很重要

    [~,index] = max(abs(res)) %则index的位置就是同步头开始的位置。

    plot(abs(res));

    上面只是简单的举了个例子。还有一些问题需要解决。

    相关文章

      网友评论

        本文标题:利用zc序列进行简单的帧同步

        本文链接:https://www.haomeiwen.com/subject/fhdqnctx.html