Park algorithm Code
Training sequence structure t=[\ (c\) \ (d\) \ (c^{*}\) \ (d^{*}\)], where C represents a sequence of symbols obtained by N/4 transformation of a complex pseudo-random sequence of length Pn,ifft
\ (C (n) = D (n/4-n) \)
Original explanation: The training symbol is produced by transmitting
A real-valued PN sequence on the even frequencies, while zeros
is used on the odd frequencies. This means, that one of the
Points of a BPSK constellation is transmitted on each even fre-quency.
---
\ (\bigstar\) Park: In order to further solve the shortcomings of the Minn algorithm, park and other people in the analysis of the SCHMIDL algorithm and Minn algorithm timing effect of the reasons for the poor, redesigned the new preamble training sequence structure, and gave a new timing synchronization metric function, There is a more sharp autocorrelation peak in the time measurement function curve of the algorithm, it is obvious that the algorithm eliminates the flat-top effect caused by the existence of cyclic prefixes in the schmidl algorithm, and obtains more sharp autocorrelation peaks than the Minn algorithm, which improves the accuracy and certainty of timing. However, in the case of large noise disturbance, the algorithm still has a large timing synchronization estimation error, and the stability of the synchronization estimation is still poor.
Reference documents
Park B,choen H, KO E, et al. A novel timing estimation method for OFDM Systems[j]. IEEE commun.leet.2003,7 (5): 53-55.
\[m (d) =\frac{\left | P (d) \right |} {r^{2} (d)}^{2}\]
\[p (d) =\sum_{m=0}^{n/2 -1}r (d-m) r (d+m) \]
\[r (d) =\sum_{m=0}^{n/2-1}\left | R (d+m) \right |^{2}\]
Actually on the implementation of the algorithm
\ (P (d) =\sum_{m=0}^{n/2-1}r (d-1-m) r (d+m) \)
This is because the number of sequences is usually even, not odd, and does not occur
The case of \ (R (d) r (d) \) .
The obtained D corresponds to the middle position of the training sequence (which does not contain a cyclic prefix).
Simulation verifies that if the data sent is random [1+1i,-1+1i,-1-1i,1-1i], and the training queue is obtained by IFFT by the PN sequence (in lieu of a random sequence), the result is closest to the original paper. And if the maximum value of the PN sequence at this time is 7, it is easier to see the same results as the original paper author, with two sub-peaks
Clear all; CLC % parameter definition n=256; %fft/ifft number of points or sub-carriers (nu=n) NG=N/8; The length of the% loop prefix (the length of the protection interval) ns=ng+n; % includes the symbol length of the cyclic prefix snr=25;%************ using the table-checking method to generate complex random sequence ********************** qamtable=[7+7i,-7+7i,-7-7i,7-7i]; Buf=qamtable (Randi ([0,3],n/2,1) +1); % plus 1 is for subscript may be 0 illegal% produced train pn=rand (1,N/2) >0.5; Pn=reshape (pn,n/4,2); [Ich,qch]=qpskmod (pn,n/4,1,2); KMOD=SQRT (2); X=ich*kmod+qch*kmod*i; Y=ifft (x); Y=reshape (y,n/4,1); Train=[y;y (n/4:-1:1,1); Conj (y); Conj (Y (n/4:-1:1,1))]; %***************** adds an empty symbol and a suffix symbol ************* src = qamtable (Randi ([0,3],n,1) +1). sym = Ifft (src); Sig =[zeros (n,1) train sym]; %sig =[sym train sym]; %********************** Add loop prefix ************************* TX =[sig (N-ng +1:n,:); sig];%tx = [Sig (1,n-ng+1:n) SIG];%***** Via channel *************************** recv = Reshape (tx,1,size (tx,1) *size (tx,2)); %size 1 represents rows, 2 represents columns, number of backwards from%, exceeds for 1%recv = TX;%RECV1 = Awgn (recv,1, ' measured '); %recv2 = AWGN (recv,5, ' measured '); %recv3 = AWGN (recv,10, ' measured ');%recv = AWGN (Recv,snr);%***************** Calculating Symbol Timing ***************************** P=zeros (1,2*NS); R=zeros (1,2*ns); For d = Ns/2+1:1:2*ns for M=0:N/2 p (D-NS/2) = P (D-NS/2) + (recv (d+m)) *recv (D-1-M); R (D-NS/2) = R (D-NS/2) + Power (ABS (recv (D+M)), 2); End end% for d = ns/2+1:1:2*ns% for m=0:1: (n/2-1)% P (D-NS/2) = P (D-NS/2) + recv (d-m) *recv (d+m); % r (D-NS/2) = R (D-NS/2) + Power (ABS (recv (D+M)), 2); % End% End M=power (ABS (P), 2)./power (ABS (R), 2); [A B]=max (M); b+ns/2%********************** drawing ****************************** figure (' Color ', ' W '); d=1:1:400; Figure (1);p lot (D,m (D+N/2)); Grid on; Axis ([0,400,0,1.1]); Title (' Park algorithm '); Xlabel (' Time (sample) '); Ylabel (' Timing Metric '); %legend (' No noise ', ' snr=1db ', ' snr=5db ', ' snr=10db ');)); Hold on;
Park algorithm of OFDM synchronization algorithm