考完駕照,回來填坑 /doge/doge算法
前兩節分別介紹了tal算法中的合併函數和信道操做兩個部分,咱們將高斯信道的應用放在最後一節來介紹。框架
在以前的介紹中,咱們一直在一個前提下進行討論——即輸入字符集是有限的。函數
可是,對於一個具備連續輸出字符集的信道,如經典的二元高斯信道,它也能夠是對稱信道,可是它的輸出是連續的,因此不能直接使用tal算法。爲了將tal算法應用於改信道,咱們就要對這個信道作一些近似。spa
整體思路相似微分思想,將連續輸出分紅若干個很是小的離散輸出。設計
咱們假設W爲一個具備連續輸出的BMS信道,且W知足如下幾點:3d
- W的輸出字符集爲實數集;
- f(y|0),f(y|1)爲輸出的機率分佈函數,輸入爲{0,1};
- W的對稱性表現爲:f(y|0)=f(-y|1),y∈R;
- 同時,爲了方便起見,咱們假設:f(y|0)≥f(y|1),y≥0。
正如咱們所指望的那樣,BAWGN信道知足上面全部的假設。前兩個假設的成立是顯然的,對於後兩條假設,在BPSK調製下(0映射爲1,1映射爲-1),咱們能夠繪製出函數圖像。blog
圖1 高斯曲線對比get
上圖中,高斯曲線的方差均爲1,均值分別爲1和-1,能夠看到,兩個曲線關於x = 0是對稱的,所以上面第三個假設成立。在x > 0 的區間顯然有第四個假設成立。
it
接下來,咱們定義y的似然比爲: 根據定義,W的信道容量能夠表示爲: 其中,在 λ ≥ 1 時,有; 上面這兩個公式是從 tal 論文中直接截過來的,因爲水平有限,其推導過程我不得而知。程序設計
做者提到,C[λ] 的一個重要的性質是,它隨 λ 的增大呈嚴格遞增。從下圖中能夠很容易看出這一點:
圖2 C[λ] - λ
咱們前面已經說過,本節的思路在於經過微分思想,把連續輸出近似成爲離散輸出,而上面的介紹提供了 C[λ] 這樣一個參數,咱們能夠用它來做爲分割輸出字符集的依據。在論文中,做者是這樣進行區分的:
假設 μ=2*v 爲指定弱化/強化信道輸出字符集,i 取值範圍爲:1 ≤ i ≤ v-1,那麼,能夠對輸出集 y 做以下分割:其中,第二個不等號在 i 取 i=v 時變爲 「≤」。
咱們看到,在上面這個集合中,y 和 C 之間經過兩重映射關係聯繫到了一塊兒,而 C 被限制在了某個區間之中,所以y也相應的被分割成了若干個小段。
下面以弱化操做爲例進行講解:
主要內容圍繞着Lemma1五、Lemma16兩個引理展開,在介紹兩者以前,須要一些預約義。
咱們的BMS信道W知足本節最開始的四個假設,定義信道 ,其中,Z定義爲:
根據定義,咱們能夠很容易獲得Q的信道轉移機率表達式,以下,爲積分運算:
Lemma15 (在上述定義下的)信道 Q 是一個BMS信道,並且它是 W 的弱化信道:
這個引理的證實比較容易理解,Q顯然是一個BMS信道。只要咱們選擇中間信道P定義爲: 那麼Q是W的弱化信道也是能夠理解的。
Lemma16 Q 和 W 的信道容量之差能夠限制在以下區間中:
對於 tal 算法在matlab下的實現,能夠作以下的介紹。
與以前同樣,咱們的程序設計仍是如下面的算法爲主要框架: 在此基礎上,對於高斯信道來講,因爲它具備連續的輸出,所以它的轉移機率須要使用上面介紹的積分公式來計算。
爲了進行積分運算,咱們首先須要對 y 進行分區,而後才能在每個小分區內進行積分。
對 y 的分區依據就是上面提到的集合 Ai 。
其1、咱們能夠令 C[λ(y)] = i/v,求出對應的 λ(y)。
設 f(x) = C[λ] - i/v,令 f(x) = 0,求得根x的值,因爲表達式比較複雜,這一步能夠藉助「牛頓-拉夫遜方法」在matlab上完成,方法見超連接。
其2、獲得 λ 後,能夠根據 λ 與 y 的映射關係,求出 y 。
上面內容中, v 是輸出單元長度,i 是一個循環下標。i 的循環範圍爲 1~v,經過 i 的循環和調用上面兩個步驟,咱們能夠獲得若干的 y 值,實際上能夠把這些 y 值寫成向量形式。那麼,對於獲得的向量,相鄰兩個元素就是咱們求定積分所用到的上下限。
獲得了高斯信道的近似轉移機率,咱們就能夠將其視爲一個離散的BMS信道,接下來,按照前面的思路去進行弱化操做和合並操做,就可以在高斯信道下完成信息位的挑選任務了。