In OFDM system, I need to transmit a signal $x$ in SIMO channel $H$ with one $Tx$ antenna and 4 $Rx$ receiver's antennas. The initial equation for that convolution is $r=Hx+n$ where $n$ is the noise. $r$ is the received signal, $x$ is the transmitted signal, and $H$ is a toeplitz matrix as built in below code.

The question, When I created the toeplitz matrix $H$, the dimensions of transmitted signal $x$ and toeplitz matrix $H$ are not equal, so we are unable to do the multiplication!. I checked online, I got, before processing that multiplication, I should do two steps. first get $x1$ and then $x2$ as in below code. the $x2$ is the flip of $x1$, is theoretically known, but what's the benefit of getting the $x1$ ?

Regaring the dimension of toeplitz matrix $H$, is as below: if we have the length of signal $Q$, the length of channel $M$, the number of received antenna $p$. So, the dimension of toeplitz matrix will be (Q*p x Q+M)


  • $\begingroup$ Well, what's the dimensions of your $H$, and why? Also, remember why you do OFDM: to not have your channel convolve in time domain, but to point-wise multiply in frequency domain. I'm not sure about your code (it's self-contradicting in that, as far as I can tell), but if you want to go the "we consider things in frequency domain" route, then your $H$ isn't a Toeplitz matrix, but if you want to go the "we do things in time domain", it's up to you to set $H$'s dimensions right. So, I honestly don't know what you're asking of us: Debug your convolution matrices' dimensions? $\endgroup$ – Marcus Müller Oct 14 '18 at 15:07
  • $\begingroup$ Try built-in function toeplitz() of MATLAB fr.mathworks.com/help/matlab/ref/toeplitz.html $\endgroup$ – AlexTP Oct 14 '18 at 16:04
  • $\begingroup$ @AlexTP .. do you mean to use the r = toeplitz(h,Q); directly? what's about to Flip $x$ ? it is not needed in that case ? I tried it, I obtained a matrix with high dimension $\endgroup$ – Fatima_Ali Oct 15 '18 at 5:21
  • $\begingroup$ Dear Marcus, I added a notice of H dimension in my post. We set convolution in time domain as mentioned in above code. could you please clarify "it's up to you to set H's dimensions right" $\endgroup$ – Fatima_Ali Oct 15 '18 at 5:23
  • $\begingroup$ @MarcusMüller .. could you please clarify "It's up to set H dimension right" .. do you mean the dimension I can change it according to transmitted signal dimension ? $\endgroup$ – Fatima_Ali Oct 16 '18 at 14:31

I've said, in another comment, convolution using the function conv "i.e in MATLAB" and convolution using the Toeplitx matrix must give the same results. That's ok.

Now, according to your code, the received signal $r$ is the results of convolution between channel $h$ and emitted signal $x$, which means $r = h*x + n$
* indicate to the convolution (which is circular convolution in case of using $CP$ with OFDM or with any other system).

So, in that conventional known case, we are using SISO system, where 1 antenna is used as transmitter and 1 as receiver, The length of our parameters should be:

$x = N$ x 1 ; $h = L$ x 1;

$N$ is the length of our signal, in your case $Q$

$L$ the length of channel or we sometimes call it IR, in your case $M$

Till here, it's clear, it's the normal process which can be read anywhere. Now suppose that you are using $SIMO$ system with $P$ antennas at reciever instead of 1 (by the way fractional sampling is also equivalent to SIMO system). in that case you suppose to have $P$ copies for your signal instead of one. It's like you are doing $P$ times convolutions for your emitted signal with $P$ different channels. let's say $P$ = 4; means you have 4 receiver's antennas equivalent in our case into 4 different channels.

As mentioned, you suppose to have 4 copies for your signal, and 4 different channels compared with conventional case, so let's say parameter $H$ is toeplitz matrix which will represent those four channels in SIMO system. So we will have

$R = HX + N$

$R$ is received signal in SIMO, $H$ is the toeplitx matrix, $X$ emitted signal in SIMO system too and also $N$ represent the noise.

Now, your question how to build $H$ and what's dimension of $H$ when using SIMO system. (by they way, your code is correct)

The emitted signal $X$, represents 4 copies of $x$, so its dimension is $(N +L)$ x 1;

The toeplitz matrix $H$ has a dimension $NP$ x $(N+L)$ where $P$ = 4 in your case. And the noise $N$ should be $NP$ x 1. (N as noise is different about N of emitted signal in this case).

So, Now, you can conclude the dimension of received signal $r$ and $R$ in every case easily.

and regarding your question, why using $x1$, it's to have dimension of emitted signal $X$ of $(N +L)$ x 1 instead of dimension $N$ in conventional case


  • $\begingroup$ Yes, got it. thank you so much. but in when demodulating the signal at receiver, should we cancel that added part using $x1$? $\endgroup$ – Fatima_Ali Oct 17 '18 at 9:04
  • 2
    $\begingroup$ No need for that. Try to read how to the demodulation in SIMO system. $\endgroup$ – Zeyad_Zeyad Oct 18 '18 at 9:55
  • $\begingroup$ Awesome answer, @Zeyad_Zeyad! I like how it's logically structured and addresses the implementation question right at the beginning and then dives into derivation of the dimensions. Nice! $\endgroup$ – Marcus Müller Oct 25 '18 at 7:19

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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