💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
🎁完整资源、论文复现、期刊合作、论文辅导及科研仿真定制事宜点击:
👉👉👉本文完整资源下载
⛳️座右铭:行百里者,半于九十。
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥第一部分——内容介绍
摘要
索引调制技术作为提升正交频分复用系统能量效率与频谱效率的重要手段,近年来受到广泛关注。双模式正交频分复用索引调制(DM-OFDM-IM)在传统索引调制的基础上引入两种能量层级不同的星座模式,通过模式符号在子载波上的位置组合额外承载信息,从而在不增加射频链路数量的前提下提升系统吞吐量。本文围绕 DM-OFDM-IM 的系统结构、比特映射机理、子载波放置规则、最大似然检测方法以及多信道条件下的误码性能展开研究,构建了完整的收发链路模型,并对系统在加性高斯白噪声信道与瑞利衰落信道下的表现进行仿真分析。结果表明,该方案能够有效利用双模式星座的幅度差异与子载波位置组合,在保持较低检测复杂度的同时获得较好的误码性能,具有一定的工程参考价值。
关键词:索引调制;双模式;正交频分复用;最大似然检测;误码率;瑞利衰落
1. 引言
随着移动通信系统对频谱效率与能量效率的要求不断提高,传统正交频分复用技术在高数据速率传输中的局限性逐渐显现。传统方案在每个子载波上均发送调制符号,虽然实现简单,但存在峰均功率比偏高、功率放大器效率受限以及子载波利用率不够灵活等问题。为缓解上述矛盾,索引调制思想被引入正交频分复用体系,通过让部分子载波处于静默状态或采用不同模式,将子载波的选择结果本身作为信息载体,从而在不增加额外射频资源的情况下拓展信息维度。
在此基础上,双模式正交频分复用索引调制进一步发展为两种星座模式并存的方案。与仅依靠“激活与静默”区分信息的传统索引调制不同,双模式方案在每组子载波中同时发送两种不同能量层级的符号,二者的排列位置组合构成索引信息。这种方式既避免了子载波完全静默造成的能量浪费,又通过模式差异提供了额外的比特映射空间,因而在频谱效率和能量效率之间取得了较好的折中。
本文以双模式正交频分复用索引调制系统为研究对象,围绕其比特分组方式、双模式星座设计、子载波放置规则、正交频分复用调制流程、最大似然检测策略以及多信道条件下的误码性能展开系统分析,旨在揭示该方案的信息承载机理与性能特征。
2. 系统模型与参数设定
本文所研究的系统采用分组式正交频分复用结构。将全部可用子载波划分为若干等长子块,每个子块包含固定数量的子载波,并在子块内部完成索引调制与双模式符号映射。系统的主要参数包括快速傅里叶变换点数、循环前缀长度、子载波分组数、每组子载波数以及每组中参与索引调制的子载波数。这些参数共同决定了每组的索引组合数量、每组承载的数据比特数以及整个正交频分复用符号的总信息量。
每组子载波中,一部分位置用于放置第一模式符号,另一部分位置用于放置第二模式符号。两种模式在星座幅度上存在明显差异,接收端可据此区分模式归属。索引比特的作用在于指定两种模式符号在组内的排列方式,而数据比特则分别映射到两种模式的星座点上。因此,每组承载的信息由索引信息与双模式数据信息共同构成。
从信息论角度看,该系统的信息承载来自两个维度:其一是子载波位置组合所携带的索引维度,其二是双模式星座点所携带的调制维度。二者相互独立又相互配合,使得每组在相同子载波数量下能够承载比传统方案更多的比特。
3. 比特分组与映射机理
在发射端,信息比特首先被划分为若干长度固定的比特块,每个比特块对应一个正交频分复用符号。随后,每个比特块再按组进行拆分,每组比特进一步分为三部分:索引比特、第一模式数据比特和第二模式数据比特。
索引比特用于选择组内两种模式符号的放置模式。由于每组中子载波数量有限,可用的位置组合数量也是有限的,因此索引比特的取值空间由组合数决定。具体而言,从若干子载波中选取固定数量的位置放置某一模式符号,其组合数量决定了可用的索引状态数。实际可用的索引比特数取该组合数的二进制对数的下取整值,未被使用的组合状态在系统中不予采用。
第一模式数据比特与第二模式数据比特分别映射到两种星座模式。两种模式均采用正交相移键控类星座,但幅度层级不同。第一模式采用单位能量星座,第二模式采用幅度更大的星座。这样设计的目的是在接收端能够通过幅度门限较容易地区分两种模式,同时保证两种模式在噪声环境下都具有一定的抗干扰能力。
映射完成后,每组得到两个第一模式符号与两个第二模式符号。索引比特决定这四个符号在组内的排列顺序,从而形成完整的组内符号向量。所有组的符号向量按顺序拼接,构成一个正交频分复用符号的频域数据。
4. 双模式星座设计思想
双模式星座是本系统的核心设计之一。与传统的单一星座方案相比,双模式方案在每组中同时使用两种能量层级的星座点,使接收端能够依据幅度差异判断模式归属。这种幅度差异不能过小,否则在噪声影响下容易产生模式误判;也不能过大,否则第二模式符号的能量消耗过高,反而降低整体能量效率。因此,两种模式的幅度设计需要在抗噪性能与能量效率之间进行折中。
第一模式星座采用幅度较小的正交相移键控星座,其星座点分布在单位圆附近,平均能量较低。第二模式星座采用幅度较大的正交相移键控类星座,其星座点分布在更大的圆上,平均能量较高。两种模式的幅度门限位于二者之间,接收端据此进行模式判别。
从映射规则看,两种模式均采用格雷映射思想,使相邻星座点之间仅有一位比特不同,从而在发生相邻符号误判时尽量减少比特错误数。这种映射方式有助于降低整体误码率,尤其是在信噪比较低时效果更为明显。
5. 子载波放置规则
子载波放置是索引调制的关键环节。每组中两种模式符号的数量是固定的,但它们在组内的位置由索引比特决定。不同的索引取值对应不同的排列方式,从而形成不同的组内符号结构。
放置规则的设计需要满足两个基本要求:其一,每种索引状态对应的符号排列必须唯一,避免不同索引映射到相同结构;其二,各索引状态之间的差异应尽量明显,以便接收端在存在噪声和衰落时仍能可靠区分。
在本系统中,每组包含四个子载波,其中两个位置放置第一模式符号,两个位置放置第二模式符号。索引比特共有四种取值,分别对应四种不同的排列方式。每种排列方式都保证两种模式符号在组内交错分布,避免出现某一模式符号过度集中而影响检测性能。
放置完成后,每组形成一个四维符号向量。所有组的符号向量依次排列,构成完整的频域正交频分复用符号。该频域符号随后经过逆快速傅里叶变换转换为时域信号,并加入循环前缀以抵抗多径引起的符号间干扰。
6. 正交频分复用调制与循环前缀
正交频分复用调制的核心思想是将频域数据通过逆快速傅里叶变换转换为时域波形。频域符号在经过子载波放置后形成完整的频域向量,该向量经过逆快速傅里叶变换后得到时域采样序列。为便于能量归一化,发射端通常会对时域信号进行幅度调整,使发射信号的平均功率满足设定要求。
循环前缀的加入是正交频分复用系统抵抗多径衰落的关键步骤。将时域信号末尾的一段采样复制到信号前端,使接收端在去除循环前缀后仍能保持子载波之间的正交性。只要循环前缀长度不小于信道最大时延扩展,符号间干扰即可被有效抑制。
在加性高斯白噪声信道下,接收信号为发射信号与噪声之和。噪声为复高斯随机过程,其方差由信噪比决定。信噪比的设定通常以每比特能量与噪声功率谱密度之比为基准,并考虑循环前缀带来的能量开销以及每符号实际承载的比特数。因此,信噪比的折算关系需要综合考虑频谱效率与能量效率。
在瑞利衰落信道下,信道被建模为多抽头时域滤波器,各抽头系数为复高斯随机变量。信道频域响应由时域抽头经傅里叶变换得到。接收端在频域进行均衡,以补偿信道引起的幅度与相位失真。
7. 接收端处理流程
接收端首先去除循环前缀,得到有效时域采样序列。随后通过快速傅里叶变换将时域信号转换回频域,得到接收频域符号。在瑞利衰落信道下,还需进行频域均衡,以消除信道频域响应的影响。
均衡后的频域符号按组划分,每组形成一个接收向量。由于发射端每组符号均来自有限码本,接收端可采用最大似然检测方法恢复组内符号。最大似然检测的基本思想是在所有可能的码字中寻找与接收向量欧氏距离最小的码字,并将其作为检测结果。该方法在加性高斯白噪声条件下具有最优的误码性能,但复杂度随码本大小增加而上升。
为降低检测复杂度,系统在构造码本时仅保留满足“两个第一模式符号与两个第二模式符号”约束的候选向量。这样既保证了码本与发射端一致,又避免了不必要的搜索。由于每组子载波数较少,码本规模有限,最大似然检测的复杂度在可接受范围内。
检测得到组内符号后,接收端首先进行索引解调。索引解调依据符号幅度判断每个位置属于第一模式还是第二模式,再根据模式分布恢复索引比特。随后分别对第一模式符号和第二模式符号进行星座解调,恢复对应的数据比特。最后将索引比特与数据比特按发射端顺序拼接,得到完整的接收比特序列。
8. 索引解调与模式解调
索引解调的关键在于模式判别。由于两种模式在幅度上存在明显差异,接收端可设定一个幅度门限,将幅度高于门限的符号判为第二模式,低于门限的判为第一模式。门限的选取需要兼顾两种模式的幅度分布与噪声影响,通常取二者幅度的中间值。
模式判别完成后,根据每组中第一模式与第二模式的位置分布恢复索引比特。由于索引比特与位置组合之间存在一一对应关系,接收端只需将检测到的位置模式与预设映射表对照,即可得到索引比特。
数据解调分为第一模式解调与第二模式解调两部分。第一模式解调仅处理被判为第一模式的符号,依据其星座映射规则恢复比特;第二模式解调仅处理被判为第二模式的符号,依据其星座映射规则恢复比特。由于两种模式采用不同的星座幅度,解调时需分别使用对应的判决区域。
这种“先索引、后数据”的解调顺序与发射端的“先索引、后数据”映射顺序相对应,保证了收发两端信息结构的一致性。
9. 误码性能与频谱效率分析
误码率是衡量系统性能的核心指标。在仿真中,误码率定义为错误比特数与总传输比特数之比。总传输比特数由仿真符号数与每符号承载比特数共同决定。通过在不同信噪比下统计误码率,可以绘制误码率曲线,进而分析系统性能。
从频谱效率角度看,每符号承载的比特数由索引比特与数据比特共同构成。将每符号比特数除以总资源长度,即可得到系统的频谱效率。由于循环前缀不承载信息,其长度会影响频谱效率,因此在系统设计中需要权衡抗多径能力与频谱效率。
从能量效率角度看,双模式方案避免了传统索引调制中因子载波静默而造成的能量浪费。第二模式符号虽然能量较高,但其承载的信息量也相应增加,整体能量效率仍优于完全静默方案。两种模式的幅度设计需要在抗噪性能与能量效率之间取得平衡。
从检测复杂度角度看,最大似然检测的复杂度与码本大小和每组子载波数相关。由于每组子载波数较少,码本规模有限,检测复杂度可控。若需进一步降低复杂度,可考虑采用低复杂度次优检测方法,但会带来一定性能损失。
10. 仿真验证与结果讨论
为验证系统性能,本文在加性高斯白噪声信道与瑞利衰落信道下分别进行仿真。加性高斯白噪声信道用于验证系统在理想条件下的误码性能,瑞利衰落信道用于验证系统在多径环境下的鲁棒性。
在加性高斯白噪声信道下,仿真结果表明,随着信噪比提高,误码率逐渐下降,系统能够正常工作。与理论误码率曲线对比,可验证系统实现的正确性。在瑞利衰落信道下,由于信道存在深度衰落,误码率下降速度较慢,但通过频域均衡与最大似然检测,系统仍能获得可接受的误码性能。
仿真中还引入了文献参考误码率数据,用于与本文仿真结果进行对比。对比结果表明,本文系统在相同信噪比下的误码率与文献结果趋势一致,验证了系统设计的合理性。由于仿真中未考虑信道编码与交织,实际系统若引入信道编码,误码性能还可进一步提升。
11. 系统优势与局限性
本系统的主要优势体现在三个方面。其一,通过双模式星座与索引调制的结合,在相同子载波数量下承载更多比特,提高了频谱效率。其二,避免了传统索引调制中因子载波静默造成的能量浪费,提升了能量效率。其三,接收端采用最大似然检测,在加性高斯白噪声条件下具有最优误码性能,且由于每组子载波数较少,检测复杂度可控。
系统的局限性主要体现在两个方面。其一,最大似然检测的复杂度随码本规模增长而上升,若子载波分组数或每组子载波数增加,检测复杂度将显著提高。其二,双模式星座的幅度差异需要在抗噪性能与能量效率之间折中,幅度差异过小会导致模式误判,过大则降低能量效率。因此,在实际系统中需要根据信道条件与性能要求合理设计星座参数。
12. 结论与展望
本文围绕双模式正交频分复用索引调制系统展开研究,从系统模型、比特映射、子载波放置、正交频分复用调制、信道建模、最大似然检测、索引解调、误码性能与频谱效率等方面进行了系统分析。研究表明,该方案通过双模式星座与索引调制的结合,在保持较低检测复杂度的同时,有效提升了频谱效率与能量效率,在加性高斯白噪声信道与瑞利衰落信道下均表现出较好的误码性能。
未来工作可从以下几个方向展开。其一,研究低复杂度检测算法,以降低最大似然检测在更大规模系统下的计算负担。其二,引入信道编码与交织技术,进一步提升系统在衰落信道下的误码性能。其三,研究自适应双模式星座设计,使星座幅度能够根据信道状态动态调整,从而在抗噪性能与能量效率之间取得更优折中。其四,将该方案推广到多天线系统,结合空间索引调制进一步拓展信息承载维度。
📚第二部分——运行结果
部分代码:
% ============================================================
% DM-OFDM-IM 系统在 Rayleigh 衰落信道下的误码率仿真主程序
% 功能:完成双模式正交频分复用索引调制系统的
% 发射端映射、瑞利信道传输、接收端最大似然检测、
% 比特解调与误码率统计,并与文献结果进行对比
% ============================================================
clear all; % 清除工作区中的所有变量,避免旧数据干扰
close all; % 关闭所有已打开的图形窗口
clc; % 清除命令行窗口内容,保持输出整洁
% 载入最大似然检测所需的码本表
% crit 为预先构造的候选码字集合,每一行代表一种可能的
% 组内四维符号向量,供接收端进行最近邻搜索
load('DM_OFDM_ML_tablosu.mat');
% 下面被注释掉的代码用于对码本进行能量归一化
% 其思想是让每个码字的平均能量为 1,便于统一判决门限
% 本程序中未启用,保持原始码本能量分布
% crit_2=zeros(length(crit),4);
% for cc=1:length(crit)
% enerji_esitleyen = 1/sqrt(mean(abs(crit(cc,:)).^2));
% crit_2(cc,:) = enerji_esitleyen * single(crit(cc,:));
% end
% 初始化距离缓存数组,用于存放接收向量与每个码字的欧氏距离
olabilir=[1,length(crit)];
% ---------------- 系统参数设定 ----------------
cyclic_prefix = 16; % 循环前缀长度,用于抵抗多径引起的符号间干扰
nFFTSize = 128; % FFT 点数,即一个 OFDM 符号的子载波总数
g = 32; % 子载波分组数,将全部子载波划分为 32 组
n = nFFTSize/g; % 每组包含的子载波数,此处为 4
k = n/2; % 每组中参与索引调制的子载波数,此处为 2
% 计算每组可承载的索引比特数
% 组合数 C(n,k) 的二进制对数下取整即为可用索引比特数
g1 = floor(log2( faktoriyel(n)/(faktoriyel(n-k)*faktoriyel(k)) ));
Ma = n; % 模式 A 的星座阶数,等于每组子载波数
Mb = n; % 模式 B 的星座阶数,等于每组子载波数
% 计算每组中双模式数据比特总数
% 模式 A 占 k 个位置,模式 B 占 n-k 个位置
g2 = k*log2(Ma) + ((n-k)*log2(Mb));
% 每组总比特数 = 索引比特 + 双模式数据比特
nBitPerSymbol = g1+g2;
% 每个 OFDM 符号承载的总信息比特数
m = nBitPerSymbol*g;
nSym = 10^2; % 仿真中使用的 OFDM 符号数
nTap = 10; % 瑞利信道的多径抽头数
% ---------------- 收发缓存初始化 ----------------
g1_grubu = zeros(g,g1); % 索引比特分组缓存
Ma_grubu = zeros(g,(g2/2)); % 模式 A 数据比特缓存
Mb_grubu = zeros(g,(g2/2)); % 模式 B 数据比特缓存
temp_ilk2 = zeros(1,2); % 临时存放两个比特,用于星座映射
temp_son2 = zeros(1,2); % 临时存放另外两个比特
Ma_harita = zeros(nSym,2); % 模式 A 映射后的符号缓存
Mb_harita = zeros(nSym,2); % 模式 B 映射后的符号缓存
xF = zeros(nSym,nFFTSize); % 频域 OFDM 符号缓存
xT = zeros(nSym,nFFTSize); % 时域 OFDM 符号缓存
xhT = zeros(nSym,(nFFTSize+cyclic_prefix+nTap-1)); % 经过信道后的时域信号缓存
yF = zeros(nSym,m); % 接收端解调后的比特缓存
yF_1D = zeros(1,nSym*m); % 接收比特的串行缓存
demod = zeros(nSym,m); % 解调结果缓存
temp_alici_2 = zeros(1,n); % 接收端单个组的临时向量
g1_alinan = zeros(g,k); % 恢复出的索引比特
Ma_alinan = zeros(g,n); % 恢复出的模式 A 比特
Mb_alinan = zeros(g,n); % 恢复出的模式 B 比特
% ---------------- 信噪比设定 ----------------
Eb = 0:5:30; % 每比特信噪比取值,单位 dB
% 计算频谱效率:每符号比特数除以总资源长度(含循环前缀)
SE = m/(cyclic_prefix + nFFTSize);
% 将 Eb/N0 折算为 Es/N0
% 折算考虑了两部分:去掉循环前缀后的能量效率,以及频谱效率
EsN0dB = Eb + 10*log10(nFFTSize/(nFFTSize+cyclic_prefix))+ 10*log10(SE);
nErr = zeros(1,length(Eb)); % 每个信噪比下的错误比特数
nt = zeros(1,nSym*(nFFTSize+cyclic_prefix+nTap-1)); % 噪声缓存
olcek = zeros(nSym,1); % 每个 OFDM 符号的归一化因子
% ============================================================
% 主循环:逐个信噪比点进行仿真
% ============================================================
for cc=1:length(Eb)
% -------- 发射端:生成随机信息比特 --------
bilgi = randi([0 1],1,(nSym*m)); % 生成 0/1 随机信息比特
bilgi_grup = reshape(bilgi.',m,nSym).'; % 将比特按符号分组
% 逐个 OFDM 符号进行发射端处理
for aa=1:nSym
% 将当前符号的比特按每组 nBitPerSymbol 个进行分组
temp_verici1 = reshape(bilgi_grup(aa,:)',nBitPerSymbol,g).';
% 将每组比特拆分为索引比特、模式 A 比特、模式 B 比特
[g1_grubu,Ma_grubu,Mb_grubu] = bit_ayirma(temp_verici1,n,g1,g2,nBitPerSymbol,g);
% 对模式 A 与模式 B 比特分别进行星座映射
Ma_harita = Ma_haritalama(Ma_grubu,temp_ilk2,temp_son2,g);
Mb_harita = Mb_haritalama(Mb_grubu,temp_ilk2,temp_son2,g);
% 根据索引比特将两种模式符号放入组内子载波
temp_verici_2 = yerlestirme(Ma_harita,Mb_harita,g1_grubu,g,n);
% 将每组符号串行拼接,形成频域 OFDM 符号
temp_verici_2 = reshape(temp_verici_2.',1,[]);
xF(aa,:) = temp_verici_2;
% 通过 IFFT 将频域符号转换为时域符号
xT(aa,:) = (nFFTSize/sqrt(nFFTSize))*ifft(fftshift(xF(aa,:)),nFFTSize);
% 计算当前符号的均方根幅度,作为归一化因子
olcek(aa,1) = sqrt(mean(abs(xT(aa,:)).^2));
% 对时域符号进行能量归一化,使发射功率可控
xT(aa,:) = xT(aa,:)./olcek(aa,1);
end
% -------- 加入循环前缀 --------
% 将每个符号末尾的 cyclic_prefix 个采样复制到符号前端
xT_cyclic = [xT(:,(nFFTSize-cyclic_prefix+1):(nFFTSize)) xT];
% -------- 瑞利衰落信道 --------
% 生成时域抽头系数 ht 与频域响应 hF
[ht,hF]=Ray_kanal(nFFTSize,nSym,nTap);
% 对每个 OFDM 符号进行时域卷积,模拟多径衰落
for aa = 1:nSym
xhT(aa,:) = conv(xT_cyclic(aa,:),ht(aa,:));
end
% 将经过信道的信号串行化,便于叠加噪声
xT_1D = reshape(xhT.',1,[]);
% -------- 叠加噪声 --------
snr=EsN0dB(cc); % 当前信噪比
boyut = nSym*(cyclic_prefix+nFFTSize); % 有效信号长度
% 根据 Eb/N0 计算噪声标准差
% 其中 boyut/(nSym*m) 表示每比特对应的采样点数
sigma = sqrt((boyut/(nSym*m))/(10^(snr/10)));
% 生成复高斯噪声
nt = sqrt(1/2)*(sigma).*(randn(1,length(xT_1D)) + 1i*randn(1,length(xT_1D)));
% 接收信号 = 经过信道的信号 + 噪声
% 前面的系数用于补偿循环前缀带来的能量损失
outputIFFT = sqrt((nFFTSize+cyclic_prefix)/nFFTSize)*xT_1D + nt;
% ============================================================
% 接收端处理
% ============================================================
% 将串行接收信号按符号长度重塑为矩阵
rx_signal = reshape(outputIFFT,(nFFTSize+cyclic_prefix+nTap-1),nSym).';
% 去除循环前缀,保留有效数据段
rx_signal = rx_signal(:,(17:144));
% 逐个符号进行 FFT、信道均衡与能量恢复
for aa = 1:nSym
% 将时域信号转换回频域
rx_signal(aa,:) = (sqrt(nFFTSize)/nFFTSize)*fftshift(fft(rx_signal(aa,:),nFFTSize));
% 频域均衡:除以信道频域响应,补偿衰落
rx_signal(aa,:) = rx_signal(aa,:)./hF(aa,:);
% 恢复发射端归一化前的幅度
rx_signal(aa,:) = rx_signal(aa,:) .*olcek(aa,1);
end
% 逐个 OFDM 符号进行检测与解调
for aa=1:nSym
% 将频域符号按每组 n 个子载波进行分组
temp_alici_1 = reshape(rx_signal(aa,:),n,g).';
% 对每组进行最大似然检测
for a=1:g
temp_alici_2=temp_alici_1(a,:); % 当前组的接收向量
% 遍历码本,计算与每个码字的欧氏距离
for j=1:length(crit)
olabilir(j) = sum(abs(temp_alici_2-crit(j,:)).^2,2);
if olabilir(j)==0
break; % 完全匹配时提前退出
end
end
% 取距离最小的码字作为检测结果
[PP,I] = min(olabilir);
h=I(1,1);
temp_alici_1(a,:)=crit(h,:);
end
% 索引比特解调:根据符号幅度恢复索引信息
g1_alinan = g1_demodulation(temp_alici_1,g,k,n);
% 模式 A 比特解调:对幅度较小的符号进行 QPSK 解调
Ma_alinan = Ma_demodulation(temp_alici_1,g,n);
% 模式 B 比特解调:对幅度较大的符号进行 QPSK 解调
Mb_alinan = Mb_demodulation(temp_alici_1,g,n);
% 将三部分比特按发射端顺序拼接
demod = [g1_alinan Ma_alinan Mb_alinan];
yF(aa,:) = reshape(demod.',1,[]);
end
% 将接收比特串行化,便于与原始比特比较
yF_1D = reshape(yF.',1,[]);
% 统计当前信噪比下的错误比特数
nErr(cc) = size(find(bilgi-yF_1D),2);
end
% ---------------- 误码率计算 ----------------
simBer = nErr/(nSym*m); % 仿真误码率 = 错误比特数 / 总比特数
% 文献中给出的参考误码率,用于对比验证
makale_hata= [0.21 0.1 0.03 0.011 0.0033 0.001 3.6e-4];
% ---------------- 绘图 ----------------
close all; figure
% 绘制文献结果曲线
semilogy(Eb,makale_hata,'--s','LineWidth',2);
hold on
% 绘制本程序仿真结果曲线
semilogy(Eb,simBer,'--rx','LineWidth',2);
axis([0 30 10^-4 1]) % 设置坐标轴范围
grid on % 打开网格
legend('Makale Sonucu [5]', 'Benzetim'); % 图例
xlabel('Eb/No, dB') % 横轴标签
ylabel('Bit Error Rate') % 纵轴标签
🎉第三部分——参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
🌈第四部分——本文完整资源下载
资料获取,更多粉丝福利,MATLAB|Simulink|Python|数据|文档等完整资源获取
本文完整资源下载