Distortion of OFDM signal when using RRC filter
I checked your code in my PC, you need just to delete the delay added before the filter. For example, you can use:
U_aft_fil = U_aft_fil(fil_delay+1:end);  

Then when filtering it again at the receiving side, you delete it again :
U_r_fil = U_r_fil(fil_delay+1:end);

Good luck