正式实验报告二—信道容量的计算
实验二 计算信道容量

PXi[i] = ((PXi[i] * a[i]) / sum);
}
n ++;
}
}while(cap_max-cap_result>= e);
printf("\n\n迭代次数为:%d\n" ,n);
for(i=0;i<X_num;i++)
{
printf("最佳信源概率:%f\n" ,PXi[i]);
}
/**************************************************************************
函数名:double Calculate_cap_result(double PXi[],double a[])
功能:计算并输出迭代法所需的参数cap_result
double Calculate_cap_max(double a[])
{
int i;
double max_a = a[0];
for(i=0;i<X_num;i++)
{
if(a[i] > max_a)
{
max_a = a[i];
}
}
printf("较大值=%f",log(max_a));
return log(max_a);
for(i=0;i<X_num;i++)
{
for(j=0;j<Y_num;j++)
{
printf("P[%d][%d]=",i,j);
scanf("%lf",&P[i][j]);
信道容量(Channel Capacity)

信道容量(Channel Capacity)无线传输环境中,如果发端和收端均采用单天线发送和接收信号,接收信号y的数学模型可以表示为y=hx+n \tag{1} ,其中h为无线信道, x为发送信号,n为高斯加性白噪声服从正太分布 \mathcal{C}(0,\sigma^2) 。
通信相关专业的学生应该知道香农公式:公式(1)表示的无线信道容量(Channel Capacity)为C=B\log_2\left(1+\frac{P_t|h|^2}{\sigma^2} \right),\tag{2}其中B为信号带宽, P_t 为信号发射功率。
相信很多人知道结论(2),但是不明白它是怎么得到的。
下面将简单的阐述其推导过程。
阅读该过程之前,建议阅读“ 徐光宁:信息论(1)——熵、互信息、相对熵”中关于熵和互信息的定义。
对于接收端,发送信息x是一个随机变量,例如以概率p(x=a)发送x=a。
如果发送信息x对于接收端为一个确定值,那发送本身就没有任何意义。
因为发送信号x和噪声n 都是随机变量,接收信号y也是随机的。
可以引入熵来描述随机变量y所含的信息量,即H(y)=\int_y p(y)\log \frac{1}{p(y)}dy,\\其中p(y)为y的概率密度函数。
当某一时刻发送某一x后(x 此时是确定的), 收到的y的信息量为H(y|x)=\int_y p(y|x)\log \frac{1}{p(y|x)}dy,\\其中p(y|x)为y在给定x下的条件概率。
注意y因为是随机变量x和n的和,且x和n相互独立,其信息量为传输信号x和噪声n的信息量之和。
而y|x的随机性仅仅与噪声n有关,其信息量为噪声n的信息量。
互信息定义为I(x,y)=H(y)-H(y|x)\\ 。
其物理意义为随机变量y的信息量减去噪声n的信息量,等于x的信息量。
信道容量C指信道所实际传输信息量的最大值C=\max\limits_{p(x)} I(x,y) \tag{3}数学证明当x服从高斯分布 \mathcal{C}(0,P_t) 时,C in (3)取得最大值。
离散信源熵信道容量实验报告

离散信源熵信道容量实验报告实验目的:通过模拟离散信源熵和信道容量的实验,掌握熵和信道容量的概念及计算方法。
实验原理:离散信源:离散信源是指其输出符号集合为有限的离散符号集合,通常用概率分布来描述其输出符号的概率分布,称为离散概率分布。
离散信源的熵是度量这一离散概率分布的不确定度的量度,其单位是比特。
离散信源的熵公式为:H(S)=-Σpi×log2pi其中,H(S)为离散信源的熵,pi为消息符号i出现的概率,log2为以2为底的对数。
信道容量:信道容量是指在某一固定的信噪比下,能够传送的最大信息速率。
信道容量的大小决定了数字通信系统的最高可靠传输速率。
离散无记忆信道的信道容量公式为:C=max{I(X;Y)}其中,X为输入符号,Y为输出符号,I为信息熵。
实验步骤:1. 生成随机概率分布对于3种不同的符号数量,生成随机的符号及其概率分布。
在生成时,要求概率之和为1。
2. 计算离散信源的熵根据所生成的随机概率分布计算离散信源的熵。
3. 构建离散无记忆信道构建一个离散的2进制对称信道,并存储在一个概率矩阵中,利用生成的概率分布对该矩阵进行初始化。
4. 计算信道容量根据所构建的离散无记忆信道计算其信道容量。
实验结果分析:以下是实验结果分析,其中H(S)表示离散信源的熵,C表示离散无记忆信道的信道容量。
符号数量为3时:符号概率a 0.2b 0.3c 0.5H(S) = 1.485构建的离散无记忆信道的概率矩阵为:| 0 | 1 |--------------------------a | 0.20 | 0.80 |--------------------------b | 0.60 | 0.40 |--------------------------c | 0.80 | 0.20 |--------------------------C = 0.823从实验结果可以看出,当符号数量增加时,熵的值也会随之增加,这是由于符号集合增加,随机性增强所导致的。
信道容量的计算方法

信道容量的计算方法信道容量的计算方法:1、对于离散无记忆信道,香农公式是计算信道容量的重要方法。
香农公式为C = W log₂(1 + S/N),其中C表示信道容量,W表示信道带宽,S表示信号功率,N表示噪声功率。
2、在计算信道容量时,先确定信道带宽W的值。
例如,在一个无线通信系统中,经过测量或者根据通信标准规定,信道带宽可能是20MHz。
3、接着确定信号功率S。
信号功率可以通过功率测量仪器得到,比如在一个发射机输出端测量到的功率为10W。
4、然后确定噪声功率N。
噪声功率的确定需要考虑多种因素,如热噪声、干扰噪声等。
热噪声功率可以根据公式N₀= kT₀B计算,其中k是玻尔兹曼常数,T₀是绝对温度,B是等效噪声带宽。
在常温下,假设T₀= 290K,若等效噪声带宽与信道带宽相同为20MHz,可算出热噪声功率,再加上其他干扰噪声功率得到总的噪声功率N。
5、将确定好的W、S、N的值代入香农公式计算信道容量C。
6、对于离散有记忆信道,计算信道容量会更复杂。
需要考虑信道的记忆特性,通常采用马尔可夫链来描述信道状态的转移概率。
7、构建马尔可夫链的状态转移矩阵,矩阵中的元素表示从一个状态转移到另一个状态的概率。
8、通过求解马尔可夫链的稳态分布,结合输入符号的概率分布,利用信息论中的互信息公式来计算信道容量。
9、在多输入多输出(MIMO) 系统中,信道容量的计算又有不同。
需要考虑多个发射天线和多个接收天线之间的信道矩阵H。
10、利用矩阵H的特征值等信息,根据MIMO信道容量公式C = log₂det(I + ρHH*)计算信道容量,其中ρ是信噪比,I是单位矩阵,H*是H的共轭转置矩阵。
信道容量的计算方法研究

信道容量的计算方法研究
信道容量是指在某个给定的带宽和信噪比条件下,传输信息的最大速率。
信道容量通常用单位时间内传输的比特数(比特每秒)来表示。
计算信道容量的公式为:
C = B × log2(1 + S/N)
其中,C表示信道容量,B表示信道带宽,S表示信号功率,N 表示噪声功率。
此公式在120年前由德国数学家Hartley提出,称为哈特利公式。
它用于描述在理想信道条件下的信息传输限制。
该公式表示,在频带B内、噪声功率为N的情况下,传输速率C理论上最高为
C=B*log2(1+S/N)。
这个公式是通过链路的信道特性分析来得出的,实际链路中应用时需要估计 S/N 的值。
重点是最大值的计算,信道容量很大程度上反映了信道的质量,在无线通信系统中,信道容量的提高是很重要的一个方面,因为它能够提高系统的使用效率和可靠性,从而增加系统的吞吐量和容量。
此外,还可以通过其他信源不同于离散和连续的信源,或者利用其他编码方法和调制技术等等方法,提高信道容量。
实验二---一般信道容量迭代算法.doc

实验二---一般信道容量迭代算法.doc实验二一般信道容量迭代算法1.实验目的掌握一般离散信道的迭代运算方法。
2.实验要求1)理解和掌握信道容量的概念和物理意义2)理解一般离散信道容量的迭代算法3)采用Matlab 编程实现迭代算法4)认真填写试验报告3.算法步骤①初始化信源分布),,,,,(21)0(p p p p P ri =(一般初始化为均匀分布) ,置迭代计数器k=0 ,设信道容量相对误差门限为δ ,δ>0 ,可设-∞=C )0(;②∑=i k i ij k i ij k ji p p p p )()()(? s j r i ,??=??=,1;,,1 ③∑∑∑??=+i k ji j ij k ji j ij k i p p p ??)()()1(ln exp ln exp r i ,,1??= ④??=∑∑+ik ji j ij k p C ?)()1(ln exp ln ⑤如果δ≤-++C C Ck k k )1()()1( ,转向⑦;⑥置迭代序号k k →+1,转向②;⑦输出p k i )1(+和C k )(1+的结果;⑧停止。
4.代码P=input('转移概率矩阵P=')e=input('迭代精度e=')[r,s]=size(P);n=0;C=0;C_k=0;C_k1=0;X=ones(1,r)/r;A=zeros(1,r);B=zeros(r,s);%初始化各变量while(1)n=n+1;for i=1:rfor j=1:sB(i,j)=log(P(i,j)/(X*P(:,j))+eps); if P(i,j)==0B(i,j)=0;elseendendA(1,i)=exp(P(i,:)*B(i,:)');endC_k=log2(X*A');C_k1=log2(max(A));if (abs(C_0-C_1)。
信道容量实验报告

湖南大学信息科学与工程学院实验报告实验名称信道容量的迭代算法课程名称信息论与编码第1页共9页1.实验目的(1)进一步熟悉信道容量的迭代算法; (2)学习如何将复杂的公式转化为程序;(3)掌握C 语言数值计算程序的设计和调试技术。
2、实验方法硬件:pc 机开发平台:visual c++软件 编程语言:c 语言3、实验要求(1)已知:信源符号个数r 、信宿符号个数s 、信道转移概率矩阵P 。
(2)输入:任意的一个信道转移概率矩阵。
信源符号个数、信宿符号个数和每个具体的转移概率在运行时从键盘输入。
(3)输出:最佳信源分布P*,信道容量C 。
4.算法分析1:procedure CHANNEL CAPACITY(r,s,(jip ))2:initialize:信源分布ip =1/r ,相对误差门限σ,C=—∞3:repeat 4:5:6:C2211log [exp(log )]rsji ij r j p φ==∑∑7:until C Cσ∆≤8:output P*=()i rp ,C9:end procedure21211exp(log )exp(log )sji ij j r sjiij r j p pφφ===∑∑∑ip 1i jiri jii p p p p=∑ijφ5.程序调试1、头文件引入出错f:\visualc++\channel\cpp1.cpp(4) : fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory————#include<unistd.h>纠错://#include<unistd.h>f:\visualc++\channel\cpp1.cpp(5) : fatal error C1083: Cannot open include file: 'values.h': No such file or directory————#include<values.h>纠错://#include<values.h>2、变量赋值错误f:\visualc++\channel\cpp1.cpp(17) : error C2065: 'ij' : undeclared identifierf:\visualc++\channel\cpp1.cpp(17) : error C2440: 'initializing' : cannot convert from 'int' to 'float ** ' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast————float **phi_ij=ij=NULL;纠错:float **phi_ij=NULL;3、常量定义错误f:\visualc++\channel\cpp1.cpp(40) : error C2143: syntax error : missing ';' before 'for' ————for(i=0;i<r;i++)phi_ij[i]=(float *)calloc(s,sizeof(float));f:\visualc++\channel\cpp1.cpp(52) : error C2021: expected exponent value, not ' '————if(fabs(validate -1.0)>DELTA)f:\visualc++\channel\Cpp1.cpp(84) : error C2021: expected exponent value, not ' '————if(fabs(p_j)>=DELTA)f:\visualc++\channel\Cpp1.cpp(100) : error C2021: expected exponent value, not ' '————if(fabs(phi_ij[i][j])>=DELTA)f:\visualc++\channel\Cpp1.cpp(116) : error C2021: expected exponent value, not ' ' ————while(fabs(C-C_pre)/C>DELTA);纠错:#define DELTA 0.000001;F:\visualc++\channel\Cpp1.cpp(68) : error C2065: 'MAXFLOAT' : undeclared identifierF:\visualc++\channel\Cpp1.cpp(68) : warning C4244: '=' : conversion from 'int' to 'float', possible loss of data————C=-MAXFLOAT;纠错:#define MAXFLOAT 1000000;3、引用中文逗号f:\visualc++\channel\cpp1.cpp(60) : error C2018: unknown character '0xa1'f:\visualc++\channel\cpp1.cpp(60) : error C2018: unknown character '0xb1'f:\visualc++\channel\cpp1.cpp(60) : error C2065: 'Starting' : undeclared identifierf:\visualc++\channel\cpp1.cpp(60) : error C2059: syntax error : '.'f:\visualc++\channel\cpp1.cpp(60) : error C2017: illegal escape sequencef:\visualc++\channel\cpp1.cpp(60) : error C2018: unknown character '0xa1'f:\visualc++\channel\cpp1.cpp(60) : error C2018: unknown character '0xb1'————fprintf(stdout,”Starting..\n”);纠错:fprintf(stdout,"Starting..\n");4、没有进行强制转换F:\visualc++\channel\Cpp1.cpp(65) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data————p_i[i]=1.0/(float)r;纠错:p_i[i]=(float)(1.0/(float)r);F:\visualc++\channel\Cpp1.cpp(101) : warning C4244: '+=' : conversion from 'double' to 'float', possible loss of data————sum[i]+=p_ji[i][j]*log( phi_ij[i][j])/ log(2.0);纠错:sum[i]+=(float)(p_ji[i][j]*log( phi_ij[i][j])/ log(2.0));F:\visualc++\channel\Cpp1.cpp(103) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data————sum[i]=pow(2.0,sum[i]);纠错:sum[i]=(float)(pow(2.0,sum[i]));F:\visualc++\channel\Cpp1.cpp(114) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data————C= log(p_j)/ log(2.0);纠错:C= (float)(log(p_j)/ log(2.0));4、表达式错误F:\visualc++\channel\Cpp1.cpp(86) : error C2065: 'phi_ji' : undeclared identifierF:\visualc++\channel\Cpp1.cpp(86) : error C2109: subscript requires array or pointer typeF:\visualc++\channel\Cpp1.cpp(86) : error C2109: subscript requires array or pointer type ————phi_ij[i][j]=p_i[i]* phi_ji[i][j]/p_j;纠错:phi_ij[i][j]=p_i[i]* p_ji[i][j]/p_j;F:\visualc++\channel\Cpp1.cpp(122) : error C2065: 'fprint' : undeclared identifierF:\visualc++\channel\Cpp1.cpp(122) : error C2018: unknown character '0xa1'F:\visualc++\channel\Cpp1.cpp(122) : error C2018: unknown character '0xb1'F:\visualc++\channel\Cpp1.cpp(122) : error C2065: 'The' : undeclared identifierF:\visualc++\channel\Cpp1.cpp(122) : error C2146: syntax error : missing ')' before identifier 'iteration'F:\visualc++\channel\Cpp1.cpp(122) : error C2017: illegal escape sequenceF:\visualc++\channel\Cpp1.cpp(122) : error C2017: illegal escape sequenceF:\visualc++\channel\Cpp1.cpp(122) : error C2018: unknown character '0xa1'F:\visualc++\channel\Cpp1.cpp(122) : error C2018: unknown character '0xb1'————fprint(stdout,”The iteration number is %d.\n\n”,k);纠错:fprintf(stdout,"The iteration number is %d.\n\n",k);F:\visualc++\channel\Cpp1.cpp(145) : error C2143: syntax error : missing ')' before ';' ————free((p_i);纠错:free(p_i);5、没有返回值F:\visualc++\channel\Cpp1.cpp(149) : warning C4508: 'main' : function should return a value; 'void' return type assumed、纠错:return 0;6.改进程序/*引入头文件*/#include<stdio.h>#include<math.h>#include<stdlib.h>/*定义常量*/#define DELTA 0.0000001//DELTA为相对误差门限#define MAXFLOAT 1000000;//MAXFLOAT为初始化信道容量值int main( void){/*定义全局变量*//*register允许直接从寄存器中读取变量,提高速率*/register int i,j;//i、j为整型变量register int k;//信道容量迭代计算次数int r,s;//r为信源符号个数,s为新宿符号个数float *p_i=NULL;//r个信源符号发生的概率float **p_ji=NULL;//信源到新宿的信道转移概率矩阵Pfloat **phi_ij=NULL;float C,C_pre,validate;//C为信道容量,C_pre为信道最大容量,validate为判定输入转移概率矩阵是否合法float * sum=NULL;//信源符号所带的全部信息量float p_j;//条件概率/*输入信源符号和新宿符号个数*/printf("请输入信源符号个数r、信宿符号个数s...\n");printf("+++++注意!!!r必须大于等于s!!+++++\n");fscanf(stdin,"%d",&r);fscanf(stdin,"%d",&s);/*为 p_i,p_ji 和 phi_ij 分配内存空间*/p_i=(float *)calloc(r,sizeof(float));p_ji=(float **)calloc(r,sizeof(float));/*为每个p_ji分配大小为s的内存空间*/for(i=0;i<r;i++)p_ji[i]=(float *)calloc(s,sizeof(float));phi_ij=(float **)calloc(r,sizeof(float*));/*输入转移概率矩阵*/for(i=0;i<r;i++)/*为每个phi_ij分配大小为s的内存空间*/phi_ij[i]=(float *)calloc(s,sizeof(float));printf("信道转移概率矩阵P...\n");for(i=0;i<r;i++)for(j=0;j<s;j++)fscanf(stdin,"%f",&p_ji[i][j]);/*判定输入的转移概率矩阵是否正确*/for(i=0;i<r;i++){validate=0.0;for(j=0;j<s;j++){validate +=p_ji[i][j];}if((validate-1.0)>=0)//如果转移概率矩阵的概率和大于1,输入数据不合法{fprintf(stdout,"invalid input data.\n");exit(-1);}}/*显示开始计算..*/fprintf(stdout,"Starting..\n");/*初始化 p_i 和 phi_ij*/for(i=0;i<r;i++){/* p_i为等概率,即概率为1/r*/p_i[i]=(float)(1.0/(float)r);}/*初始化信道容量c,迭代次数k和临时变量variable*/C=-MAXFLOAT;k=0;/* 为sum分配大小为r的内存空间*/sum=(float *)calloc(r,sizeof(float));/*开始迭代计算*/do{k++;//每进行一次迭代,迭代次数k加1/* 计算phi_ij(k)*/for(j=0;j<s;j++){p_j=0.0;for(i=0;i<r;i++)p_j+=p_i[i]*p_ji[i][j];if(fabs(p_j)>=DELTA)for(i=0;i<r;i++)phi_ij[i][j]=p_i[i]* p_ji[i][j]/p_j;elsefor(i=0;i<r;i++)phi_ij[i][j]=0.0;}/*计算p_i(k+1)*/p_j=0.0;for(i=0;i<r;i++){sum[i]=0.0;for(j=0;j<s;j++){/*相对误差门限为0*/if(fabs(phi_ij[i][j])>=DELTA)sum[i]+=(float)(p_ji[i][j]*log( phi_ij[i][j])/ log(2.0)); }sum[i]=(float)(pow(2.0,sum[i]));p_j+=sum[i];}for(i=0;i<r;i++){p_i[i]=sum[i]/p_j;}C_pre=C;C= (float)(log(2.0)/log(p_j) );}while(fabs(C-C_pre)/C>DELTA);free(sum);sum=NULL;/*显示结果*/fprintf(stdout,"The iteration number is %d.\n\n",k);//迭代次数fprintf(stdout,"The capacity of the channel is %.6f bit/symbol:\n\n",C);//信道容量fprintf(stdout,"The best input probability distribution is :\n");//最佳信源分布 for(i=0;i<r;i++)fprintf(stdout,"%.6f\n",p_i[i]);fprintf(stdout,"\n");/* 释放指针空间*/for(i=s-1;i>=0;i--){free(phi_ij[i]);phi_ij[i]=NULL;}free(phi_ij);phi_ij=NULL;for(i=r-1;i>=0;i--){free(p_ji[i]);p_ji[i]=NULL;}free(p_ji);p_ji=NULL;free(p_i);p_i=NULL;exit(0);return 0;}7.实验结果八、实验结论信道容量是指信道能无错误传送的最大信息率。
实验二 离散信道容量

实验二 离散信道容量一、实验目的1. 掌握离散信道容量的计算。
2. 理解离散信道容量的物理意义。
3. 练习应用matlab 软件进行二元对称离散信道容量的函数曲线的绘制,并从曲线上理解其物理意义。
二、实验原理信道是传送信息的载体—信号所通过的通道。
信息是抽象的,而信道则是具体的。
比如二人对话,二人间的空气就是信道;打电话,电话线就是信道;看电视,听收音机,收、发间的空间就是信道。
研究信道的目的:在通信系统中研究信道,主要是为了描述、度量、分析不同类型信道,计算其容量,即极限传输能力,并分析其特性。
二元对称信道BSC (Binary Symmetric Channel )二进制离散信道模型有一个允许输入值的集合X={0,1}和可能输出值的集合Y={0,1},以及一组表示输入和输出关系的条件概率(转移概率)组成。
如果信道噪声和其他干扰导致传输的二进序列发生统计独立的差错,且条件概率对称,即(0/1)(1/0)(1/1)(0/0)1p Y X p Y X p p Y X p Y X p ======⎧⎨======-⎩这种对称的二进制输入、二进制输出信道称做二元对称信道(或二进制对称信道,简称BSC 信道),如下图所示:信道容量公式:{()}max p x C I(X,Y)=三、实验内容BSC信道是DMC信道对称信道的特例,对于转移概率为P(0/1)=P(1/0)=p,P(0/0)=P(1/01)=1-p,求出其信道容量公式,并在matlab上绘制信道容量C与p 的曲线。
根据曲线说明其物理意义。
四、实验要求1.提前预习实验,认真阅读实验原理以及相应的参考书。
2.认真高效的完成实验,实验中服从实验室管理人员以及实验指导老师的管理。
3.认真填写实验报告。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的
1.掌握离散信道的信道容量的计算方法;
2.理解不同类型信道的不同特点与不同的计算方法;
二、实验内容
1.进一步熟悉一般离散信道的信道容量计算方法;
2.进一步复习巩信道性质与实际应用;
3.学习如何将复杂的公式转化为程序。
三、实验仪器、设备
1、计算机-系统最低配置256M内存、P4 CPU;
2、MATLAB编程软件。
四、实现原理
信道容量是信息传输率的极限,当信息传输率小于信道容量时,通过信道编码,能够实现几乎无失真的数据传输;当数据分布满足最佳分布时,实现信源与信道的匹配,使得信息传输率能够达到信道容量。
本实验利用信道容量的算法,使用计算机完成信道容量的计算。
实验采用迭代算法计算信道容量,即:设DMC的转移概率pyx(i,j),p(i)是任意给定的一组初始给定输入分布,开始为等概率分布,以后逐次迭代更新p(i)的取值。
其所有分量P (i)均不为0。
按照如下方法进行操作:
具体方法:
1、计算q(j)=
i
j
i
pyx
i
p)
,(
*)(,pyx(i,j)为信道转移概率
2、计算a(i)
先算中间变量d(i)=∑
j
j
q
j
i
pyx
j
i
pyx)
(
/)
,(
log(
*)
,(
然后,a(i)=exp(d(i))
3、计算中间变量U=∑
i
i
p i
a)(
*)(
4、计算IL=log2(u)
5、计算IU=log2(max(a(i))
6、当IU-IL>ε(ε为设定的迭代精度)时,进入以下循环,否则输出迭代次数n,信道容量C=IU计算结果,最佳分布p(i)。
①重新计算p(i)=p(i)*a(i)/U
②计算q(j),方法同1
③计算a(i),方法同2
④计算中间变量U=∑
i
i
p i
a)(
*)(
⑤计算IL=log2(u)
⑥计算IU=log2(max(a(i))
⑦计次变量n=n+1
返回6判断循环条件是否满足。
五、实验步骤
1、计算非对称信道的信道容量
运行程序
待程序运行完毕,记录迭代次数n和信道容量计算结果C。
2、计算对称信道的信道容量
运行程序
待程序运行完毕,记录迭代次数n和信道容量计算结果C。
六、实验报告要求
1、根据格式要求撰写实验报告;
2、附录完整的程序代码;
3、总结实验心得。
七、思考题
1、考虑当信道转移矩阵为非方阵时,影响信道容量的因素有那些?
2、迭代精度和迭代次数的关系?。