Hi
in Matlab we have that the input of the awgn is SNR.

Es/No=Eb/No+10log(k.Rc) k=log2(M)
Es/No=10log(Tsym/Tsamp)+SNR
SNR=Eb/No+10log(k.Rc)-10log(Tsym/Tsamp)

in different coding rate only Rc is varying and not k or Tsym/Tsamp.
with this equation we conclude that if Rc increases to 1 my results would be better.but we know for example a code with t=3bit error correcting capability must be better than same code with t=2 error correcting capability.
for example BCH(31,16,7) Rc=0.51 should be better than BCH(31,21,5) Rc=0.67 at same Eb/No,but from above equation we have

SNR(31,16)=Eb/No-10log(Tsym/Tsamp)+10logk-3
SNR(31,21)=Eb/No-10log(Tsym/Tsamp)+10logk-1.74

we conclude that (31,21) is better than (31,16)
Why?????
Which part(s) of my conclusion is(are) wrong??????
Thanks.