资源简介
主要用于OFDM的频偏估计,利用导频的相关性
代码片段和文件信息
%% 基于循环前缀的OFDM频偏估计算法,及其性能分析
close all;clear all;clc;
%% 参数设置
%*********OFDM参数**********************
Interval=15000;%子载波间隔
NumOfSubcarrier=64;%载波数
LengthOfGI=16;%循环前缀长度
NumOfSymbolPerframe=5;%每帧的符号个数
NumOfframe=10;%仿真的帧数
Frequency_offset_temp=0;%用于储存频偏估计值,初始为0
Snrcount=0;
%*********信道参数设置******************
DeltaFd=2250;%多普勒频移
Fd=DeltaFd/Interval;%多普勒频移系数
%%
%*********信源**************************
Signal=randint(1NumOfframe*NumOfSymbolPerframe*NumOfSubcarrier*22);%信号的产生
QpskSignal=QPSK(Signal);
% figure
% plot(Signal)
%scatterplot(QpskSignal);%调制后星座图
% plot(QpskSignal‘.‘);hold on
%*****************串并转换***************
P_Signal=reshape(QpskSignalNumOfSubcarrierNumOfframe*NumOfSymbolPerframe);%串并转换
%***********ifft***************************
Signal_Ifft=1/sqrt(NumOfSubcarrier)*ifft(P_Signal);%进行IFFT运算
%**********插入循环前缀**********************
Signal_GI=[Signal_Ifft(NumOfSubcarrier-LengthOfGI+1:end:);Signal_Ifft];
%处理完后Signal_GI变成80行代表一个符号
%***********并串转换***********************
S_Signal_Fdevalute=reshape(Signal_GI1(NumOfSubcarrier+LengthOfGI)*NumOfframe*NumOfSymbolPerframe);%该数据用于频偏估计
S_Signal=S_Signal_Fdevalute;%该数据用于没有频偏的情况下的处理
%% 信道处理
%***********加人为频偏处理**************
q=0;
for m=1:(NumOfSubcarrier+LengthOfGI)*NumOfframe*NumOfSymbolPerframe
q=q+1;
Fd_Signal(m)=S_Signal_Fdevalute(m)*exp(j*2*pi*(q-1)*Fd/NumOfSubcarrier);
if q==NumOfSubcarrier+LengthOfGI
q=0;
end
end
for Snr=0:2:20
Snrcount=Snrcount+1;%信噪比步长数目记录变量
for mentkaluo=1:40
%***********加入噪声********************
Noise_Signal=awgn(S_SignalSnr‘measured‘);%没有频偏的情况下加噪声
Noise_Fd_Signal=awgn(Fd_SignalSnr‘measured‘);%在有频偏的情况下加噪声
%% 基于循环前缀的频偏估计
%***********信号重排*******************
Noise_Fd_Signal_Temp=reshape(Noise_Fd_SignalNumOfSubcarrier+LengthOfGINumOfframe*NumOfSymbolPerframe);
%重新排列信号,对每个符号进行处理
%*********数据处理*********************
for frameCount=1%:NumOfframe*NumOfSymbolPerframe%符号数循环
Forward_GI=Noise_Fd_Signal_Temp(1:LengthOfGiframeCount);
%取出每个符号的循环前缀
Backward_GI=Noise_Fd_Signal_Temp(NumOfSubcarrier+1:NumOfSubcarrier+LengthOfGiframeCount);
%取出后16行数据
conj_Backward_GI=conj(Backward_GI);%取共轭
imag_sum=0;
real_sum=0;
for k=1:LengthOfGI
imag_sum_temp=imag(Forward_GI(k)*conj_Backward_GI(k));%虚部做相关处理
imag_sum=imag_sum+imag_sum_temp;
real_sum_temp=real(Forward_GI(k)*conj_Backward_GI(k));%实部做相关处理
real_sum=real_sum+real_sum_temp;
end
sum_of_offset=real_sum+j*imag_sum;
Frequency_offset_temp=Frequency_offset_temp+((-angle(sum_of_offset)/2/pi)-Fd)^2;%多次频偏估计求和
end%符号数循环结束
end
Frequency_offset(Snrcount)=-angle(sum_of_offset)/2/pi-0.031;%所有符号频偏估计求平均
Frequency_offset_var_CP(Snrcount)=sqrt(Frequency_offset_temp/40);
Frequency_offset_temp=0;%频偏估计暂存变量清零
%% 频偏校正
q
相关资源
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- OFDM_and_MC-CDMA_for_Broadband_Multi-User_Comm
- 基于MATLAB的OFDM系统仿真及分析
- OFDM通信系统matlab实现
- 小卫星多普勒频偏MATLAB仿真程序及参
- 基于Matlab的OFDM系统仿真的设计
- 基于OFDMA系统的多用户资源分配算法,
- 基于MATLAB的OFDM系统仿真及性能分析
- 基于自适应压扩法降低OFDM系统的峰均
- 多用户资源分配
- MIMO-OFDM无线通信技术及MATLAB实现
- MIMO-OFDM+WIRELESS+COMMUNICATIONS+WITH+MATLAB
- 一篇很详细的关于OFDM原理和仿真的论
- 基于matlab的mimo-ofdm的信道估计
- MIMOOFDM 极化码 MATLAB
- OFDM-MIMOMATLAB
- 基于MATLAB的OFDM通信系统模型的仿真毕
- ofdm系统matlab仿真源代码
- OFDM系统MATLAB仿真.zip
- 多份OFDM仿真的MATLAB仿真代码,以及相
- MIMO-OFDM无线通信技术及MATLAB实现英文
- MIMO和OFDM及matlab实现
-
OFDM simuli
nk仿真 - 基于16QAM调制的OFDM系统仿真实现.zip
- mimo ofdm的MATLAB仿真
- 完整LTE下MIMO OFDM仿真
- OFDM—MIMO系统的matlab程序
-
OFDM系统simuli
nk模型:步步解说 -
基于Simuli
nk的OFDM系统分析及仿真学 - verilog实现OFDM基带
评论
共有 条评论