Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Caleb Kemere
Stanford University
June, 2001
Results
The results are shown in Figures 2 and 3.
Figure 2 shows the relationship between bit-
error rate (BER) and the number of pilots in the
OFDM system. For this simulation, 256
correlated channels with 64 subcarriers in
each channel were generated for each
simulation iteration, and 10 iterations were
performed for each pilot configuration. The
1
Figure 1: Example Channel Model
BER vs. Number of Pilots maximum number of bits to two, a
typical non-adaptive system with
0
10
Adaptive Loading
4−QAM some cutoff-power is simulated. The
performance is essentially the same,
the artifact with 16 pilots is
−1
10
References
10
−1
1. T. Rappaport, Wireless
Communications, Upper Saddle
River, NJ, Prentice Hall, 1996.
10
−2
2. D. Young and N. Beaulieu, “The
Generation of Correlated
Rayleigh Random Variates by
Inverse Discrete Fourier
BER
−3
10
Transform,” IEEE Trans. Comm.,
vol. 48, pp. 1114-1127, July 200.
10
−4
3. C. Kemere, “Wideband Multiuser
OFDM: Implementation and
Adaptive Loading Capacity,” EE360 Course Project,
10
−5 4−QAM
No Pilot
June 2001, Stanford University.
4. J. Cioffi, EE379a Course Reader,
Stanford University, 2001.
10
−6
5. Y. Li, “Pilot-Symbol-Aided
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Sampled Doppler Frequency Channel Estimation for OFDM in
Figure 3: BER vs. Doppler Frequency Wireless Systems,” IEEE Trans. on
Vehicular Technology, vol. 49,
pp. 1207-1215, July 2000.
2
Appendix: Source Code:
ChanLength = 1024;
dopvec = [0.001, 0.005, 0.01, 0.05, 0.1];
Pmax = 40;
N = 32;
N_pilots = 2;
p = 0:ceil(N/N_pilots):(N-1);
mu = 0.01;
N_iter = 50;
for m = 1:N
t = zeros(N,1);
t(m) = 1;
D(:,m) = fft(t);
end
Pcons(1) = 1;
for n = 2:length(SNRreq)
[t1,t2] = qaskenco(2^(n-1));
Pcons(n) = var(t1+j*t2,1);
end
Preqcons = Preq./Pcons;
sf = sum(expProfile.^2);
for dop = 1:length(dopvec)
Doppler = dopvec(dop);
for k = 1:10
% Generate channel
for m = 1:length(expProfile)
H(m,:) = ray(ChanLength,Doppler,1).*exp(rand(1)*j*2*pi);
H(m,:) = expProfile(m).*H(m,:);
H(m,:) = H(m,:)./sqrt(2*sf);
end
Hf = fft(H,N); %(64x1024)
% Encode Data
c = zeros(N,ChanLength);
h_est(1:4,1) = H(1:4,1);
h = [h_est; zeros(N-length(h_est),1)];
Hest = fft(h,N);
tic
for m = 1:ChanLength
p = mod(p+1,N-1);
3
else
d(n,m) = randint(1,1,2^c(n,m));
[t1,t2] = qaskenco(d(n,m),2^c(n,m));
x(n,m) = (t1 + j*t2) * sqrt(Preqcons(c(n,m)+1)) / abs(Hf(n,m));
chan_x(n,m) = x(n,m)*Hf(n,m);
end
end
%if (sum(c(:,m)) == 0)
%fprintf('No bits transmitted.\n');
%else
%fprintf('%d bits transmitted.\n',sum(c(:,m)));
%end