Using Spreading spectral with Maximal likelihood As asked here, HERE  if we have the signal 

x = 
[0.7 + 0.7i; 
0.7 - 0.7i;
-0.7 + 0.7i;
-0.7 -0.7i];


Which was spread over code c and transmitted over channel H whose dimension is [4x4], so the convolution of signal after spreading will become: 

r = reshape(H*reshape(x,4,[]),[],1);


comparing it with signal without spreading, it was  

 r = H*x; 


That was explained well in the above link. 

My question, suppose I am using Maximum likelihood estimation, in case if we didn't spread the signal, we will check the likelhood compared with the channel H, but what's about after using spreading ? how will become the channel ? It supposed to be a vector of [16x1], is that right ? but how will it be ? 

thank you!
H was not reshaped, as you see in your command r = reshape(H*reshape(x,4,[]),[],1);, you reshaped the data itself. 

In that case, you are going to add noise, then using ML estimation based on the received data. So that, H will be H without changing, what will be changed is the received data, you can reshape it similar to that way in the transmitter reshape(y,4,[]), where y is the received data, then reshape the results again into [16 x 1]. 

Good luck