Quasi-Cyclic LDPC Code Design for Practical Applications