Schmidl algorithm of OFDM synchronization algorithm

Source: Internet
Author: User
Tags abs

Schmidl Algorithm Code

Algorithm principle

Training sequence Structure T=[a A], where a is a representation of a complex pseudo random sequence PN, a sequence of symbols obtained by N/2 point Ifft transformation

\[m (d) =\frac{\left | P (d) \right |} {r^{2} (d)}^{2}\]

\[p (d) =\sum_{m=0}^{l-1}r^{*} (d+m) r (d+m+l) \]

\[r (d) =\sum_{m=0}^{l-1}\left | R (d+m+l) \right |^{2}\]

\[l=n/2\]

The obtained D corresponds to the starting position of the training sequence (which does not contain a loop prefix).

The ★SCHMIDL:SCHMIDL algorithm uses a preamble of the identical sequence on both ends of the time domain to synchronize the timing, but the synchronization effect is not good, and the synchronous metric function curve has a flat top, which makes the estimation of timing synchronization to be biased and uncertain.

references
schmidl T m,cox D c.robust frequency and timing synchronization for OFDM[J]. IEEE trans.commun.,1997,45:1613-1612.

%********************schmidl algorithm*******************%example:% If% X = rand (2,3,4); % then% d = Size (X) returns d = [2 3 4]% [M1,M2,M3,M4] = size (X) returns m1 = 2, m2 = 3, M3 =  4, m4 = 1% [M,n] = size (X) returns m = 2, n =% m2 = size (x,2) returns m2 = 3close all; 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%************ 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%************* in the position of an odd subcarrier insert 0 *********************zj: Is it an even number? X=zeros (n,1); index = 1;      For n=1:2:n x (n) =buf (index); index=index+1;  End   %************** uses Ifft transform to generate Schmidl training symbols *************** sch = Ifft (x); %[a A] form%***************** add an empty symbol along with a suffix symbol ************* src = qamtable (Randi ([0,3],n,1) +1). sym = Ifft (src);  Sig =[zeros (n,1) Sch sym]; %********************** Add loop prefix *****************Tx =[sig (N-ng +1:n,:); sig]; %*********************** through channel *************************** recv = Reshape (tx,1,size (tx,1) *size (tx,2)); %size 1 represents rows, 2 represents columns, number of backwards from%, and exceeds for 1%RECV1 = AWGN (recv,1, ' measured '); %recv2 = AWGN (recv,5, ' measured '); %recv3 = AWGN (recv,10, ' measured '); %***************** Calculating Symbol Timing ***************************** P=zeros (1,2*NS); R=zeros (1,2*ns); %p1=zeros (1,2*ns); %r1=zeros (1,2*ns); P2=zeros (1,2*ns); R2=zeros (1,2*ns); %p3=zeros (1,2*ns); %r3=zeros (1,2*ns);          For d = Ns/2+1:1:2*ns for m=0:1:n/2-1 p (D-NS/2) = P (D-NS/2) + Conj (recv (d+m)) *recv (d+n/2+m);         R (D-NS/2) = R (D-NS/2) + Power (ABS (recv (D+N/2+M)), 2);          %P1 (D-NS/2) = P1 (D-NS/2) + Conj (RECV1 (d+m)) *recv1 (d+n/2+m);         %R1 (D-NS/2) = R1 (D-NS/2) + Power (ABS (RECV1 (D+N/2+M)), 2);          %P2 (D-NS/2) = P2 (D-NS/2) + Conj (Recv2 (d+m)) *recv2 (d+n/2+m);        %R2 (D-NS/2) = R2 (D-NS/2) + Power (ABS (RECV2 (D+N/2+M)), 2);         % P3 (D-NS/2) = P3 (D-NS/2) + Conj (Recv3 (d+m)) *recv3 (d+n/2+m); % R3 (D-NS/2) = R3(D-NS/2) + Power (ABS (RECV3 (D+N/2+M)), 2); End End M=power (ABS (P), 2)./power (ABS (R), 2); %m1=power (ABS (P1), 2)./power (ABS (R1), 2); %m2=power (ABS (P2), 2)./power (ABS (R2), 2);  %m3=power (ABS (P3), 2)./power (ABS (R3), 2); %********************** Drawing ****************************** figure (' Color ', ' W '); d=1:1:400; Figure (1);p lot (D,m (d)); Grid on; Axis ([0,400,0,1.1]); Title (' Schmidl algorithm '); Xlabel (' Time (sample) '); Ylabel (' Timing Metric '); %legend (' No noise ', ' snr=1db ', ' snr=5db ', ' snr=10db ');

Schmidl algorithm of OFDM synchronization algorithm

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.