I need to use filter Matlab function to describe the following :

H: MR x MT

x: N x MT

How to use filter to get a received signal y=H*x?


I am working on a simulation OFDM system and got x as N+Ncp x MT. Of course, I can change dimension and get MT x N+Ncp, where Ncp- length of cyclic prefix and N- subcarriers.

Will be it correctly if I take a product H * x?

  • 1
    $\begingroup$ I'm a bit confused with your model. The channel matrix contains coefficients between transmit and receive antenna but has no time dimension. But then your transmitted signal has a time dimension, $N$ samples? $\endgroup$ – Engineer Nov 19 at 18:56
  • 1
    $\begingroup$ If the received signal is y=H*x, why not just calculate H*x? You just need to adjust your matrix dimensions. Why do you want to use filter? $\endgroup$ – MBaz Nov 19 at 20:26
  • $\begingroup$ @Engineer I am working on Freq.selective channel model. N is a number of subcarriers. H has the 3 dimension, H:MR x MT x N, For each N there is a H and x(vector) $\endgroup$ – Anna Koroleva Nov 20 at 7:09
  • $\begingroup$ @MBaz For H I use rayleighchan Matlab function. I can just apply ` filter(H,x(:,t)), but I need to create H` as array and then apply using filter. $\endgroup$ – Anna Koroleva Nov 20 at 7:12
  • $\begingroup$ @MBaz I added more details to explain a question $\endgroup$ – Anna Koroleva Nov 20 at 12:32

The OFDM-MIMO channel can be modeled as:

$ \mathbf{y} = \mathbf{H} \mathbf{x} + \mathbf{w} $

where $\mathbf{y}$ is $M_RN \times 1$, $\mathbf{H}$ is $NM_R \times (N+N_{CP})M_T$, $\mathbf{x}$ is $M_T(N+N_{CP}) \times 1$, and $\mathbf{w}$ is $M_RN \times 1$. Lets break down each one now:

  • $\mathbf{y}$: the received $N$ symbols for each $M_R$ antenna.
  • $\mathbf{H}$: the channel matrix which contains a gain between each of the $M_T$ transmit antennas and the $M_R$ receive antennas. There are $(N+N_{CP})$ symbols being transmitted (symbols + length of cyclic prefix) and $N$ being received.
  • $\mathbf{x}$: transmitted $(N+N_{CP})$ symbols on each of the $M_T$ transmit antennas
  • $\mathbf{w}$: the receiver noise on each of the $N$ subcarriers and $M_R$ receive antennas

Now, you apply the channel by just using this equation. Matrix multiplies, no need to do filter in MATLAB in my opinion.

  • $\begingroup$ I have used chan = rayleighchan(ts,fd,tau,pdb) for H, so i can't use matrix multiplication: chan*x $\endgroup$ – Anna Koroleva Nov 21 at 17:36
  • $\begingroup$ You must call rayleighchan a bunch of times then to fill in the matrix $\mathbf{H}$? $\endgroup$ – Engineer Nov 21 at 19:01
  • $\begingroup$ If that is the case, the object that MATLAB returns from rayleighchan has a field called PathGains, and that is what you should populate $\mathbf{H}$ with. After that, you may use the approach in the answer. $\endgroup$ – Engineer Nov 21 at 19:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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