EE6743 Channel Capacity Programming Assignment Write a program to calculate the capacity of an arbitrary channel with an alphabet size of up to 10. The program should read an arbitrary conditional probability matrix (up to 10×10, but not necessarily square) as input, and should calculate the capacity of the channel, in bits of information per source symbol. It should also find the particular set of source symbol probabilities {p1, p2, p3, , p10} which achieves capacity. Your program should iterate on the conditional mutual information to find the source probability distribution which makes the conditional mutual information equal for all source symbols. Use the equations in the module 7 powerpoint to do the calculations. Once the capacity and the source probabilities have been determined, your program should compute the entropy of the source and the received symbols, the equivocation, the joint entropy, and the mutual information of the system; i.e. H(A), H(B), H(A|B), H(B|A), H(A,B), and I(A;B) Your report should include the source code, and the resulting entropy values for several test channel matrices which will be provided later. Notes:
1. Your program should check that each row of the channel matrix sums to 1, and that all entries are valid probabilities.
2. Your program should be able to deal with non-square matrices (e.g. erasure channels)
3. Your program should be able to deal with zero probability values (i.e. log of zero).
Your report should also include a brief discussion of the results, their relationships, and any conclusions you may draw from this project.
Recent Comments