MATLAB程序:小数倍频偏对OFDM信号的影响

3 篇文章 3 订阅

1·首先从公式的角度来理解小数倍频偏对OFDM信号的影响

y_{l}(n)是接收的时域的OFDM信号,Y_{l}(k)是接收的频域的OFDM信号,\xi_{f}是归一化小数倍频偏。通过对公式展开,可以发现小数倍频偏对原始信号造成的影响包括幅度、相位以及相邻子载波之间的干扰。

 

 MATLAB在频域实现小数倍频偏补偿

clc
clear
Nfft=8; %FFT的大小
CFO=0.1;%归一化频偏大小
h= modem.pskmod('M', 2); 
h2= modem.pskdemod('M', 2); 
msg=randi([0 1],1,Nfft);
modmsg=modulate(h,msg); %BPSK调制

x_ifft=ifft(modmsg,Nfft); %频域变时域

y_CFO=add_CFO(x_ifft,CFO,Nfft);%加入频偏

y_fft=fft(y_CFO);

alp=sin(pi*CFO_est)*exp(1i*pi*CFO_est*(Nfft-1)/Nfft)/(Nfft*sin(pi*CFO_est/Nfft));  &幅度以及相位的影响
a=exp(1i*pi*CFO_est*(Nfft-1)/Nfft);
for k=1:Nfft;
    sum=0;
    for m=1:Nfft;
        if m==k
            sum=sum+0;
        else
            sum=sum+(sin(pi*(m-k+CFO_est))/(Nfft*sin(pi*(m-k+CFO_est)/Nfft)))*modmsg(m)*exp(1i*pi*(m-k)*(Nfft-1)/Nfft);
        end
    end
    I(k)=a.*sum; %计算I(k),子载波之间干扰
end
x_compe=((y_fft-I)./alp)'  %补偿之后的信号
xdemod=demodulate(h2,x_compe);
%实现对OFDM加入频偏
function y_CFO=add_CFO(y,CFO,Nfft)
nn=0:length(y)-1;
y_CFO=y.*exp(1i*2*pi*CFO*nn/Nfft);

 

 

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值