minn算法代码

算法原理

训练序列结构 T=[B B -B -B],其中B表示由长度为N/4的复伪随机序列PN,ifft变换得到的符号序列


(原文解释):B represent samples of length L=N/4 genereated by N/4 point IFFT of \(N_u/4\) length modulated data of a PN sequence.也就是说B是一个长度为N/4的序列,其通过对一个PN序列进行编码后,通过IFFT获得


\(\bigstar\)minn:为了消除Schmidl算法出现的平顶影响,minn等人改变了训练队列的结构,并重新设计了一种新的同步度量函数,虽然成功消除了schmidl算法的平顶效应,使得同步自相关峰变得尖锐,提高了定时同步估计的精度和可靠性,但是该向相关峰还不够尖锐,而且在同步度量函数曲线主峰两边出现了多个副峰,在信道环境恶劣的条件下,也即低信噪比条件下,定时同步估计将受到较大的影响。

参考文献
Minn H ,Zeng M,BHARGAVA V K.On timing offser estimation for OFDM systems[J].IEEE Commun.Lett.2000,4(7):242-244.

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

\[P(d)=\sum_{k=0}^{1}\sum_{m=0}^{N/4 -1}r^{*}(d+m+\frac{Nk}{2}) r(d+m+\frac{N}{4} + \frac{Nk}{2})\]

\[R(d)=\sum_{k=0}^{1}\sum_{m=0}^{N/4-1}\left | r(d+m+\frac{N}{4} + \frac{Nk}{2}) \right |^{2}\]

所求得的d对应的是训练序列(不包含循环前缀)的开始位置。

%********************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 = 12%   m2 = size(X,2)           returns  m2 = 3
%close all;
clear all;
clc;
%参数定义
N=256;       %FFT/IFFT 变换的点数或者子载波个数(Nu=N)
Ng=N/8;      %循环前缀的长度 (保护间隔的长度)
Ns=Ng+N;     %包括循环前缀的符号长度 %************利用查表法生成复随机序列**********************
QAMTable=[7+7i,-7+7i,-7-7i,7-7i];
buf=QAMTable(randi([0,3],N/2,1)+1); %加1是为了下标可能是0不合法%*************在奇数子载波的位置插入零*********************zj:是偶数吧?
x=zeros(N/2,1);
index = 1;
for n=1:2:N/2 x(n)=buf(index); index=index+1;
end; %**************利用IFFT变换生成Schmidl训练符号***************
sch = ifft(x);   %[A A]的形式
sch2=[sch;(-1).*sch];%*****************添加一个空符号以及一个后缀符号*************
src = QAMTable(randi([0,3],N,1)+1).';
sym = ifft(src);
sig =[zeros(N,1) sch2 sym]; %**********************添加循环前缀*************************
tx =[sig(N - Ng +1:N,:);sig]; %***********************经过信道***************************
recv = reshape(tx,1,size(tx,1)*size(tx,2)); %size的1表示行,2表示列,从%前向后数,超过了为1
%recv1 = awgn(recv,1,'measured');
%recv2 = awgn(recv,5,'measured');
%recv3 = awgn(recv,10,'measured');
%*****************计算符号定时*****************************
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*Nsfor k=1:2for m=0:1:N/4-1  P(d-Ns/2) = P(d-Ns/2) + conj(recv(d+m+(k-1)*N/2))*recv(d+N/4+(k-1)*N/2+m);  R(d-Ns/2) = R(d-Ns/2) + power(abs(recv(d+N/4+(k-1)*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
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); [a b]=max(M)
%**********************绘图******************************
figure('Color','w');
d=1:1:400;
figure(1);
plot(d,M(d));
grid on;
axis([0,400,0,1.1]);
title('minn algorithm');
xlabel('Time (sample)');
ylabel('Timing Metric');
%legend('no noise','SNR=1dB','SNR=5dB','SNR=10dB');
hold on;

转载于:https://www.cnblogs.com/jiandahao/p/9310943.html

OFDM同步算法之Minn算法相关推荐

  1. OFDM同步算法之Park算法

    park算法代码 训练序列结构 T=[\(C\) \(D\) \(C^{*}\) \(D^{*}\)],其中C表示由长度为N/4的复伪随机序列PN,ifft变换得到的符号序列 \(C(n) = D(N ...

  2. matlab仿真ofdm的ccdf,OFDM系统峰均比降低算法的研究+Matlab仿真(6)

    OFDM系统峰均比降低算法的研究+Matlab仿真(6) 时间:2016-11-28 22:19来源:毕业论文 2.2.5 自适应技术 自适应调制技术在OFDM系统中也占有非常重要的地位,其调制思想是 ...

  3. MIMO OFDM 系统常用信号检测算法

    ​ 新年都未有芳华, 二月初惊见草芽. 白雪却嫌春色晚, 故穿庭树作飞花. --韩愈 1. 前言 MIMO的空分复用技术可以使得系统在系统带宽和发射带宽不变的情况下容易地获得空间分集增益和信道的容量增 ...

  4. 基于伪随机序列共轭相乘的OFDM通信系统频偏补偿算法matlab仿真

    目录 一.理论基础 二.核心程序 三.仿真结论 一.理论基础 OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM ...

  5. OFDM通信系统PAPR抑制算法matlab仿真,对比SLM算法和PTS算法

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 OFDM(Orthogonal Frequency Division Multiplexing)正交频分复用技术,OFDM是一 ...

  6. 【PTS】OFDM中PAPR抑制算法PTS的matlab仿真

    1.软件版本 matlab2017b 2.本算法理论知识 在PTS全局搜索的时候,预先设定好一个门限值,如果搜索到 那么就直接退出搜索. 所以使用这个方法,可以进行快速的搜索,而不用像全局搜索那样,全 ...

  7. 基于PSO优化的OFDM系统PAPR抑制PTS算法MATLAB仿真

    目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 4.完整MATLAB 1.算法仿真效果 matlab2022a仿真结果如下: 2.MATLAB核心程序 .......... ...

  8. m基于PTS+TR的OFDM系统PAPR联合抑制算法matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 部分传输序列(Partial Transmit Sequence , PTS)由于其不受载波 ...

  9. 手把手教你架构3d游戏引擎pdf_游戏开发中的算法

    游戏技术这条路,可深可浅.你可以满足于完成GamePlay玩法层面的东西,你也可以满足于架构和框架设计层面的东西,你也可以醉心于了解某一游戏引擎带来的掌控感.但是,我们不该止步于此,止步与目前所见或所 ...

最新文章

  1. 百度智能云开物再收“一个奖状”
  2. 边框颜色为 tintColor 的 UIButton
  3. java resultset转json_ResultSet到JSON的最有效转换?
  4. (11)Verilog HDL变量:wire型
  5. 95-36-210-ChannelHandler-系统Channel-TimeoutHandler
  6. 笔试题:在整数数组中找到重复的数字
  7. Cadence Allegro 差分走线单根走的方法图文教程
  8. 工业软件的特点和设计方法
  9. 无限联盟服务器,无限乱斗正式上线,全服服务器被网友挤爆!LOL重回巅峰状态!...
  10. DNS各地延迟排行榜
  11. 物联网技术练习题(一)——单选题与判断题
  12. LSVGlobal Mapper应用----地形下载
  13. 注销公司都需要注销哪些方面?
  14. 不用手机的群控,什么原理
  15. 几种基本的数字正则表达式
  16. arm体系结构总结笔记10-arm汇编
  17. bbp公式求圆周率、python_【并行计算】六种方法计算圆周率
  18. private、fileprivate、public、open
  19. 成组链接法 恩赐解脱
  20. 微信小程序装修解决方案ppt_微信小程序开发教程.ppt

热门文章

  1. MIPS中的异常处理和系统调用【转】
  2. openSuse 13.1 的触摸板,回来了
  3. Java线程状态及 wait、sleep、join、interrupt、yield等的区别
  4. Unity3D架构之PureMVC
  5. 判断为空时候,如何判断一堆空格为空?
  6. 201521123079 《Java程序设计》第1周学习总结
  7. arm64的适配问题,这次真醉了
  8. java中需要用equals来判断两个字符串值是否相等
  9. Python自然语言处理学习笔记(7):1.5 自动理解自然语言
  10. OkHttp 使用基础