Chapter3 MATLAB仿真——系统参数


希望在旧版博客访问该文章?请戳:极化码的matlab仿真(1)——参数设置


  仿真的手段有很多种。可以利用C,C++,matlab甚至python等进行仿真的实现。其中matlab由于具有强大的函数库和可观的矩阵运算能力而特别适合于工程领域的仿真。matlab的语法非常简单,接近自然语言。其优秀的绘图能力,众多的集成工具箱极大的方便了使用者。当然用C来仿真也是可以的,C语言编写的程序仿真速度非常快,但是编写起来很不友好。试想一个简单的函数,matlab只需要调用一下就好了,C语言基本上都要自己动手写。
  话不多说,本节我们主要介绍matlab仿真极化码的第一步——设置仿真参数。

  码块:block;block,码块码组,“一次信息发送动作所传递的信息位数”,一个码块代表着一个具有完整意义的信息集,因此码块不可分割发送。
  码长:N;N,码长,“一个信息单元所占据的比特位数”,码长是码组的次级单元。
  码率:R;R,码率,就是有用信息占所传输信息的比例。在信息传输之中,为了能够提高传输准确性,常常在信息位中插入不具有信息量的冗余位用于检错和纠错,从通信的意义上来说是牺牲速率换取可靠性。一般来说R越小,准确性越高,但是对应传输效率就越低。
  信噪比:SNR(dB)、snr;SNR,signal noise ratio,信噪比即信号与噪声的功率之比。极化码是一种与信道有关的编码方式,对于不同的SNR极化码的编码所用的信息位不同。一般常用dB单位来表示信噪比,换算关系如下:$SNR(dB)=10*log10(snr)$。
  对于极化码,上面这几个参数是最基本的系统参数,当我们向别人展示仿真结果的时候,这些参数都是需要提供和说明的。

参数设置
1
2
3
4
5
6
7
8
9
10
11
12
13
block = 100;            % simulation block numbers
SNR = 0:1:4; % SNR values
snr=10 .^ (SNR ./ 10); % transform the SNR vector into dB forms
n = 3; % code level
R = 0.5; % code rate
N = 2 ^ n; % code length
S = floor(N*R); % numbers of information bits
F = N-K; % numbers of frozen bits
Total_S = block*K; % total source bit length
Total_F = block*NF; % total frozen bit length
SF= block*N; % total bit length
BER = zeros(1,length(SNR)); % bit error rate of each SNR
BLER = zeros(1,length(SNR)); % block error rate of each SNR

以上就是系统参数设置,下一节我们将介绍极化码的编码部分。


转载请注明来源:©Tinshine