项丙才,王明慧,吴远帅,陆梓赫,尹从宇——多维无记忆加性连续信道注水法功率分配的证明

目录

一、离散序列信道及其容量

二、多维无记忆加性连续信道及其容量

三、注水法功率分配的证明

四、注水法功率分配的应用及MATLAB仿真实例


前言

       本文是信息论周三上午三四节班第五组所做的调研报告

       小组成员:P02114041项丙才、P02114044王明慧、P02114045吴远帅、P02114046陆梓赫、P02114049尹从宇

       本文主要由平均互信息的定义推导出离散序列信道的容量。

       其次,多维无记忆加性信道可以等价为L个独立并联加性信道,从而推出多维无记忆加性连续信道及其容量。

       最后,根据加性噪声的不同,分两类情况讨论。其中, 当各单元时刻L个高斯噪声均为,但方差不同且为时,若输入信号的总均功率受限,本文根据拉格朗日乘数法推导出最佳输入功率分配。

一、离散序列信道及其容量

离散序列信道

       对于无记忆离散序列信道,其信道转移概率为

       根据平均互信息的定义

       如果信道无记忆,则 

                                                                                                                                     (1-1)

       证明如下:

二、多维无记忆加性连续信道及其容量

多维无记忆加性信道等价为L个独立并联加性信道

       信道数入随机序列,输出随机序列,加性信道由其中是均值为零的高斯噪声,表示各单元时刻上的噪声。

       由于信道无记忆,所以有,即信源序列的转移概率等于各个符号转移概率的乘积。

   加性信道中噪声随机序列的的各时刻分量是统计独立的,即,各分量都是均值为、方差为高斯变量。所以多维无记忆高斯加性信道就可等价为L个独立的并联高斯加性信道。由式可得

       则

(2-1)

分下列两种情况讨论:

     (1)当每个单元时刻上的噪声都是均值为、方差相同且为的高斯噪声时,由式可得

       当且仅当输入矢量X的各分量统计独立,均值都为、方差相同为的高斯变量时,信道中传输的信息率可达到最大。

     (2)当各单元时刻L个高斯噪声均为,但方差不同且为时,若输入信号的总均功率受限,约束条件为

     (2-2)

       则此时各单元时刻的信号平均功率应合理分配,才能使信道容量最大。也就是需要在式的约束条件下,求式的分布。

三、注水法功率分配的证明

       上述问题是一个标准的求极大值的问题,采用拉格朗日乘数法来计算:

       作辅助函数

       令,可得

       

       即

       满足上式时,式才能取得最大值。

       上式表示各单元时刻上信号平均功率与噪声功率之和,即各个时刻的信道输出功率相等,设为常数,则

       则各单元时刻输入信号平均功率为

       将上式代入式,得

       当某些单元时刻的噪声太大,大于常数,使式中出现负数值,说明这些时刻的信道质量太差,必须置,不进行功率分配,予以关闭。然后重新调整信号输入的功率分配,直至不再出现负值。这就是“注水法”的原理。

四、注水法功率分配的应用及MATLAB仿真实例

       :有一并联高斯加性信道,各子信道噪声方差为

       (1)若输入信号总功率 ,则平均输出功率 ,因为该值大于所有子信道的噪声功率 ,所以各子信道分配的功率分别是: 。总的信道容量

       (2)若输入信号总功率 ,则平均输出功率 ,该值小于最后4个子信道的噪声功率 ,关闭这四个子信道,即 。重新计算平均输出功率  ,关闭第6个子信道 。再次计算平均输出功率 。此时其他子信道分配的功率: 。总的信道容量

 

       注水法功率分配实例如下:

     

        MATLAB仿真过程:

       MATLAB仿真结果:

 

参考代码:

clc;

close all;

clear;

%% 初始化

Ptsum=11;                               %总传输功率

noise=[2 1 4 3 2 4 2 1];             %噪声功率

N= length(noise) ;                    %信道个数

[noise_sorted,index]=sort(noise);

for p=length(noise_sorted):-1:1

    T_P=(Ptsum+sum(noise_sorted(1:p)))/p;

    Input_Power=T_P-noise_sorted;

    Pt=Input_Power(1:p);

    if(Pt(:)>=0)

        break

    end

end

power_alloc=zeros(1,N);

power_alloc(index(1:p))=Pt;                               %分配的功率

capacity=sum(log2(1+power_alloc./noise));   %信道容量

for ii =1:length(noise)

    g(ii,:)=[noise(ii),power_alloc(ii)];

end

bar(g,'stack');

legend ('Noise Level','Power Level')

ylabel('Noise & Power Level','fontsize',12)

xlabel('Number of Channels (N)','fontsize',12)

title('Power Allocation for Waterfilling Alogorithm','fontsize',12)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值