资源简介
主要用于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
相关资源
- OFDM系统的MATLAB完整仿真
-
基于simuli
nk的OFDM系统分析和仿真 - OFDMExp.slx
- 基于MATLAB的OFDM多普勒频移估计算法仿
- OFDM同步算法matlab仿真
- OFDM全部代码
- OFDM可见光通信系统仿真.zip
- MIMO-OFDM.zip
- 2019_OFDM仿真源代码_Matlab_附解释_完整
- 基于MATLAB的OFDM系统实现及峰均比抑制
- 非对称限幅正交频分复用matlab实现
- OFDM系统16QAM仿真
- OFDM仿真的星座图
- OFDM中降低PAPR的两种方法SLM和PTS
- OFDM_16QAM
- OFDM同步算法之Park算法
- MIMO-OFDM无线通信matlab代码
- ofdm系统完整程序
- OFDM同步算法matlab实现
- OFDM同步算法之SC算法
- ofdm 基于matlab的仿真
- 基于不同调制方式16QAM、64QAM、QPSKOF
- 基于遗传算法的OFDM自适应资源分配算
- OFDM通信系统的Matlab仿真 源程序 m文件
- MIMO-OFDM不同信道估计的对比matlab代码
- 任意发送天线,任意接收天线的STBC
- Matlab仿真ACO-OFDM信号发送与接收
- OFDM同步算法中的最大似然函数法程序
- ofdm调制解调程序
- SFBC在OFDM系统中传输
评论
共有 条评论