Error Control Systems for Digital Communication and Storage