根据老师的安排,对于极化码的了解从仿真开始。编程
仿真的手段有不少种。能够利用C,C++,matlab等进行仿真的实现。其中matlab因为具备强大的函数库,和壮观的矩阵运算能力,被(咱们老师课题组)看中了。函数
理由是,matlab的语法很是简单,接近天然语言。优秀的绘图能力,让其余软件自愧不如。还有众多的工具箱,功能强大到使人发指。固然非要用C来仿真也是能够的。但试想一个简单的函数,matlab只须要调用一下就行了,C语言怕是要本身动手写两行,何须自找麻烦呢。工具
话很少说,等下,我再说最后一句,本人研究水平不高,在描述不少问题的时候不能从较高的高度去剖析,表述不免有些肤浅,海涵 TvT|l'。spa
好了,话很少说。blog
matlab仿真极化码,第一步是要肯定仿真的参数。都有哪些参数呢?io
码块:block;class
码长: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总的冻结位长度