PolarCode

PolarCode

Data Structures

class  PolarCode
 Class for polar encoding and decoding. More...

Functions

int main (int argc, char *argv[])
 Trains polar codes and simulates their operation.

Function Documentation

int main ( int  argc,
char *  argv[] 
)

Trains polar codes and simulates their operation.

Parameters are read from the command line and/or a configuration file. For example...

 ./executable Training=1 N=1024 K=512 SNR=0 FrameCount=10000

This will train the information set $\mathcal{A}$ of an $(N,K)$ polar code for transmission over a BPSK-modulated AWGN channel having the specified SNR. The length and accuracy of the simulation depends on the value you use for FrameLength. The resultant parameters $(N,K,\mathcal{A})$ will be written into a configuration file having a filename of the form polar_N_K_SNR.

 ./executable Training=1 N=1024 ThresholdMI=0.999 SNR=0 FrameCount=10000

This will train the information set $\mathcal{A}$ and automatically choose an appropriate information block length $K$ for a polar code having an encoded block length of $N$ used for transmission over a BPSK-modulated AWGN channel having the specified SNR. During this training process, the mutual information offered by each of the $N$ channels will be compared with ThresholdMI. If the mutual information is greater than ThresholdMI, then the channel will be admitted to the information set $\mathcal{A}$ and $K$ will be incremented. The length and accuracy of the simulation depends on the value you use for FrameLength. The resultant parameters $(N,K,\mathcal{A})$ will be written into a configuration file having a filename of the form polar_N_K_SNR.

 ./executable ConfigFile=polar_1024_512_+0.00 SNRStart=-10 SNRDelta=0.5 TargetBitCount=5120 TargetErrorCount=100

This will read the polar code parameters $(N,K,\mathcal{A})$ from the specified configuration file and simulate its transmission over a BPSK-modulated AWGN channel having the SNRs [SNRStart, SNRStart+SNRDelta, SNRStart+2SNRDelta, SNRStart+3SNRDelta, ...]. The simulation of each SNR will continue until at least TargetBitCount number of bits have been transmitted and TargetErrorCount number of errors have been observed. The results are written into a file having a filename of the form ConfigFile_SNRStart_ber. For each SNR, the results file provides the number of transmitted bits, the number of observed errors, the BER and the average number of Add, Compare and Select (ACS) operations performed per bit.

References RobProb::Approx, PolarCode::decode(), PolarCode::decode_frozen(), PolarCode::encode(), RobProb::Exact, PolarCode::get_u_A_c(), RobProb::hard(), RobProb::jacobian_type, RobProb::Lookup, RobProb::mutual_information(), PolarCode::randomise_u_A_c(), RobProb::sum(), and RobProb::to_llr_frame().