无线通信——基于MATLAB实现OFDM系统(信道估计与均衡)

article/2025/10/15 21:59:27

基于MATLAB实现OFDM系统基带信号在频率选择性衰落信道条件下的发送与接收

题目及要求:

仿真系统构成:信号输入(为随机比特流)、OFDM调制、仿真信道传输、OFDM解调、信号输出(可能存在误码的比特率);
仿真分析内容:根据输入、输出比特流计算不同信噪比条件下的误码率,并绘制曲线。
对调制的要求:OFDM调制的子载波间隔为15KHz,循环前缀长度及子载波数目可调,各子载波使用QPSK调制。
其它要求

  1. 信道采用3GPP TS36.101给出的ETU300Hz多径信道,并在其上叠加一个信噪比可调的白噪声。表2.1-1~表2.1-4和表2.2-1给出的ETU300Hz多径信道的参数。
  2. 设计梳妆或者块状导频并在接收端完成信道估计与补偿,并与没有信道估计情况下的性能进行分析比较。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

正文

1. OFDM系统的组成

由于是基带信号,所以系统中没有调制与解调的部分。若需对频带信号进行传输,只需要在进入信道前对基带信号进行调制,接收后进行解调即可。程序代码也可以在我写的这个上面进行稍微的改进即可。因此大家可以参考最下面程序的整体架构。下面为我根据系统组成画的系统框图。
在这里插入图片描述
① OFDM调制基本原理
   正交频分复用(OFDM)是多载波调制(MCM)技术的一种。MCM的基本思想是把数据流串并变换为N路速率较低的子数据流,用它们分别去调制N路子载波后再并行传输。因子数据流的速率是原来的1/N,即符号周期扩大为原来的N倍,远大于信道的最大延迟扩展,这样MCM就把一个宽带频率选择性信道划分成N个窄带平坦衰落信道,从而“先天”具有很强的抗多径衰落和抗脉冲干扰的能力,特别适合于高速无线数据传输。OFDM是一种子载波相互混叠的MCM,因此它除了具有上述毗M的优势外,还具有更高的频谱利用率。OFDM选择时域相互正交的子载波,它们虽然在频域相互混叠,却仍能在接收端被分离出来。
② OFDM系统的实现模型
  利用离散反傅里叶变换( IDFT) 或快速反傅里叶变换( IFFT) 实现的OFDM系统如图所示。输入已经过调制(符号匹配) 的复信号经过串P并变换后,进行IDFT 或IFFT 和并/串变换,插入保护间隔后的信号s (t) 。该信号经过信道后,接收到的信号r ( t ) 经过去掉保护间隔以恢复子载波之间的正交性,再经过串/并变换和DFT 或FFT 后,恢复出OFDM的调制信号,再经过并串变换后还原出输入的符号。离散傅里叶变换是它的核心,它使各子载波相互正交。

2. 仿真过程

① 根据OFDM系统框图,首先由信源产生随机0,1序列,然后经过QPSK调制后进行串并转换,再对串并转换后的序列进行IFFT变换得到时域信号,添加循环前缀后并串变换并通过ETU300HZ信道,对得到的信号在进行串并变换,去循环前缀,FFT变换,QPSK解调,并串转换后得到接收的信息序列,再将其与发送序列比较后得到没有信道估计下的误码率。
②对于有信道估计的误码率,可以在IFFT变换之前加入插导频,在FFT之后进行信道估计,最终可以得到有信道估计下的误码率曲线。其中信道估计算法采用了LS算法。其中块状导频适用于频率选择性衰落,梳状导频适用于快衰落,格状导频结合了两者的优点。

3. 仿真程序

整体代码如下所示:

% ==================================================
% 作者: Allen
% 时间:4/27 2020
% =================OFDM仿真参数说明:================
% f_delta=15e3;                 ---子载波间隔
% 子载波数 carrier_count        ---128 也就是FFT点数,通常为2的次幂
% 子载波间隔 f_delta             ---15e3
% 总符号数 symbol_count          ---1000
% IFFT长度 ifft_length           ---128
% 循环前缀 cp_length             ---16
% 调制方式                       ---QPSK 
% 信道估计算法 ce_method         ---1:采用最小二乘法LS;0:采用mse算法
% 插入导频间隔 pilot_interval    ---5
% 每星座符号比特数 M             ---2
% 信道模型选择参数 awgn_en       ---0:表示ETU信道;1:AWGN信道
% 最大多普勒扩展 fd              ---300;通常可配置0-300hz之间的数据
% 仿真统计次数 sta_num           ---10
% 信噪比大小SNR                  ---可设置
% ====================仿真过程=======================
% 产生0-1随机序列 => 串并转换 => 映射 => 取共轭
% => IFFT => 加循环前缀和后缀 => 并串转换 => 
% 多径信道即ETU信道 =>  加AWGN => 串并转换 => 去前缀
%  => FFT =>解映射 => 求误码率 
% ==================================================
clear all;
close all;
carrier_count = 128;         % 子载波数
f_delta=15e3;                %子载波间隔
symbol_count = 1000;         %一次发送的总符号数
ifft_length = carrier_count; %ifft点数为子载波数目
cp_length = 16;              %循环前缀
ce_method=1                  %信道估计算法参数1:采用最小二乘法LS;0:采用mse算法
pilot_interval=5;            %导频间隔
awgn_en=0;                   %信道选择参数 0:表示ETU信道;1:AWGN信道
M=2;                         %每星座符号比特数
fd=300;                      %最大多普勒扩展
sta_num=20;                  % 仿真统计次数
num_bit=carrier_count*symbol_count*M;      %对应比特数据个数,即128*1000*2
pilot_bit_l=randi([0 1],1,M*carrier_count);%生成导频序列,长度为M*carrier_count
OFDM_SNR_BER=zeros(1,31);                  %存储直接解调OFDM误码率
OFDM_LS_SNR_BER=zeros(1,31);               %存储基于信道估计后OFDM误码率
i=1;                                       
% ================多径信道参数=======================
fs=(carrier_count)*f_delta;                %信道带宽,为子载波间隔乘以子载波个数
ts=1/fs;                                   %每个bit符号持续的时间
tau=[0,50,120,200,230,500,1600,2300,5000]/(10^9); 
pdb=[-1.0,-1.0,-1.0,0,0,0,-3.0,-5.0,-7.0];
chan=rayleighchan(ts,fd,tau,pdb);
chan.ResetBeforefiltering=0;
% ================产生随机序列=======================
OFDM_sigbits =sourcebits(num_bit) ;        % 1*256000,发送的OFDM数据
[moddata_outI,moddata_outQ]=qpsk_modulation(OFDM_sigbits);   %进行映射
OFDMmoddata_in_temp=moddata_outI+1i*moddata_outQ; 
OFDMmoddata_in=reshape(OFDMmoddata_in_temp,carrier_count,length(OFDMmoddata_in_temp)/carrier_count); %串并变换
% ================加导频========================[Insertpilot_out,count,pilot_seq]=insert_pilot_f(OFDMmoddata_in,pilot_bit_l,pilot_interval);  %加入导频后的矩阵为Insertpilot_out,大小为128*1200% ===================IFFT===========================OFDMmoddata_out=ifft(Insertpilot_out,ifft_length)*sqrt(ifft_length);% ==================加循环前缀==================InsertCPdata_out=Insert_CP(OFDMmoddata_out,cp_length);% =================并串转换==========================
[m,n] = size(InsertCPdata_out)
Channel_data=reshape(InsertCPdata_out,1,m*n);% ===================发送信号,多径信道====================
for SNR=0:1:30be1=0;be2=0;frm_cnt=0;while(frm_cnt<sta_num)frm_cnt=frm_cnt+1;%经过多径信道if(awgn_en==1)Add_Multipath_data=Channel_data;                    %awgn信道elseif(fd~=0)Add_Multipath_data=filter(chan,Channel_data);       %ETU信道endAdd_noise_data=awgn(Add_Multipath_data,SNR,'measured'); %添加高斯白噪声
% =======================串并变换===========================Add_noise_data_temp=reshape(Add_noise_data,m,n);% =======================去循环前缀==========================DeleteCPdata_out=Delete_CP(Add_noise_data_temp,cp_length);% =======================取出导频H==========================[Deletepilot_Data,H]=Get_pilot(DeleteCPdata_out,pilot_interval);% =========================FFT==============================OFDM_Demodulationdata_out_iter1=fft(Deletepilot_Data,ifft_length)/sqrt(ifft_length);% ===============无信道估计下并串转换以及逆映射===============
OFDMdemodulationdata_out_1=reshape(OFDM_Demodulationdata_out_iter1,1,num_bit/2);
[demodulationdata_outI_1,demodulationdata_outQ_1]=qpsk_demodulation(OFDMdemodulationdata_out_1);%星座的逆映射
P2Sdata_out_1=P2SConverter(demodulationdata_outI_1,demodulationdata_outQ_1);
% =====================有信道估计下==========================
estimation_output=Channel_estimation(ce_method,Deletepilot_Data,pilot_seq,H);
OFDMdemodulationdata_out_2=reshape(estimation_output,1,num_bit/2);
[demodulationdata_outI_2,demodulationdata_outQ_2]=qpsk_demodulation(OFDMdemodulationdata_out_2);%星座的逆映射
P2Sdata_out_2=P2SConverter(demodulationdata_outI_2,demodulationdata_outQ_2);
% =========================误比特率==========================
be1=be1+length(find(P2Sdata_out_1~=OFDM_sigbits));
be2=be2+length(find(P2Sdata_out_2~=OFDM_sigbits));
ber1=be1/(frm_cnt*num_bit);
ber2=be2/(frm_cnt*num_bit);
if(mod(frm_cnt,20)==0)fprintf('SNR=%.1f,frm_cnt=%d,ber_de=%.8f,ber_ls=%.8f\n',SNR,frm_cnt,ber1,ber2);
endend%  fprintf('SNR=%.1f,frm_cnt=%d,ber_de=%.8f,ber_ls=%.8f\n',SNR,frm_cnt,ber1,ber2);
% =========================误码率==========================
OFDM_SNR_BER(i)=ber1;
OFDM_LS_SNR_BER(i)=ber2;
i=i+1;
end

4.仿真结果

一、AWGN信道下的误码率曲线以及前五十个数据值 :
在这里插入图片描述
在这里插入图片描述
二、ETU300HZ多径信道下的误码率曲线(fd=300HZ即最大多普勒频移为300HZ)以及前五十个数据值:
在这里插入图片描述
在这里插入图片描述
三、ETU300HZ多径信道下的误码率曲线(fd=10HZ即最大多普勒频移为10HZ)以及前五十个数据值:
在这里插入图片描述
在这里插入图片描述

5.仿真结果分析以及结论

一、 从OFDM系统的原理和仿真过程可以看出,OFDM系统频带利用率高,因为OFDM允许重叠的正交子载波作为子信道,而不是传统的利用保护频带分离子信道。同时高速数据流通过串并转换,能使得每个子载波上的信号时间比相应同速率的单载波系统上的信号时间长,采用循环前缀的方法,有效减少了ISI。
二、AWGN信道下采用LS算法进行信道估计后的误码率大于直接解调的误码率,但是差别不是特别大。对于ETU300HZ且多普勒频移为300HZ或者10HZ的情况下,可以看出基于信道估计的结果明显优于无信道估计的结果;而且横向对比发现当多普勒频移为10HZ时的误码率低于多普勒频移为300HZ的误码率。

6.写在最后

代码为整体架构,其中里面的一些具体的子函数以及OFDM的原理比如保护间隔以及插入循环前缀的原因等等已上传。链接地址:代码仿真


http://chatgpt.dhexx.cn/article/EMtrhwfq.shtml

相关文章

信道模型

下面是4种信道模型&#xff1a; 什么是信道模型&#xff1f;信道模型是用数学表达式来描述信道特性的&#xff0c;H_rx_tx,例如h21表示1发2收&#xff0c;下图的n表示噪声加在每个接收天线上&#xff0c;在实际中&#xff0c;很多噪声进入一个接收天线中&#xff0c;例如n1是所…

第7章:OFDM 信道估计与均衡(4)

第7章&#xff08;4&#xff09;内容如下&#xff1a; 一、导频结构与图案二、基于导频的信道估计算法和插值方法 本文所有可运行代码下载地址是&#xff1a;123kevin456/OFDM- 一、导频结构与图案 前三讲介绍了OFDM经过AWGN信道和衰落信道的误码率情况&#xff0c;其中在第&…

信道均衡之线性均衡——迫零滤波器

在通讯系统中&#xff0c;信道是影响信号传输质量的最重要因素&#xff0c;而信道均衡目的是则为了消除信道的影响。 一个基带传输的通信系统的简单示意图如图1&#xff0c;数字信号m(n)经过单位冲激响应为ht(t)的发送滤波器后&#xff0c;变成模拟信号 s(t), 然后通过的单位冲…

4.4.5 信道均衡(二)

4.4.5 信道均衡&#xff08;二&#xff09; 基本上 《XILINX FPGA的OFDM通信系统基带设计》一书已经带有各部分的代码&#xff0c;我做的工作就是将代码整合到一起&#xff0c;并按照仿真修改&#xff0c;让其能正常工作。本文将对实现中的重点部分做解释&#xff0c;并指出…

基带信号传输之信道均衡

信道中的频域均衡器中&#xff0c;它是用可调滤波器的频域特性去补偿基带系统的频域特性&#xff0c;使系统总的传输函数满足无失真传输条件&#xff1b; 时域均衡器&#xff0c;使用均衡器产生的波形去补偿已经变形的波形&#xff0c;使总的输出波形满足无码间串扰的条件。 …

无线衰落信道、多径与OFDM、均衡技…

参见 张贤达 通信信号处理。OFDM移动通信技术原理与应用&#xff0c;移动通信原理 吴伟陵 目录 无线信道的传播特征 无线信道的大尺度衰落 阴影衰落 无线信道的多径衰落 多径时延与与叠加后的衰落 频率选择性衰落和非频率选择性衰落 符号间干扰ISI的避免 多径信号的时延扩展引…

【通信技术专题:信道均衡器】

| 通信技术 通信技术发展至今&#xff0c;每个人都离不开它的存在。通信系统的核心主要在于物理层&#xff0c;物理层的关键在基带。在通信系统中&#xff0c;逻辑开发工程师主要工作就在基带和射频部分&#xff0c;甚至射频都不在从事的任务内。今天给大家简单讲讲基带接收机…

[培训-无线通信基础-7]:信道均衡器(信道估计、信道均衡)

作者主页(文火冰糖的硅基工坊)&#xff1a;https://blog.csdn.net/HiWangWenBing 本文网址&#xff1a;https://blog.csdn.net/HiWangWenBing/article/details/118832368 目录 引言&#xff1a; 第1章 均衡器概述 1.1 什么是均衡器 1.2 如何进行信道估计 第2章 线性均衡器…

4.4.5 信道均衡(一)

4.4.5 信道均衡&#xff08;一&#xff09; 一、为什么要信道均衡&#xff1f; 数字信号在实际信道上传输时&#xff0c;由于信道传输特性不理想以及信道噪声的影响&#xff0c;接收端接收到的信号不可避免地发生错误。为了恢复发送的数据信息&#xff0c;接收端需要估计出信道…

信道均衡理论

一、基本概念 什么是均衡&#xff1f; 在得到的 Y [ n ] Y[n] Y[n]当中&#xff0c;存在符号间干扰和噪声。在通信当中&#xff0c;把符号间干扰去掉的技术叫作均衡( equalization)。 横向抽头滤波器 图中 x ( t ) x(t) x(t)为存在符号间干扰的模拟基带信号, y ( t ) y(t) y(…

信道均衡的原理

信道均衡的概念 信道均衡&#xff08;Channel equalization&#xff09;是指为了提高衰落信道中的通信系统的传输性能而采取的一种抗衰落措施。它主要是为了消除或者是减弱宽带通信时的多径时延带来的码间串扰&#xff08;ISI&#xff09;问题。 其机理是对信道或整个传输系…

千锋python培训多久

千锋Python学员拿下华为月薪25000元14薪offer&#xff0c;还收获了自己的美满爱情。 更赞的是和他一起学的女朋友&#xff0c;也拿下了字节跳动23000元15薪offer。 小千激动的久久不能回神&#xff0c;小两口年薪妥妥的近70万&#xff01;实力开奖 男生之前的第一个offer是深…

千峰python线下培训

Hello&#xff0c;各位锋迷们&#xff0c;我是小千。 今天周日&#xff0c;给大家推荐千锋金牌讲师宋宋最新出品的一套Python办公自动化教程。 扫码一键直达B站课程学习地址: 传送门&#xff1a;https://m.bilibili.com/video/BV1wA411c7wB 学Python的同学对宋宋老师很熟悉…

千锋培训学python怎么样

很多小白在学习IT技术之前最为苦恼的就是不知道具体学习哪个技术方向&#xff0c;不了解自己的喜好&#xff0c;不知道自己擅长什么&#xff0c;网络检索也得不到很好的意见指导&#xff0c;那么今天就看看千锋Python培训讲师对此是怎么说的吧。 近年来&#xff0c;Python作为编…

千锋教育-加百利 web

千锋教育-加百利&#xff1a;https://space.bilibili.com/31452330?spm_id_from333.788.b_765f7570696e666f.2 cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2NTIyMzY2,size_16,color_FFFFFF,t_70) 快捷键 ul列表li标签&#xff1a;ul>li*11 按下tab ul列表li标签div&#xff1a;ul&…

千峰软件测试学习营 第一章

软件和软件测试 软件和软件分类 软件 程序 数据 文档 注&#xff1a;软件测试既要测试程序&#xff0c;也要测试数据&#xff0c;还要测试文档。 软件的分类 按层次划分&#xff08;系统软件和应用软件&#xff09; 按组织划分&#xff08;商业软件和开源软件&#xff09;…

云计算培训靠谱吗?

怎么算靠谱的培训呢&#xff1f; 举个例子&#xff1a; 我想参加云计算培训找个工作&#xff0c;机构满足了我的要求&#xff0c;有工作了&#xff0c;但是不是做云计算相关的。 小强也参加了云计算培训&#xff0c;想学好云计算成为技术大牛&#xff0c;最后专业学得普普通…

千峰python培训机构

在数字化经济时代下&#xff0c;推动数字化进程的IT技术成为众多企业竞相掌握的核心技术&#xff0c;编程语言也成为企业研发人员深度学习和研究技术的加速器。Python编辑语言因其高效的数据结构和简单有效的面向编程对象&#xff0c;而成为企业技术开发广泛采用的编程语言。千…

千峰软件测试学习营 第八章

缺陷和缺陷报告 一 缺陷的基本概述 缺陷的定义 软件未实现产品说明书要求的功能 软件出现了产品说明书指明不应该出现的功能 软件实现了产品说明书中未提到的功能 软件未实现产品说明书虽未明确提及但应该实现的目标 软件难以理解、不易使用、运行缓慢或者&#xff08;从测…

千峰网络安全笔记(前三讲)

典中典 《c语言从研发到脱发》 《C从入门到放弃》 《Java从跨平台到跨行业》 《Ios开发从入门到下架》 《Android开发大全——从开始到转行》 《PHP由初学至搬砖》 《黑客攻防:从入门到入狱》 《Mysql从删库到跑路》 《服务器运维管理从网络异常到硬盘全红》 《服务器运维管理…