当前位置: 首页 > article >正文

YunSDR通信小课堂-33

第16讲 MIMO-OFDM基带接收端系统搭建

IEEE802.11n协议物理层采用的主要技术是MIMO-OFDM技术,本章首先阐述MIMO-OFDM系统基本原理,在此基础上探讨IEEE802.11n采用的MIMO-OFDM系统结构。MIMO技术是具有极高频谱利用率的技术,在空间复用模式下,理想情况可以达到300Mbpss。OFDM技术能够有效对抗ISI,同时具有频谱利用率高、抗多径衰落性能好等优点。MIMO和OFDM的结合是高速无线通信系统的核心技术之一。最后,给出了IEEE802.11n协议物理层的系统结构和主要参数,并给出了参考设计以及核心代码块。

16.1 实验目的

IEEE802.11n接收端的设计与802.11a流程相似,但是精同步、信道估计等算法更为复杂,通过此次实验整体掌握接收端得流程以及各个模块的衔接,最后通过结果信息验证算法与YunSDR性能。

16.2 实验条件

YunSDR平台一套,Matlab软件环境,WiFi频段天线,频谱仪。

16.3 实验要求

在参考例程中,利用训练序列分别实现了帧同步检测和定时符号同步,然后利用FFT算法分离长训练序列并利用长训练序列在频域实现信道估计与均衡;最后分别根据信号域与数据域有序的进行解映射、解交织、解打孔、译码、解扰、解CRC等算法操作。由于信号域部分在发端并没有加扰所以不需要进行解扰操作。当信号域的信息被正确解出来后,根据信号域的码率、数据长度以及调制方式等信息对数据域的数据进行最后的解调,并在每个不同的操作步骤后打印出必要的信息,最后绘出功率谱密度、星座图等信息。

16.4 实验原理

和频偏估计与补偿结束之后,就可以进行精确定时同步以准确地搜索数据帧的起始位置。经过定时同步之后就可以去除循环前缀,通过FFT变换将时域信号变为频域信号。在FFT变换之后,我们利用接收到的长训练序列进行信道估计,得到等效信道HQ的估计。注意的是,为了正确估计出MIMO信道响应矩阵接收信号首先通过下变频变到基带,然后进行帧同步。帧同步需要确定OFDM符号帧的边界,进行初步的定时,将符号符号起始位置锁定在某个范围内。与一般通信系统不同的是,WLAN是一种突发通信系统,我们并不知道数据帧什么时候到达,因此需要首先进行帧头检测。

在系统得到大致的信号到达时刻,即粗同步建立的时候,就可以对接收信号进行载波频偏估计,然后利用估计值对接收信号的载波频偏进行纠正。载波频偏可能导致OFDM各个子载波之前发生信道间干扰(ICI) ,严重影响系统性能。在帧同步,发射机发送的长训练序列个数应该等于空间流数目。

相位噪声会产生公共相位误差(CPE)和信道间干扰(ICI) ,导致星座图发生扩散和旋转,因此需要进行相位噪声估计与纠正。该模块需要信道估计值作为输入。

信号检测过程中,需要长训练序列提供得到的信道估计作为输入。执行信号检测时,将检测出Ns:路数据流。因此只需在发端发送Ns:路长训练序列,收端做等效信道估计就能进行信号检测。

波束赋型模式中,数据传输前通过SVD分解得到信道状态信息,用于计算波束矩阵,也即在发端估计物理信道的状态,在我们的仿真系统中做了一些合理的简化。信道状态信息在收端获得,发端发送长训练序列给收端,收端做实际物理信道估计并反馈,发端使用这个结果直接用于波束成型。此后数据和长训练序列一起发送,接着收端做第二次信道估计,不过这次是等效信道估计,结果用于检测。注意,第一次信道估计需要一个长训练序列,而第二次需要Nsts个。

16.5 参考设计

协议没有明确规定接收机结构及接收算法,但根据MIMO-OFDM系统的一般原理、协议规定的发射机结构以及部分关键的系统参数,我们确定使用的802.11n接收机结构如图16-1所示:

接收端包括:同步,信道估计与均衡,QAM解调,解交织和Viterbi译码等操作。这里只对部分关键技术阐述。

符号同步分为粗同步和精同步,和IEEE802.11a同步方法类似,在IEEE 802.11a符号同步算法的基础上进行一些修改,并应用到本文设计的基带系统。

    粗同步算法:

信道估计的算法已经在上一章节中详细讲解过,这里不再赘述。对于解调算法,与IEEE802.11a相同,采用硬解,这里不再做说明。

其中关键部分的Matlab代码块为:

%% 粗同步

thres_idx = rx_search_packet_short(rx_signal);

rx_signal_coarse_sync = rx_signal(thres_idx:end,:);

figure(1);

subplot(243);

plot(abs(rx_signal_coarse_sync(1:220,1)));

title('粗同步能量检测');

%% 精同步

thres_idx_long = rx_search_packet_long(rx_signal_coarse_sync);

Nrx=size(rx_signal_coarse_sync,2);

Ns=size(rx_signal_coarse_sync,1);

rx_signal_fine_sync=zeros(Ns,Nrx);

for i=1:Nrx

    rx_signal_fine_sync(1:end-thres_idx_long(i)-31,i) = rx_signal_coarse_sync(thres_idx_long(i)+32:end,i);

end

figure(1);

subplot(244);

plot(abs(rx_signal_fine_sync(1:320)));

title('精同步信号时域波形');

%% 频偏估计与校正

[rx_signal_fine, freq_est] = rx_frequency_sync(rx_signal_fine_sync);

%% FFT

[freq_legacy_ltf,freq_legacy_sig,freq_highthrough_sig] = rx_timed_to_freqd_legacy(rx_signal_fine);

%% legacy 信道估计

channel_est=rx_estimate_channel_legacy(freq_legacy_ltf);

freq_legacy_sig=freq_legacy_sig./channel_est;

freq_highthrough_sig=freq_highthrough_sig./repmat(channel_est,2,1);

if Nrx~=1

    freq_legacy_sig_mean=mean(freq_legacy_sig.').';

    freq_highthrough_sig_mean=mean(freq_highthrough_sig.').';

else

    freq_legacy_sig_mean=freq_legacy_sig;

    freq_highthrough_sig_mean=freq_highthrough_sig;

end

subplot(245);

for i=1:Nrx

    plot(abs(channel_est(:,i)),color(i));hold on

end

title('信道估计图');

hold off

%% 相位校正

legacy_sig_pc=rx_pilot_phase_signal(freq_legacy_sig_mean);

highthrough_sig_pc=rx_pilot_phase_signal(freq_highthrough_sig_mean);

主要Matlab文件的简介如下表:

扫描二维码关注订阅号,精彩文章


http://www.kler.cn/a/504762.html

相关文章:

  • 恩山论坛任务python脚本
  • C#异步和多线程,Thread,Task和async/await关键字--12
  • primitive 编写着色器材质
  • Vue.js前端框架教程16:Element UI的el-dialog组件
  • Anaconda安装(2024最新版)
  • python实现自动登录12306抢票 -- selenium
  • 数据仓库的复用性:统一数据标准和规范
  • 康谋产品 | 深度自然匿名化:隐私保护与视觉完整性并存的未来!
  • 【PowerQuery专栏】PowerQuery中的函数与Excel和Python的异同
  • 模拟器多开窗口单IP与代理IP关系
  • docker实际应用记录
  • Transformers Learning Rate Schedules
  • 微软震撼发布:Phi-4语言模型登陆Hugging Face
  • Java算法 数据结构基础 并查集 模版 [洛谷-P3367]
  • Masked_Filled随机置列为零
  • 集合帖:区间问题
  • 自建RustDesk服务器
  • BERT的中文问答系统65
  • C语言重点回顾(持续更新中~)
  • 【C#深度学习之路】如何使用C#实现Yolo8/11 Segment 全尺寸模型的训练和推理
  • 实战web 渗透测试教学课程
  • Copilot 和 Windsurf哪个更适合于.netcore开发
  • 获取文章分类详情功能
  • 永久免费日志增量采集工具
  • ubuntu20升级至22后不兼容ssh-rsa加密算法
  • 【C++】揭秘类与对象的内在机制(核心卷之构造函数与析构函数的奥秘)