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$ Commented Oct 14, 2018 at 15:07
  • $\begingroup$ Try built-in function toeplitz() of MATLAB fr.mathworks.com/help/matlab/ref/toeplitz.html $\endgroup$
    – AlexTP
    Commented Oct 14, 2018 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
    Commented Oct 15, 2018 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
    Commented Oct 15, 2018 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
    Commented Oct 16, 2018 at 14:31

2 Answers 2


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
    Commented Oct 17, 2018 at 9:04
  • 2
    $\begingroup$ No need for that. Try to read how to the demodulation in SIMO system. $\endgroup$ Commented Oct 18, 2018 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$ Commented Oct 25, 2018 at 7:19
  • $\begingroup$ Why the channel matrix has dimensions of $NP\times (N+L)$? Are you assuming CP-based OFDM transmission? $\endgroup$
    – BlackMath
    Commented Mar 24, 2019 at 18:11
  • $\begingroup$ @BlackMath Yes, I was talking about CP-based OFDM transmission when answered that question $\endgroup$ Commented Mar 27, 2019 at 12:10

The received sample $i$ at receive antenna $j$ is given by


where $L$ is the channel memory, $\{h_{j,l}\}$ is the $l$th channel tap from the transmitter to receive antenna $j$. The above equation is actually the convolution of the transmitted signal with the channel impulse response of the the channel between Tx and $j$th receive antenna. Writing the above samples in details for all values of $i$ and $j$, and stack the samples will give you a systematic way of finding the dimensions.

For one receive antenna, the channel matrix is circular (in case of CP-based OFDM), and its dimensions are $N\times N$ (where $N$ here is the number of data symbols in the OFDM symbol). When you have $P$ receive antennas, the dimensions becomes $NP\times N$.

But I think in this case you need to take the $N$-point FFT of each received sample block at each antenna first before any further processing.


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.