Channel Estimation from Data 1. Recall Impulse Response Identification from Correlation 2. Estimation of Time Spread and Doppler Shift 3. Simulink/Matlab Example 4. Stanford University Interim (SUI) Channel Models Estimation of Channel Characteristics from Input - Output data. 1. For Linear Time Invariant (LTI) systems: x[n] y[n] y[n] h[n]* x[n] h[n] h[ ]x[n ] Excite the system with white noise and unit variance Rxx[m] E x[n]x*[n m] [m] m and compute the crosscorrelation between input and output Ryx [m] E y[n]x*[n m] h[ ]E x[ n ] x [ n m] * h[ ] [ m ] h[ m] In matlab: y[n] x[n] ? 1. Get data (same length for simplicity): y x 2. Compute crosscorrelation between input and output: h=xcorr(x,y); If x[n] is white noise, h[n] is the impulse response. 2. For a Linear Time Varying Channel: Multipath Rayleigh Fading Channel x[n] y[n] Rayleigh Fading y[n] h[n, ]x[n ] h[n, ] The impulse response changes with time Goal: estimate time and frequency spread. Known: 1. Sampling frequency Fs 2. Upper bound on max Doppler Frequency FD max 1. Collect Data and partition in blocks of length N : n0 nN n 2N x y N Ts 1/ FDMAX n N Fs FD max n NB N Within each block the channel is almost time invariant X=reshape(x,N,length(x)/N); Y=reshape(x,N,length(y)/N); X,Y = [ NB ] N 2. Estimate impulse response in each block : h(:,i)=xcorr(Y(:,i),X(:,i))/N; h = [ ] 2N 1 NB Take the transpose: h’ = [ ] Each row is an impulse response taken at different times NB 2N 1 plot((-N+1:N-1)/Fs, abs(h(:,i))); N / Fs N / Fs 3. Compute Power Spectrum on each column of h’ (each row of h) , to determine time variability of the channel (If the channel is Time Invariant all columns of h are the same): time time t n NTs h’ = Ts [ ] NB 2N 1 H=fft(h’); S=H.*conj(H); Fs F k N NB Freq. S = time [ Ts 2N 1 ] NB 4. Take the sum over rows for Doppler Spread and sum over columns for Time Spread (fftshift each vector to have “zero” term (sec or Hz) in the middle Sf St f k t m / Fs Time Resolution: ( Fs / N ) NB t 1/ FS Frequency Resolution: F FS 1 Hz N N B totaldata length(sec) Therefore if we want to a resolution in the doppler spread of (say) 1Hz, we need to collect at least 1 sec of data. Example: % channel Fs=10^6; P=[0,-2,-3]; T=[0, 10, 15]*10^(-6); fd=70; Bernoulli Binary Rectangular QAM Bernoulli Binary Generator Rectangular QAM Modulator Baseband % sampling freq. In Hz % attenuations in dB % time delays in sec %doppler shift in Hz Rayleigh Fading y To Workspace1 Multipath Rayleigh Fading Channel x To Workspace test_scattering.mdl Channel Output (Magnitude) with a QPSK Transmitted Signal: 3 2.5 2 1.5 1 0.5 0 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 t (sec) sum(S)/NB; sum of each column -3 9 Time Spread x 10 8 7 Time Spread 6 5 4 3 sum(S’)/(2N-1); ave. of each row 2 -3 1 0 -1.5 1.2 -1 -0.5 0 0.5 time (sec) Frequency Spread x 10 1 -4 x 10 1 15 sec 0.8 Frequency Spread 0.6 0.4 0.2 0 -1000 -800 -600 -400 -200 0 200 frequency (Hz) 70 Hz 400 70 Hz 600 800 1000