基于二进制信源N次扩展熵率的MATLAB仿真
摘要:本文通过MATLAB分析一个二进制的二符号信源,分别采用了滑窗法、卷积法、变换形法求出了该信源的N次(其中N最大为8)扩展信源的熵率,得出了熵率随着N的增加而逐渐减小的结论。此外,本文还简单比较了三种算法的计算效率与优缺点。
关键词:MATLAB 二进制信源熵率
一、问题的重述和分析
给定一个二进制信源,共包含n个样本,发出0、1的概率分别为p、1-p。对给定的二进制信源做N次扩展后,分析扩展后符号的概率统计特性,计算其熵率H N(X N)并分析H(X N)与N的关系。
本文中,令N=840,p=0.6,N最大取值为8。下面,通过三种办法计算该二进制信源N次扩展的熵率。
(一)滑窗法
该算法的基本思想是设定一个宽度为N的窗口,由符号序列的第1个符号滑动到倒数第N个符号,通过进制转换记录这几组数据中每个窗口消息组成的序列出现的频度,近似N次扩展信源每个消息发出的概率,最终求得其熵率H N(X N)并绘出H N(X N)-N 图(注:计算熵率时可以过滤掉概率为零的分量,因为x→0时,x*lbx→0)。MATLAB算法代码:
clc
sample=840;%给定独立二进制信源[0,1]的样本数
step=8; %设定最大扩展阶数
probability_0=0.6;%设定符号0的概率
H=zeros(1,step);%建立熵率向量
x=randsrc(1,sample,[0,1;0.6,0.4]);
for N=1:step