Click to Visit Homepage : zzyzz.top


CCS - Multicarrier Modulation and OFDM - Demodulation of OFDM Signals

 

Demodulation of OFDM Signals

As we have observed above, the modulator in an OFDM system can be implemented by
computing the IDFT. The demodulator that recovers the information
symbols {Xk} from the received signal samples is implemented by computing the DFT.
The detector is described below. When the number of subcarriers is
large, say K > 30, the modulator and demodulator in the OFDM system are efficiently
implemented by using the fast Fourier transform algorithm (FFT algorithm) to compute the DFT and IDFT.

 

 

 

Matlab Coding

 

 

 

 

 1 % MATLAB script for Illustrative Problem 8.3.
 2 echo on
 3 clear;
 4 K=10;N=2*K;T=100;
 5 variance=1 or 4;
 6 noise=sqrt(variance)*randn(1,N);
 7 a=rand(1,36);
 8 a=sign(a-0.5);
 9 b=reshape(a,9,4);
10 % Generate the 16QAM points 11 XXX=2*b(:,1)+b(:,2)+j*(2*b(:,3)+b(:,4)); 12 XX=XXX'; 13 X=[0 XX 0 conj(XX(9:-1:1))]; 14 x=zeros(1,N); 15 for n=0:N-1 16 for k=0:N-1 17 x(n+1)=x(n+1)+1/sqrt(N)*X(k+1)*exp(j*2*pi*n*k/N); 18 echo off 19 end 20 end 21 echo on 22 r=x+noise; 23 Y=zeros(1,10); 24 for k=1:9 25 for n=0:N-1 26 Y(1,k+1)=Y(1,k+1)+1/sqrt(N)*r(n+1)*exp(-j*2*pi*k*n/N); 27 echo off 28 end 29 end 30 echo on
31 % Detect the nearest neighbor in the 16QAM constellation 32 for k=1:9 33 if real(Y(1,k+1))>0 34 if real(Y(1,k+1))>2 35 Z(1,k+1)=3; 36 else 37 Z(1,k+1)=1; 38 end 39 else 40 if real(Y(1,k+1))<-2 41 Z(1,k+1)=-3; 42 else 43 Z(1,k+1)=-1; 44 end 45 end 46 if imag(Y(1,k+1))>0 47 if imag(Y(1,k+1))>2 48 Z(1,k+1)=Z(1,k+1)+3*j; 49 else 50 Z(1,k+1)=Z(1,k+1)+j; 51 end 52 else 53 if imag(Y(1,k+1))<-2 54 Z(1,k+1)=Z(1,k+1)-3*j; 55 else 56 Z(1,k+1)=Z(1,k+1)-j; 57 end 58 end 59 echo off 60 end 61 echo on 62 error=max(size(find(Z(1,2:10)-X(1,2:10))));


Result

>> variance

variance =

4

>> XX

XX =

Columns 1 through 6

-3.0000 + 1.0000i -1.0000 + 3.0000i 1.0000 + 1.0000i -1.0000 + 1.0000i -1.0000 + 1.0000i -3.0000 - 3.0000i

Columns 7 through 9

-1.0000 + 1.0000i 1.0000 - 3.0000i -1.0000 + 3.0000i

>> Y

Y =

Columns 1 through 6

0.0000 + 0.0000i -4.1333 + 1.2388i -2.4657 + 3.6617i -0.0808 + 3.1247i -0.8439 + 0.0408i -1.1949 + 2.4617i

Columns 7 through 10

-4.4393 - 4.6753i -3.7024 + 1.2707i 3.0362 - 1.2516i -3.7607 + 2.1932i

>> Z

Z =

Columns 1 through 6

0.0000 + 0.0000i -3.0000 + 1.0000i -3.0000 + 3.0000i -1.0000 + 3.0000i -1.0000 + 1.0000i -1.0000 + 3.0000i

Columns 7 through 10

-3.0000 - 3.0000i -3.0000 + 1.0000i 3.0000 - 1.0000i -3.0000 + 3.0000i

 

>> variance

variance =

1

>> XX

XX =

Columns 1 through 6

1.0000 + 1.0000i -1.0000 - 3.0000i 3.0000 + 1.0000i 3.0000 - 3.0000i -3.0000 - 3.0000i 3.0000 - 1.0000i

Columns 7 through 9

1.0000 + 1.0000i -3.0000 - 1.0000i -1.0000 + 1.0000i

>> Y

Y =

Columns 1 through 6

0.0000 + 0.0000i 1.2252 + 1.8573i -1.0852 - 3.9203i 4.2954 - 0.5971i 3.0646 - 2.2739i -1.8358 - 2.4102i

Columns 7 through 10

3.5648 - 0.1429i 2.1387 + 1.1687i -2.4536 + 0.0122i 0.4438 + 1.5946i

>> Z

Z =

Columns 1 through 6

0.0000 + 0.0000i 1.0000 + 1.0000i -1.0000 - 3.0000i 3.0000 - 1.0000i 3.0000 - 3.0000i -1.0000 - 3.0000i

Columns 7 through 10

3.0000 - 1.0000i 3.0000 + 1.0000i -3.0000 + 1.0000i 1.0000 + 1.0000i

 

Reference,

  1. <<Contemporary Communication System using MATLAB>> - John G. Proakis

posted @ 2020-09-21 22:42  zzYzz  阅读(261)  评论(0编辑  收藏  举报


Click to Visit Homepage : zzyzz.top