首页 > 代码库 > 极化码的matlab仿真(1)——参数设置

极化码的matlab仿真(1)——参数设置

根据老师的安排,对于极化码的了解从仿真开始。

仿真的手段有很多种。可以利用C,C++,matlab等进行仿真的实现。其中matlab由于具有强大的函数库,和壮观的矩阵运算能力,被(我们老师课题组)看中了。

理由是,matlab的语法非常简单,接近自然语言。优秀的绘图能力,让其他软件自愧不如。还有众多的工具箱,功能强大到令人发指。当然非要用C来仿真也是可以的。但试想一个简单的函数,matlab只需要调用一下就好了,C语言怕是要自己动手写两行,何必自找麻烦呢。

话不多说,等下,我再说最后一句,本人研究水平不高,在描述很多问题的时候不能从较高的高度去剖析,表述难免有些肤浅,海涵 TvT|l‘。

好了,话不多说。

matlab仿真极化码,第一步是要确定仿真的参数。都有哪些参数呢?

码块:block;

码长:N;

码率:R;

信噪比:SNR(dB)、snr;

大概就是这些了,解释一下。

block,码块,我的理解是“一次信息发送动作所传递的信息位数”,可能一个码块代表着一个具有完整意义的信息,因此码块不可分割发送。例如,一个码块相当于一篇文章。

N,码长,我的理解是“一个信息单元所占据的比特位数”,例如,如果码块是文章,码长就是文章中的一个个文字。

R,码率,就是有用信息占所传输信息的比例。在信息传输之中,为了能够提高传输准确性,常常在信息位中插入不具有信息量的信息。一般来说R越小,准确性越高,但是对应传输效率就越低。鱼与熊掌不可兼得的道理。想要靠谱就得牺牲速度;想要提高速度,就要忍受不靠谱。

SNR,signal noise ratio,信噪比,换算关系如下:SNR(dB)=10*log10(snr)。为什么要进行这样的换算?跟使用对数坐标轴一个道理,方便,简单,绘图的时候好看。

为了因为我只会仿真低阶方便仿真,在这里我们进行如下参数规定:

%% 预定义
clear;
clc;        %预处理
block=10;   %码块
N=2^3;    %码长
R=1/2;    %码率
SNR=1:5;   %信噪比dB
snr=10.^(SNR./10); %信噪比 

 预定义到这里还没有完。接下来为了方便编程,继续定义将用到的其他变量。

S=floor(N*R);       % 信息位所占码长,使用floor意在当N为奇数时冻结位占据数量优势
F=N-S;              % 冻结位所占码长
ST=S*block;         % signal_total总的信息位长度
FT=F*block;         % frozen_total总的冻结位长度

极化码的matlab仿真(1)——参数设置