 Error-correcting codes are frequently used in lower-layer communication, as well as for reliable storage in media such as CDs, DVDs, hard disks, and RAM.Error-correcting codes are usually distinguished between convolutional codes and block codes