利用zc序列進行簡單的幀同步

嵌牛導讀:幀同步有起止式同步法和插入特殊同步碼組法兩種。,為了能正確分離各路時隙信號,在發(fā)送端必須提供每幀的起始標記,在接收端檢測并獲取這一標志的過程稱為幀同步

嵌牛鼻子:幀同步 zc序列

嵌牛提問:怎么減少信噪比較低時幀同步的地板效應(yīng)?

嵌牛正文:

zc序列的產(chǎn)生

產(chǎn)生zc序列,根據(jù)論文公式得出,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)]; % 創(chuàng)造接收數(shù)據(jù),分別在頭尾加了一些數(shù)字

res = xcorr(rx, zc);

res(1:length(rx)-1)=[]; % matlabxcorr互相關(guān)函數(shù)會產(chǎn)生一些冗余。這個多余的長度恰好是max(rx, zc) - 1。在這之后的值才是真正的互相關(guān),理解這里很重要

[~,index] = max(abs(res)) %則index的位置就是同步頭開始的位置。

plot(abs(res));

上面只是簡單的舉了個例子。還有一些問題需要解決。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容