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
Modeling OFDM multipath channel in Matlab
Started by ●May 5, 2008
Reply by ●May 6, 20082008-05-06
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
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
Reply by ●May 7, 20082008-05-07
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
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
Reply by ●May 8, 20082008-05-08
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.