IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> MATLAB生成M序列和Gold序列 -> 正文阅读

[数据结构与算法]MATLAB生成M序列和Gold序列

M序列

??最长线性移位寄存器序列又称为m序列,他是一种伪随机序列,在硬件电路中,m序列可以通过反馈移位寄存器产生,寄存器的反馈连接有生成m序列的本源多项式确定。
??m序列的 0 0 0映射成 ? 1 -1 ?1后,m序列的循环自相关函数(不归一化)在时间间隔为 0 0 0处取最大值,其他时间间隔的循环自相关函数都是 ? 1 -1 ?1。本源多项式 x 6 + x 4 + x 3 + x + 1 x^6+x^4+x^3+x+1 x6+x4+x3+x+1产生的m序列的循环自相关函数如下图所示。
在这里插入图片描述

MATLAB生成M序列和计算循环自相关函数

function p=PnCode(polynomial,reg)
%  PN码产生器函数
%  polynomial为本原多项式,从左到右依次为高位到低位,且最高位与最低位必须为1;低位表示延时一个周期,高位依次顺延,例如[1 0 0 1 0 1]
%  reg为置寄存器初始值,也相当于PN码的初始相位,左边为高位,如[1 0 0 1 0]表示延时5个周期的寄器和2个周期的寄存器初值为1
grade=length(polynomial)-1;%根据多项式计算延时级数
PN_Length=(2^grade-1);     %计算PN码一个周期的长度 
n=0;                         
c=zeros(1,grade);
for i=grade:-1:1
    if polynomial(i)==1
        n=n+1;
        c(n)=grade+1-i;
    end
end  
%产生一个周期的PN码  
p = zeros(1,PN_Length);
for i=1:PN_Length
    %从最高延时的寄存器中输出PN码
    p(i)=reg(1);
    %完成各抽头寄存器取值的模2加
    m = mod(reg*polynomial(1:grade)',2);
    %寄存器的值依次移位
    reg(1:(grade-1)) = reg(2:grade);
    reg(grade)=m;
end
function [r,lags] = periodic_corr(x,y)
% returns the periodic cross-correlation or autocorrelation of two discrete-time sequences.
% Rxy(m) = sum(i) x(i)Y((i+m) mod L)
% x input array
% y input array
% r periodic cross-correlation or autocorrelation
% lags Lag indices
if size(x,2) == 1 && ~isscalar(x)
    x = x';
end
if size(y,2) == 1 && ~isscalar(y)
    y = y';
end
if size(x,2)~=size(y,2)
    error(message('x y dimension mismatch'));
end
L = size(x,2);
r = zeros(1,2*L-1);
for m = 1:L
    if m == 1
        r(L) = x*y'/L;
    else
        r(L+m-1) = x*y'/L;
        r(m-1) = x*y'/L;
    end
    y = circshift(y,-1);
end
lags = -(L-1):L-1;
end

M序列优选对

??对于由两个 n n n阶本源多项式生成的m序列 a a a b b b,如果它们的互相关函数的绝对值的最大值满足公式 ( 1 ) (1) (1)所示的关系,则m序列 a a a b b b构成优选对。 ∣ R a , b ( τ ) ∣ m a x = { 2 n + 1 2 + 1 , n 为 奇 数 2 n + 2 2 + 1 , n 为 偶 数 且 不 是 4 的 倍 数 (1) \lvert R_{a,b}(\tau) \rvert_{max}=\begin{cases} 2^{\frac{n+1}{2}}+1,\quad n为奇数\\ 2^{\frac{n+2}{2}}+1, \quad n为偶数且不是4的倍数 \end{cases} \tag{1} Ra,b?(τ)max?={22n+1?+1,n22n+2?+1,n4?(1)
??m序列优选对具有三值互相关特性,即它们的循环互相关函数只能取三个值。 n n n为奇数时,互相关函数取 ? 1 -1 ?1 ? ( 2 n + 1 2 + 1 ) -(2^{\frac{n+1}{2}}+1) ?(22n+1?+1) 2 n + 1 2 ? 1 2^{\frac{n+1}{2}}-1 22n+1??1 n n n为偶数且不是4的倍数时,互相关函数取 ? 1 -1 ?1 ? ( 2 n + 2 2 + 1 ) -(2^{\frac{n+2}{2}}+1) ?(22n+2?+1) 2 n + 2 2 ? 1 2^{\frac{n+2}{2}}-1 22n+2??1
??下面给出几组m序列优选对的本源多项式。

阶数本源多项式 1本源多项式 2
3 x 3 + x + 1 x^3+x+1 x3+x+1 x 3 + x 2 + 1 x^3+x^2+1 x3+x2+1
5 x 5 + x 2 + 1 x^5+x^2+1 x5+x2+1 x 5 + x 4 + x 2 + x + 1 x^5+x^4+x^2+x+1 x5+x4+x2+x+1
6 x 6 + x + 1 x^6+x+1 x6+x+1 x 6 + x 5 + x 2 + x + 1 x^6+x^5+x^2+x+1 x6+x5+x2+x+1
6 x 6 + x 5 + 1 x^6+x^5+1 x6+x5+1 x 6 + x 5 + x 4 + x + 1 x^6+x^5+x^4+x+1 x6+x5+x4+x+1

??本原多项式 x 6 + x + 1 x^6+x+1 x6+x+1 x 6 + x 5 + x 2 + x + 1 x^6+x^5+x^2+x+1 x6+x5+x2+x+1产生的m序列的互相关函数(不归一化)如下图所示,它们的三个互相关值分别为 ? 1 -1 ?1 ? 17 -17 ?17 15 15 15
在这里插入图片描述

GOLD序列

??Gold序列是由2个码长相等、码时钟速率相同的m序列优选对模二加和构成的,每改变2个m序列相对位移就可以得到一个新的Gold序列。在这里插入图片描述
??对于 n n n阶本源多项式生成的m序列优选对,m序列的周期为 2 n ? 1 2^n-1 2n?1,m序列优选对可以有 2 n ? 1 2^n-1 2n?1种模2加组合,再加上原来的2个m序列,可以得到一族 2 n + 1 2^n+1 2n+1个Gold序列。Gold序列的自相关特性不如m序列,但是同一族的Gold序列的互相关特性继承了m序列优选对的互相关特性,即三值互相关特性。由本原多项式 x 6 + x + 1 x^6+x+1 x6+x+1 x 6 + x 5 + x 2 + x + 1 x^6+x^5+x^2+x+1 x6+x5+x2+x+1获得的m序列优选对生成65个Gold序列,随便抽两个Gold序列计算循环互相关函数,如下图所示。在这里插入图片描述

平衡GOLD序列

??如果Gold序列中 1 1 1的数量比 ? 1 -1 ?1的数量多一个,那么该Gold序列称为平衡Gold序列。扩频时采用平衡Gold序列有许多优点,比如平衡码能更好地抑制载波。当 n n n为奇数时,一族Gold序列中平衡序列和非平衡序列出现的概率各占50%;当 n n n为偶数且不为4的倍数时,一族Gold序列中平衡序列出现的概率为75%,非平衡序列为25%。

MATLAB生成Gold序列和寻找平衡序列

MATLAB中可以用comm.GoldSequence函数生成Gold序列,具体用法可以参考help文档。找平衡序列的方法是暴力枚举。

function [g,balanced] = GoldCode(polynomial1,polynomial2)
% Generate Gold sequence
% polynomial1、polynomial2 primitive polynomial, lists the coefficients of
%                          the polynomial in descending order of powers.  
%                          The first and last elements must equal 1, and
%                          the length of this vector requires a value of
%                          n+1, where n is the degree of the primitive polynomial.
%                          polynomial1 and polynomial2 generate a pair of m
%                          sequences which is a preferred pair 
% g Gold sequences
% balanced index of balanged Gold sequence in g

if length(polynomial1) ~= length(polynomial2)
     error(message('polynomial1 polynomial2 dimension mismatch'));
end
grade=length(polynomial1)-1;%根据多项式计算延时级数
gold_length=(2^grade-1);    %计算PN码一个周期的长度
g = zeros(gold_length+2,gold_length);
balanced = zeros(gold_length+2,1);
for n = -2:gold_length-1
    goldseq = comm.GoldSequence('FirstPolynomial',polynomial1,...
                                'SecondPolynomial',polynomial2,...
                                'FirstInitialConditions',[zeros(1,grade-1) 1],...
                                'SecondInitialConditions',[zeros(1,grade-1) 1],...
                                'Index',n,'SamplesPerFrame',gold_length);
    x = goldseq()';
% 	g(n+3,:) = 2*x-1;
    g(n+3,:) = x;
    if length(find(x == 1)) == (gold_length+1)/2
        balanced(n+3) = 1;
    end
end
balanced = find(balanced == 1);
end

参考:Gold序列与m序列仿真应用
辛肖明, 陈琼. m序列优选对及平衡Gold码序列[J]. 北京理工大学学报, 1990, 10(4):106-113.

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章           查看所有文章
加:2022-06-21 21:32:04  更:2022-06-21 21:32:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:31:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码