ofdm导频信道估计matlab,ofdm系统中基于导频的信道估计算法的性能分析(样例3)...
《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)...相关推荐
- linux进程看门狗使用方式,Linux系统中基于看门狗的精细化进程监控方法及系统的制作方法...
Linux系统中基于看门狗的精细化进程监控方法及系统的制作方法 [技术领域] [0001] 本发明涉及Linux系统的进程监控技术领域,特别是涉及一种Linux系统中基于看 门狗的精细化进程监控方法及 ...
- matlab消除泊松噪声,基于自适应噪声方差估计的去除泊松噪声的算法.PDF
基于自适应噪声方差估计的去除泊松噪声的算法 第 卷第 期 计算机应用研究 201- 年 期 Application Research of Computers 基于自适应噪声方差估计的去除泊松噪声的算 ...
- 金融系统中PBOC/EMV的TLV的算法实现(含C++/C#)
金融系统中PBOC/EMV的TLV的算法实现(含C++/C#) TLV即Tag-Length-Value,常在IC卡与POS终端设备中通过这样的一个应用通信协议进行数据交换.在金融系统以及认证中,PB ...
- 校内实验六,Windows系统中基于用户名密码的身份认证
Windows系统中基于用户名密码的身份认证 一.实验目的 二.实验环境及原理 三.实验内容 1 检查和删除不必要的账户 2 禁用guest用户. 3 设置帐户/密码登录身份认证 4 匿名Admini ...
- C#中判断空字符串的3种方法性能分析【月儿原创】
C#中判断空字符串的3种方法性能分析 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.28 3种方法分别是:string ...
- 文献记录(part79)--光学影像序列中基于多视角聚类的群组行为分析
学习笔记,仅供参考,有错必纠 光学影像序列中基于多视角聚类的群组行为分析 摘要 群组行为分析是光学影像序列分析中的一项重要课题, 在近年来引起了人工智能领域研究人员的广泛关注. 与行人个体相比, 群组 ...
- C#中判断空字符串的3种方法性能分析 1
C#中判断空字符串的3种方法性能分析 作者:杨义贤 主页:http://blog.csdn.net/lucky_yyx 时间:2007.4.29 3种方法分别是:string a=&qu ...
- OFDM系统中基于dmrs导频的时间跟踪、频率跟踪算法
目录 发射端模型假设 接收端模型假设 时延估计(时间跟踪) 频偏估计(频率跟踪) 在OFDM系统中,为了估计出信号传输遇到的时间偏移和频率偏移,可以采用导频进行估计. 发射端模型假设 我们假设如下模型 ...
- m分集2跳OFDM系统中基于功率分配和子载波配对算法的信道容量matlab仿真
目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 随着当代无线通信事业的迅猛发展,无线频谱资源已显得越来越匮乏,传统固定静态的无线频谱分配模式 ...
- zadoff chu matlab,TD-LTE系统中Zadoff-Chu序列的研究与DSP实现
在TD-LTE系统中,Zadoff-Chu(ZC)序列主要应用于上行RS序列生成.PRACH前导序列生成以及主同步信号生成等[3],它在整个TD-LTE系统中扮演着重要的角色,是建立上下行链路同步以及 ...
最新文章
- poj3280Cheapest Palindrome(记忆化)
- WinCE系统声音定制
- 对话李飞飞,揭秘国际体育赛事风“云”背后的黑科技
- 打通NTFS权限 文件共享各取所需
- 安装SQL2005只有配置工具或 错误码是29506 解决方案
- cocos怎么把res文件夹放服务器上,cocos2d 三合一跑胡子房卡+服务器组件+后台控制+安装教程+棋牌完整源码...
- 自带数据线的迷你数显充电宝,春运相亲必备呀
- 在Fedora上搭建GTK+的开发环境
- CentOS6.4 X86_64 kvm+PXE备忘
- 关于CAPWAP的一些概念
- html5+简约登录页面,简洁时尚的CSS3用户登录界面设计
- 百度“哼唱”音乐搜索
- android 放大镜功能,Android放大镜效果实现
- mysql数据库日志操作
- Canvas API详解
- 测试工程师转开发希望大吗?
- 全排列-python递归解法
- 从VAS公链上线看区块链共识与区块链技术发展
- linux内核 社区,明尼苏达大学Linux内核“伪装者提交”研究人员发表公开信
- 我来告诉你代码重构有什么好处