I have a question about using MIMO with DS-CDMA. suppose we are using 4 TX antennas, and 4 RX antennas, then the Reyleigh channel generated randomly of MIMO system will be of dimension H = [4x4], assuming also the transmitted signal using QAM modulation is x done as below:

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

So the received signal r is supposed to be r = H*x , which is of dimension of [4x1].

Now, suppose we are spreading that signal with PN/walsh code of dimension [4x1], by using the function of "kron" in MATLAB, so the dimension of the new transmitted signal will be [16x1], equivalent that x_1 = kron(x,c); where c is the code used to spread the signal before transmission.

My question is, how can we transmit that signal after spreading it x_1 over the noted channel H of dimension H with dimension [4x4]?

Thank you

  • 1
    $\begingroup$ r = reshape(H*reshape(x_1,4,[]),[],1); This assumes channel H does not change during the transmission of 16 symbols of x_1. $\endgroup$
    – AlexTP
    Feb 23, 2019 at 15:11
  • $\begingroup$ @AlexTP .. Thank you very much. Could you please add few details as an answer in order to accept the answer and close the subject. $\endgroup$ Feb 23, 2019 at 15:19

1 Answer 1


Assuming one antenna transmits one symbol per time unit, then 16 symbols require 4 time units to be out. Then it is simply that

r_1 = H_1 * x_1(1:4)
r_2 = H_2 * x_1(5:8)
r_3 = H_3 * x_1(9:12)
r_4 = H_4 * x_1(13:16)

If channel H is fixed during these 4 time units,

[r_1 r_2 r_3 r_4] = H * [x_1(1:4) x_1(5:8) x_1(9:12) x_1(13:16)];


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

This can be generalized to any MIMO size and to any spreading size.

  • $\begingroup$ Sorry Alex, but in that case I think we need to upsample the signal x_1 by factor of 4 in order to make the duration similar to its duration before spreading. means the duration of code c will be T/4 , where T is the duration of signal x_1. $\endgroup$ Feb 23, 2019 at 16:21
  • $\begingroup$ The spread rate is faster than the rate before spreading, isn't it? My answer is equivalent to upsampling the channel matrix to match this faster rate (channel is supposed to not change during the transmissions hence upsampling = repeating the discrete channel). $\endgroup$
    – AlexTP
    Feb 23, 2019 at 23:29
  • $\begingroup$ Could you please check my question here dsp.stackexchange.com/questions/55635/… .. I think I should modify something in that format. since when doing kron(c,x), that works well but when going kron(x,c); I can't retrieve my signal, $\endgroup$ Feb 24, 2019 at 12:44
  • $\begingroup$ Hello Alex, are you still there. I have a question regarding that point. when we get the received signal which is r with dimension [16x1], how will it be the channel? I mean if we are you maximum likelihood estimation, how will it be the channel ? will it be [H, H, H, H]? $\endgroup$ Mar 2, 2019 at 9:25
  • $\begingroup$ @New_student the channel should be independent to channel estimation methods. Imagnine a continous channel, what you get in your model is the disrete channel which is sampled from the continous one. $\endgroup$
    – AlexTP
    Mar 2, 2019 at 10:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.