DSPRelated.com
Forums

Modeling OFDM multipath channel in Matlab

Started by dani...@yahoo.com May 5, 2008
Dear all,

I am a newbie and I have a basic question which I would like to get clarified.

My intention is to simulate 802.11a which is based in OFDM. From the 802.11a standard I know that:
-Number of Subcarriers, Nsc = 64
-Sampling Rate, fs = 20e6 sample/sec
-BW = 20MHz
-Carrier Frequency, fc = 5.25Ghz

Now imagine that I have the following multipath channel:
taps_delay = [0 10ns 20ns 30ns 40ns]
taps_amp = [0.4 0.2 0.03 0.05 0.02]

What I want to do is to find the frequency response of the channel at each of the 802.11a OFDM subcarriers. Could someone please asses if the following steps are correct and correct them otherwise?

1- I should create the baseband impulse response of the channel by creating the following vector:
h_bb = tamp_amp .* exp(-j*2*pi*fc*taps_delay)

2- To obtain the frequency response of the channel I use the FFT with at least the same number of points than subcarriers has the OFM modulation:

h_f = fft(h_bb, Nsc)

3- Now if I want to plot the frequency response of the channel I would do:

f_hz = fs*(0:Nsc-1)/Nsc
plot(f, h_f.*conj(h_f))

Here I am not sure whether to convert the discrete frequency obtained from the fft to Hz I have to normalize by the sampling frequency in the receiver, in this case fs = 20e6.

Thanks for your help.

Best Regards

Daniel
Well in matlab you have a function

ch=rayleighchan(1/(br),100,[0,10e-07,40e-07],[0,-10,-3]);

this creates a multi-path rayleigh channel. br is the bit-rate, 100 is the doppler freq, next is the path delay times ( showing 3 paths) and last is the corresponding path gains.

corrupted_signal=filter(ofdm_signal,ch);

this will pass ur ofdm signal thru the channel we have created (ch)

corrupted_signal_noise=awgn(corrupted_signal,20,'measured');

this will add awgn to ur corrupted signal 20 is the SNR. For finding the impulse response just give ones to all the sub-carriers, and you will have the impulse response at all the sub-carrier frequencies
Hi,

Thanks for you answer. I think the functions you mention are only available in the communications toolbox, and I don't have it. However I am not much interested in the functions itself but on understanding the correct way to do it.

The channel I was mentioning comes from a channel model that has been standardized by the 802.11n group. They set up every tap at excess delays multiples of 10ns.

My problem comes because I can do the fft of that channel impulse response but then I do not know how to properly scale those fft samples in order to represent the real frequency response. The reason is that the BW in a 11n signal is 20Mhz, so do the 64 samples that I obtain from the fft represent 20Mhz of frequency response, or they represent 100Mhz because the channel it's been sampled at 1/10ns = 100Mhz ?

Can you help me clarify that question?

Regards

Daniel

Dear all,
>
>I am a newbie and I have a basic question which I would like to get clarified.
>
>My intention is to simulate 802.11a which is based in OFDM. From the 802.11a standard I know that:
>-Number of Subcarriers, Nsc = 64
>-Sampling Rate, fs = 20e6 sample/sec
>-BW = 20MHz
>-Carrier Frequency, fc = 5.25Ghz
>
>Now imagine that I have the following multipath channel:
>taps_delay = [0 10ns 20ns 30ns 40ns]
>taps_amp = [0.4 0.2 0.03 0.05 0.02]
>
>What I want to do is to find the frequency response of the channel at each of the 802.11a OFDM subcarriers. Could someone please asses if the following steps are correct and correct them otherwise?
>
>1- I should create the baseband impulse response of the channel by creating the following vector:
>h_bb = tamp_amp .* exp(-j*2*pi*fc*taps_delay)
>
>2- To obtain the frequency response of the channel I use the FFT with at least the same number of points than subcarriers has the OFM modulation:
>
>h_f = fft(h_bb, Nsc)
>
>3- Now if I want to plot the frequency response of the channel I would do:
>
>f_hz = fs*(0:Nsc-1)/Nsc
>plot(f, h_f.*conj(h_f))
>
>Here I am not sure whether to convert the discrete frequency obtained from the fft to Hz I have to normalize by the sampling frequency in the receiver, in this case fs = 20e6.
>
>Thanks for your help.
>
>Best Regards
>
>Daniel
If you are using baseband signal, i.e. you are not upconverting to RF carrier frequency at the txr, then at the rxr you would consider the 20Mhz frequency. Usually channel estimation has to be done for faithful signal recovery. The channel coefficients found in estimation, then give you the corresponding weights, which are multiplied with corresponding subcarriers.