OFDM同步--载波频率偏差CFO

参考书籍:《MIMO-OFDM无线通信技术及MATLAB实现》 实验图基本都截取自该本书

一、什么是CFO

  OFDM解调是采用同步检波的方式,需要在接收机使用与发射机相同的载波信号进行向下变换恢复出基带信号。但在实际使用中无法获得完全相同的载波信号,载波信号会出现偏差的常见原因有两种:一种是载波信号发生器不稳定存在的噪声,另外一种是由多普勒频移产生的频移。

定义归一化的CFO为CFO除以子载波间隔:
ϵ = f o f f s e t Δ f \epsilon=\frac{f_{offset}}{\Delta f} ϵ=Δffoffset
归一化CFO的主要原因

  • 独立于子载波间隔:归一化CFO是一个与子载波间隔无关的相对值。无论OFDM系统使用何种子载波间隔,对CFO的测量和纠正都可以使用相同的方法。
  • 易于比较:归一化CFO允许不同系统和设备之间的CFO值进行直接比较。
  • 简化频偏估计和纠正:使用归一化CFO可以简化频偏估计和纠正过程,不需要考虑特定的子载波间隔。
  • 减小数值范围:归一化CFO通常具有较小的数值范围。
    在这里插入图片描述

二、CFO影响

  归一化CFO的一般分为两个部分讨论, ϵ i \epsilon_i ϵi为整数部分 ϵ f \epsilon_f ϵf为小数部分 ϵ = ϵ i + ϵ f \epsilon=\epsilon_i+\epsilon_f ϵ=ϵi+ϵf

IFO的影响

  在IFO的作用下,发生信号 X [ k ] X[k] X[k]在接收端循环移位 ϵ i \epsilon_i ϵi,因为是整数相当于在做FFT变换时序列进行了移位操作,最终每个子载波都变为了 X [ k − ϵ i ] X[k-\epsilon_i] X[kϵi]。使用补偿循环移位可以解决该问题,但子载波的正交性并未被破坏,解调时不会出现ICI的情况。(图中接收机应该是FFT)
在这里插入图片描述

FFO的影响

  书中对FFO的影响进行了数学推导,证明出了FFO会使子载波分量造成幅度和相位失真,同时还会破坏子载波的正交性。
在这里插入图片描述
在这里插入图片描述
  书中最后展示了FFO在星座图中的影响,通过阅读其他资料可知 FFO=0.5时,影响最大,BER性能最差。
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在ACO-OFDM系统中,如果某些子载波的信道质量较差,可能会导致数据传输的错误率增加。为了避免这种情况,可以采用子载波屏蔽技术,即将质量较差的子载波关闭,只使用质量较好的子载波进行数据传输。以下是ACO-OFDM防止子载波的Matlab代码: ```matlab %% ACO-OFDM系统防止子载波 clc;clear; % 参数设置 N = 64; % 子载波数量 M = 16; % 星座点数 L = 4; % 周期数 P = 4; % 导频长度 SNR = 20; % 信噪比 cp_len = N/4; % 循环前缀长度 % 生成导频序列 pilot = zeros(1,N); pilot(1:P:N) = 1; % 生成随机数据 data = randi([0,M-1],1,N-P); % 将导频和数据按照一定的顺序放置在OFDM符号中 x = zeros(1,N); x(1:P:N) = pilot; x(P+1:N) = data; % IFFT变换 tx = ifft(x); % 加循环前缀 tx_cp = [tx(N-cp_len+1:N),tx]; % 信道模型 h = randn(1,N+cp_len)+1i*randn(1,N+cp_len); h = h/norm(h); % 发送信号 rx = h.*tx_cp; % 加噪声 rx_noisy = awgn(rx,SNR,'measured'); % 去循环前缀 rx_cp = rx_noisy(cp_len+1:end); % FFT变换 rx_fft = fft(rx_cp); % 信道估计 pilot_rx = rx_fft(1:P:N); h_hat = pilot_rx./pilot; % 子载波屏蔽 channel_quality = abs(h_hat).^2; threshold = 0.1; mask = (channel_quality >= threshold); data_rx = rx_fft(P+1:N).*mask(P+1:N)./h_hat(P+1:N); % 显示结果 disp(['原始数据:',num2str(data)]); disp(['接收数据:',num2str(round(data_rx))]); ``` 在上述代码中,先生成长度为P的导频序列,然后将导频和数据按照一定的顺序放置在OFDM符号中,进行IFFT变换和加循环前缀处理。接着,通过信道模型模拟信道的影响,并加上高斯白噪声。在接收端,先去掉循环前缀,进行FFT变换,得到接收信号的频域表示。然后,通过接收到的导频序列进行信道估计,得到信道的频率响应。在得到信道质量后,可以设置一个阈值,当某个子载波的信道质量低于阈值时,将该子载波关闭。最后,对接收到的数据信号进行解调,得到接收的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伊丽莎白鹅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值