# How to use “Filter” matlab function to apply channel to signal?

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?

EDIT 1:

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?

• 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? – Engineer Nov 19 at 18:56
• 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? – MBaz Nov 19 at 20:26
• @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) – Anna Koroleva Nov 20 at 7:09
• @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. – Anna Koroleva Nov 20 at 7:12
• @MBaz I added more details to explain a question – 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.

• I have used chan = rayleighchan(ts,fd,tau,pdb) for H, so i can't use matrix multiplication: chan*x – Anna Koroleva Nov 21 at 17:36
• You must call rayleighchan a bunch of times then to fill in the matrix $\mathbf{H}$? – Engineer Nov 21 at 19:01
• 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. – Engineer Nov 21 at 19:10