《ofdm系统中基于导频的信道估计算法的性能分析.doc》由会员分享,可免费在线阅读全文,更多与《ofdm系统中基于导频的信道估计算法的性能分析》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。

1、dd_noise(sgma,trans_s)[n,nl]=size(trans_s);fork=:nlform=:n%输入随机噪声noise=normrnd(,sgma)+normrnd(,sgma)*sqrt();tran_(m,k)=trans_s(m,k)+noise;endendx=tran_;%除去循环前缀子程序functionx=cut_insert_c(num,matrix)%num是循环前缀的长度[m,n]=size(matrix);fori=:(mnum)forj=:ncut_c_(i,j)=matrix(num+i,j);endendx=cut_c_;%分离导频信号与数据信号子程序function[x,y]=searate_ilot(interval,count,matrix)[m,n]=size(matrix);i=;f。

2、dinutqam_=qam_out;%插入导频信号子程序function[x,y]=insert_ilot(N,NL,interval,ilot,matrix_)ilot_=ilot;%导频信号的二进制值ilot_=qam(ilot_);%导频信号的qam值matrix_=matrix_';%非共轭转置q=;%q表示转置后的行数即NLw=;count=;%插入导频信号的次数whileqNLreturnendendendy=count;%插入循环前缀子程序functionx=insert_c(num,matrix)[m,n]=size(matrix);fori=:num%循环前缀CP的长度forj=:ninsert_c_(i,j)=matrix((mnum+i),j);endendfori=:mforj=:ninsert_c_((i+num),。

3、_lt_shift(f)));endoutut_sig_serial=zeros(,chann_l);forf=:numoutut_sig_serial=outut_sig_serial+ray_chan(f,:)*delay_sig(f,:);endfork=:loutut_sig(:,k)=outut_sig_serial(((k)*nl+):k*nl)';end%生成信道自相关函数子程序functionhh=Rhhh(N,L);RH=zeros(N);hh=zeros(N);fork=:Nforf=:Nifk==fRH(k,f)=L;elseRH(k,f)=(ex(j**i*(kf)N))(*i*j*L*(kf)N);endendendaa=DFT(N);hh=inv(aa)*RH*inv(aa');%输入噪声子程序functionx=。

4、(db)')ylabel('误码率')text(,,'圆圈标记曲线为MMSE')text(,,'星号标记曲线为SVD')text(,,'菱形标记曲线为LS')gridon%产生二进制数据流子程序functionx=inut_b(N,NL)fori=:NLinut_=rand(,*N);%输入的二进制数据序列forj=:*Nifinut_(j)gtinut(i,j)=;elseinut(i,j)=;endendendx=inut;%将二进制数据流进行QAM调制子程序functioninutqam_=invert(N,NL,inut_)forj=:NLforn=:Nforic=:qam_inut(ic)=inut_(j,(n)*+ic);%qam的输入endqam_out(n,j)=qam(qam_inut);%每一列表示一个OFDM符号ende。

5、jy=[];elseifx==+*jy=[];elseifx==*jy=[];elseifx==*jy=[];end));fork=:numatts=^(*(var_ow(k)));ray_chan(k,:)=atts*rayleigh(,chann_l,t_interval,fmax)sqrt(total_ow);endfork=:linut_sig_serial(((k)*nl+):k*nl)=inut_sig(:,k)';enddelay_sig=zeros(num,chann_l);forf=:numift_shift(f)~=delay_sig(f,:t_shift(f))=zeros(,t_shift(f));enddelay_sig(f,(t_shift(f)+):chann_l)=inut_sig_serial(:(chann。

6、j)=matrix(i,j);endendx=insert_c_;%MonteCarlo方法生成正弦波叠加法需要的各参数值子程序function[f_i,c_i,theta_i]=arameter_classical(N_i,var,fmax)sigma=sqrt(var);un=rand(,N_i);f_i=fmax*sin(i*un);c_i=sigma*sqrt(N_i)*ones(size(un));theta_i=rand(,N_i)**i;%正弦叠加法生成瑞利过程functionray_chan=rayleigh(var_ower,sam_num,t_interval,fmax)%var_ower为该径平均功率单位db;%sam_num为离散信道采样数%t_interval为抽样时间间隔;%fmax为最大多普勒频移val_ow=^。

7、nl*l;ray_chan=zeros(num,chann_l);total_ow=sum(^(var_o=*j;end%QAM解调子程序functiony=de_qam(x)y=real(x);y=imag(x);if(ygt=)am(y)y=;elseif(y=)am(y)y=;elseif(ylt)y=;elsey=;endx=comlex(y,y);ifx==+jy=[];elseifx==jy=[];elseifx==+jy=[];elseifx==jy=[];elseifx==+jy=[];elseifx==+*jy=[];elseifx==jy=[];elseifx==*jy=[];elseifx==+*jy=[];elseifx==+jy=[];elseifx==jy=[];elseifx==*jy=[];elseifx==+。

8、dinutqam_=qam_out;%插入导频信号子程序function[x,y]=insert_ilot(N,NL,interval,ilot,matrix_)ilot_=ilot;%导频信号的二进制值ilot_=qam(ilot_);%导频信号的qam值matrix_=matrix_';%非共轭转置q=;%q表示转置后的行数即NLw=;count=;%插入导频信号的次数whileqNLreturnendendendy=count;%插入循环前缀子程序functionx=insert_c(num,matrix)[m,n]=size(matrix);fori=:num%循环前缀CP的长度forj=:ninsert_c_(i,j)=matrix((mnum+i),j);endendfori=:mforj=:ninsert_c_((i+num),。

9、var_ower);var_u=var_ower;gauss_u=zeros(,sam_num);gauss_u=zeros(,sam_num);N_i=;t=(:sam_num)*t_interval;[f_,c_,theta_]=arameter_classical(N_i,var_u,fmax);[f_,c_,theta_]=arameter_classical(N_i,var_u,fmax);fork=:N_igauss_u=gauss_u+c_(k)*cos(*i*f_(k)*t+theta_(k));gauss_u=gauss_u+c_(k)*cos(*i*f_(k)*t+theta_(k));endray_chan=sqrt(gauss_u^+gauss_u^);%多径信道子程序functionoutut_sig=multiat。

10、_channg(inut_sig,num,var_ow,delay,v,fc,t_interval,N,counter)%inut_sig,加了c后的输入信号矩阵,NL(N+c长度l);%num多径数;var_ow各径平均功率;delay各径延时,单位s;%v运动速率ms;fc为载频hz;%t_interval为离散信道抽样时间间隔,OFDM符号长度(子信道数N+c长度l);%outut_sig为经过多径信道的输出信号矢量fmax=v*fce+;%最大doler频移t_shift=floor(delayt_interval);t_delay=delayt_interval;theta_shift=*i*fc*delay;[nl,l]=size(inut_sig);outut_sig=zeros(size(inut_sig));chann_l=。

11、]=searate_ilot(interval,count,receive_signal_y);%信道自相关函数L=;%最大时延对符号间隔的归一化Rhh=Rhhh(N,L);%Rhh信道自相关函数%三种估计算法%MMSE估计修正ticmodify_signal=mmse(N,NL,interval,count,ilot,Rhh,sgma,ilot_signal,signal);modify_signal_b=de_modulation(modify_signal);modify_signal=invert(N,NL,modify_signal_b);num_of_err_mmse=error_stat(qam_out,modify_signal);%误码数统计err_mmse(l)=num_of_err_mmseKL%误码率time_mmse 。

12、(l)=toc;time=time+time_mmse(l);%运算所用时间%LS估计修正ticmodify_signal=ls(N,NL,interval,count,ilot,ilot_signal,signal);modify_signal=invert(N,NL,modify_signal_b);num_of_err_ls=error_stat(qam_out,modify_signal);%误码数统计err_ls(l)=num_of_err_lsKL%误码率time_ls(l)=toc;time=time+time_ls(l);%运算所用时间%SVD估计修正ticmodify_signal=svd(N,NL,interval,count,ilot,Rhh,,sgma,ilot_signal,signal);modify_signal

ofdm导频信道估计matlab,ofdm系统中基于导频的信道估计算法的性能分析(样例3)...相关推荐

  1. linux进程看门狗使用方式,Linux系统中基于看门狗的精细化进程监控方法及系统的制作方法...

    Linux系统中基于看门狗的精细化进程监控方法及系统的制作方法 [技术领域] [0001] 本发明涉及Linux系统的进程监控技术领域,特别是涉及一种Linux系统中基于看 门狗的精细化进程监控方法及 ...

  2. matlab消除泊松噪声,基于自适应噪声方差估计的去除泊松噪声的算法.PDF

    基于自适应噪声方差估计的去除泊松噪声的算法 第 卷第 期 计算机应用研究 201- 年 期 Application Research of Computers 基于自适应噪声方差估计的去除泊松噪声的算 ...

  3. 金融系统中PBOC/EMV的TLV的算法实现(含C++/C#)

    金融系统中PBOC/EMV的TLV的算法实现(含C++/C#) TLV即Tag-Length-Value,常在IC卡与POS终端设备中通过这样的一个应用通信协议进行数据交换.在金融系统以及认证中,PB ...

  4. 校内实验六,Windows系统中基于用户名密码的身份认证

    Windows系统中基于用户名密码的身份认证 一.实验目的 二.实验环境及原理 三.实验内容 1 检查和删除不必要的账户 2 禁用guest用户. 3 设置帐户/密码登录身份认证 4 匿名Admini ...

  5. C#中判断空字符串的3种方法性能分析【月儿原创】

    C#中判断空字符串的3种方法性能分析 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.4.28  3种方法分别是:string ...

  6. 文献记录(part79)--光学影像序列中基于多视角聚类的群组行为分析

    学习笔记,仅供参考,有错必纠 光学影像序列中基于多视角聚类的群组行为分析 摘要 群组行为分析是光学影像序列分析中的一项重要课题, 在近年来引起了人工智能领域研究人员的广泛关注. 与行人个体相比, 群组 ...

  7. C#中判断空字符串的3种方法性能分析 1

    C#中判断空字符串的3种方法性能分析 作者:杨义贤 主页:http://blog.csdn.net/lucky_yyx       时间:2007.4.29  3种方法分别是:string a=&qu ...

  8. OFDM系统中基于dmrs导频的时间跟踪、频率跟踪算法

    目录 发射端模型假设 接收端模型假设 时延估计(时间跟踪) 频偏估计(频率跟踪) 在OFDM系统中,为了估计出信号传输遇到的时间偏移和频率偏移,可以采用导频进行估计. 发射端模型假设 我们假设如下模型 ...

  9. m分集2跳OFDM系统中基于功率分配和子载波配对算法的信道容量matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 随着当代无线通信事业的迅猛发展,无线频谱资源已显得越来越匮乏,传统固定静态的无线频谱分配模式 ...

  10. zadoff chu matlab,TD-LTE系统中Zadoff-Chu序列的研究与DSP实现

    在TD-LTE系统中,Zadoff-Chu(ZC)序列主要应用于上行RS序列生成.PRACH前导序列生成以及主同步信号生成等[3],它在整个TD-LTE系统中扮演着重要的角色,是建立上下行链路同步以及 ...

最新文章

  1. poj3280Cheapest Palindrome(记忆化)
  2. WinCE系统声音定制
  3. 对话李飞飞,揭秘国际体育赛事风“云”背后的黑科技
  4. 打通NTFS权限 文件共享各取所需
  5. 安装SQL2005只有配置工具或 错误码是29506 解决方案
  6. cocos怎么把res文件夹放服务器上,cocos2d 三合一跑胡子房卡+服务器组件+后台控制+安装教程+棋牌完整源码...
  7. 自带数据线的迷你数显充电宝,春运相亲必备呀
  8. 在Fedora上搭建GTK+的开发环境
  9. CentOS6.4 X86_64 kvm+PXE备忘
  10. 关于CAPWAP的一些概念
  11. html5+简约登录页面,简洁时尚的CSS3用户登录界面设计
  12. 百度“哼唱”音乐搜索
  13. android 放大镜功能,Android放大镜效果实现
  14. mysql数据库日志操作
  15. Canvas API详解
  16. 测试工程师转开发希望大吗?
  17. 全排列-python递归解法
  18. 从VAS公链上线看区块链共识与区块链技术发展
  19. linux内核 社区,明尼苏达大学Linux内核“伪装者提交”研究人员发表公开信
  20. 我来告诉你代码重构有什么好处

热门文章

  1. C语言实现【关机程序】
  2. 计算机指纹驱动程序,联想笔记本指纹识别驱动安装教程【详解】
  3. 卷积神经网络原理详解
  4. 网络安全工程师面试题整理
  5. linux数据库安装
  6. 屏幕录制 gif android,分享 Android 手机屏幕录制并制玉成 GIF 演示图片
  7. 如何测算信息化项目软件运维费?
  8. 三星note9刷Android9,三星Note9官方韩版安卓9固件rom刷机包 N960NKSU2CSD3
  9. 深度学习入门必看-手写数字识别
  10. 小牛各个版本的限速破解方式-适用N1/M1/N1s----附加转向灯提示音修改