OFDM学习之旅

Posted 巴士上的乘客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OFDM学习之旅相关的知识,希望对你有一定的参考价值。

前言:

  这些日子开始准备搞OFDM之类的,未动先行matlab仿真,这里我会慢慢更新,基本上是自己学习感悟吧<未完待续>

一、PRBS 

  PRBS 是 Pseudo Random Binary Sequence 的缩写,即“伪随机二进制序列”的意思。 PRBS 码具有“随机”特性,是因为在 PRBS 码流中,二进制数“ 0 ” 和“ 1 ” 是随机出现的,但是它又和真正意义上的随机码不同,这种“随机”特性只是局部的,即在周期内部,“0”和“1”是随机出现的(码流生成函数与初始码确定后,码流的顺序也是固定的),但各个周期中的码流却是完全相同的,所以我们称其为“”伪随机码。
  PRBS 码的周期长度与其阶数有关,常用的阶数有 7 、 9 、 11 、 15 、 20 、 23 、 31 ,也就是我们常说的 PRBS7 、 PRBS9 、 PRBS11 、 PRBS15 、 PRBS20 、 PRBS23 、 PRBS31 。
常用阶数码流参数统计表:
PRBS n 初始值 本原多项式
PRBS 7 0 0 0 0 0 0 1 X7+X6+1
PRBS 9 0 0 0 0 0 0 0 0 1 X9+X5+1
PRBS 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 X15+X14+1
PRBS 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 X16+X14+X13+X11+1
PRBS 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 X20+X17+1
PRBS 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 X21+X19+1
PRBS 23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 X23+X18+1
 
  在对高速信号链路进行误码测试时,基本上都是利用 PRBS 码流来模拟真实的线网码流环境,因为在线网中,所有的数据都是随机出现的,没有任何规律可言,而 PRBS 码流在一定程度上具有这种“随机数据”特性,二进制“ 0 ”和“ 1 ”随机出现,其频谱特征与白噪声非常接近。 PRBS 码流的阶数越高,其包含的码型就越丰富,就越接近真实的线网环境,测试的结果就越准确。
  一个 PRBS 序列可以串 / 并转换成多路( 2 、 4 、 8 、 16 …路),每路输出的速率降低,但仍然保持原序列的一切特征;反之,同一时钟源低速率多路( 2 、 4 、 8 、 16 …路)同一 n 数的 PRBS 可以经并 / 串转换成高速率的 n 阶 PRBS 。
  PRBS 码型发生器由移位寄存器和异或门 (XOR) 组成,这里举个例子:

 

代码见下:

% PRBS 生成输入信号
% f(x)=1+x^6+x^7;
%%
PRBS7_initial = [1 1 1 1 1 1 1];

PRBS7_data = PRBS7_initial;

%生成1行 Totbits列的数据
PRBS7_out   = zeros(1,Totbits);

PRBS_reg    = zeros(1,2);%存放异或值

for data_bit =1:Totbits
    
    PRBS7_out(data_bit)  = PRBS7_data(7); %将第7位赋值给PRBS7_out 所有的数据
    
    %%  利用生成式将6、7位的数据异或后循环右移
    PRBS_reg             = PRBS7_data(6:7);%第6,7位赋值
    PRBS7_data(2:7)       = PRBS7_data(1:6);%1-6位的数据往后移一个
    PRBS7_data(1)         = xor(PRBS_reg(1),PRBS_reg(2));%将6\\7位的异或赋值到第一位的
    
end
   PRBS7_data;%即为生成的PRBS7的随机序列
PRBS7

 

以上是关于OFDM学习之旅的主要内容,如果未能解决你的问题,请参考以下文章

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段

我的OpenGL学习进阶之旅NDK开发中find_library查找的系统动态库在哪里?

我的OpenGL学习进阶之旅NDK开发中find_library查找的系统动态库在哪里?

Unity Shader入门精要学习笔记 - 第5章 开始 Unity Shader 学习之旅

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情