熟悉通道容量的迭代演算法;
學習如何將複雜的公式轉化為程式;
已知:信源符號個數r,新宿符號份額數s、通道轉移概率矩陣p;
輸入:任意的乙個通道轉移概率矩陣。r、s、p在執行時從鍵盤輸入。
輸出:最佳信源分布p『,通道容量c。
乙個通道,若給定輸入分布q(x) ,和轉移概率分布p(y|x) ,則輸出概率分布為 θ(
y)=∑
xq(x
)p(y
|x)
對dmc通道有θ(
y)=∑
xq(x
)p(y
|x)
當研究聯合 空間xy時,則通道輸出和輸入之間的平均互資訊量為 i(
x;y)
=∑k=
0k−1
∑j=0
j−1q
kp(j
|k)l
ogp(
j|k)
∑k−1
k=0q
ip(j
|i)
=h(y
)−h(
y|x)
=h(x)−h
(x|y
) 從上述公式中,當通道輸入為x,接收端得到的平均資訊量 i(x;y)是通道輸入概率和通道轉移概率的函式。一般干擾越大,傳輸的資訊量就越小。現在研究通道哦給定,即 給定的情況下,如何選擇輸入分布 qk
使傳輸的資訊量 i(x;y)達到最大。
通道容量的定義: c=
maxi
(x;y
) 即c為改變輸入分布時,使每個符號所能含有的平均互資訊量的最大值。相應的輸入分布稱為最佳輸入分布。
演算法流程:
1. 取出時分布 r(
0),置k=0。
2. 由公式 q(
k)(x
|y)=
p(y|
x)r(
k)(x
)∑xp
(y|x
′)r(
k)(x
′)計算q(
k)(x
|y)
3. 由公式rk
+1(x
)=∏y
q(k)
(x|y
)p(y
|x)∑
x′∏y
q(k)
(x′|
y)p(
y|x)
計算r(
k+1)
4. 由公式 c(
k+1)
=i(r
(k+1
),q(
k))
5. 若|c
(k+1
)−c(
k)|≤
δ ,進入第7步。
6. 令k=
k+1 , 轉向第二步
7. 程式結束輸出最佳輸入分布r(
k+1)
及c(k
+1)
根據演算法的基本原理和迭代的流程進行程式編寫。
程式**如下
#include
#include
#include
void printmessage();
int main()
for (i = 0; i < r; i++)
p[i] = (double)(1.0 / (double)r);
//設初始信源分布為等概分布
do
y = 0.0;
for (i = 0; i < r; i++)
z[i] = (pow(2.0, z[i]));
y = y + z[i];//z[i]為ip的分母部分
}for (i = 0; i < r; i++)
c = (log(y) / log(2.0));//求通道容量單位為「bit」
} while (fabs((c - a) / c) > epsilon);
printf("!----------迭代次數為:k=%d --------!\n", k);//輸出迭代次數
printf("!----------最佳信源分布為:--------!\n\n");
for (i = 0; i < r; i++)
printf("\n");
printf("!----------通道容量為:c=%.3lf bit --------!\n\n", c); //輸出通道容量,保留3位小數
getchar();
getchar();
}void printmessage()
執行過程需要輸入信源符號個數,信宿的個數和對應的狀態轉移矩陣。最終通過迭代過程獲得通道容量和對應的最佳輸入分布。 求高斯通道的通道容量 資訊理論
clear,clc 一維二元高斯通道的通道容量 xn 8000 定義點數 m1 0 m2 1 訊號引數 sigma1 0.38 sigma2 0.5 高斯雜訊引數 xmin min m1 5 sigma1,m2 5 sigma2 xmax max m1 5 sigma1,m2 5 sigma2 定義...
資訊理論 離散通道及其容量筆記
1.通道容量是資訊能夠可靠傳輸的最大傳輸速率。通道容量定義為通道輸入與輸出平均互資訊的最大值。通道容量僅於通道特性,通道轉移概率有關,與通道輸入無關。但是通道輸入概率必須與通道容量進行匹配才能達到容量。2.單符號離散通道 乙個平穩離散無記憶通道的容量 c定義為輸入與輸出平均互資訊 i x y 的最大...
603通道與通道容量
目錄 通道分類與模型 通道傳輸特性 通道容量 狹義通道 訊號傳輸介質 廣義通道 訊號傳輸介質和通訊系統的一些變換裝置 調製通道 訊號從調製器的輸出端傳輸到解調器的輸入端經過的部分 編碼通道 數碼訊號由編碼器輸出端傳輸到解碼器輸入端經過的部分 恆參通道 各種有線通道和部分無線通道,傳輸特性變化小 緩慢...