# Using MIMO with DS-CDMA and spread spectrum

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

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

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)];


or

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


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

• 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. – New_student Feb 23 '19 at 16:21
• 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). – AlexTP Feb 23 '19 at 23:29
• 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, – New_student Feb 24 '19 at 12:44
• 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]? – New_student Mar 2 '19 at 9:25
• @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. – AlexTP Mar 2 '19 at 10:54