OFDM系统原理及其实现
- 格式:doc
- 大小:49.50 KB
- 文档页数:14
2023-11-09•OFDM原理•OFDM实现的关键技术•OFDM系统设计目录•OFDM系统性能评估•OFDM系统应用01 OFDM原理OFDM(正交频分复用)是一种无线通信传输技术,其主要思想是将高速数据流分割为多个低速子数据流,并在多个正交子载波上并行传输。
OFDM技术可以有效抵抗多径效应和频率选择性衰落,提高频谱利用率,实现高速数据传输。
OFDM基本概念OFDM系统主要由调制器、IFFT/FFT变换器和并/串转换器等组成。
调制器负责将输入的数据符号调制到各个子载波上,IFFT/FFT变换器则进行时域/频域变换,实现子载波的并行传输,最后通过并/串转换器将数据符号转换为串行信号进行传输。
OFDM系统组成OFDM信号调制主要采用QAM(Quadrature Amplitude Modulation)等调制方式,将输入的数据符号调制到各个子载波上。
QAM是一种同时对幅度和相位进行调制的调制方式,其调制符号由幅度和相位共同表示。
OFDM信号解调需要经过串/并转换、FFT/IFFT变换、解调等步骤。
串/并转换器将接收到的串行信号转换为并行信号,然后通过FFT/IFFT变换器进行频域/时域变换,得到各个子载波上的数据符号。
最后,解调器对数据符号进行解调,恢复出原始的数据。
02 OFDM实现的关键技术IFFT和FFT算法快速傅里叶变换(FFT)算法FFT是一种高效计算离散傅里叶变换(DFT)及其逆变换的算法,用于将信号从时域转换到频域,以及从频域转换到时域。
在OFDM系统中,FFT用于接收端解调数据,而IFFT则用于发射端调制数据。
逆快速傅里叶变换(IFFT)算法IFFT是FFT的逆运算,用于将信号从频域转换到时域。
在OFDM系统中,IFFT用于将调制后的数据转换为时域信号进行发射。
为了消除多径效应和符号间干扰(ISI),OFDM系统在每个符号之间插入了一段保护间隔。
保护间隔通常为一段循环前缀,其长度与符号长度相同。
ofdm实现原理OFDM(正交频分复用)是一种多载波调制技术,常用于无线通信系统中。
它的基本原理是将高速数据流分成多个低速子载波,然后将它们正交地叠加在一起进行传输。
OFDM的实现原理可以分为信号分割、子载波调制、并行传输和信号合并几个步骤。
在OFDM系统中,将要传输的高速数据流分成多个低速子载波。
这个过程称为信号分割。
通过将高速数据流分成多个低速子载波,可以降低每个子载波的传输速率,从而减小了信号传输过程中的频率扩展和码间干扰。
常见的分割方法有快速傅里叶变换(FFT)和离散余弦变换(DCT)。
接下来,对每个子载波进行调制。
调制方式可以根据实际需要而定,常见的调制方式有相位调制、振幅调制和正交振幅调制。
调制后的每个子载波携带了一部分原始信号的信息。
这些子载波之间是正交的,即它们的频率相互独立且互不干扰。
然后,将调制后的子载波并行传输。
每个子载波独占一部分频谱,通过并行传输可以充分利用频谱资源。
并行传输还可以提高系统的容量和抗干扰能力。
在并行传输过程中,可以采用不同的调制方式和编码方式,以适应不同的信道环境和传输要求。
将所有子载波的信号合并成一个OFDM信号进行发送。
在接收端,通过反向过程,将接收到的OFDM信号分解成多个子载波,并进行解调和解码,还原出原始的高速数据流。
OFDM的实现原理使得它在无线通信系统中具有很多优势。
首先,它可以有效地抵抗多径干扰。
由于每个子载波的带宽相对较窄,所以在多径传输环境中,不同子载波的传播时延可以被视为相等,从而减小了码间干扰。
其次,OFDM可以充分利用频谱资源。
由于子载波之间是正交的,所以可以将它们紧密地排列在一起,提高频谱利用率。
此外,OFDM还具有较好的抗频偏性能,能够适应高速移动和多用户同时传输的场景。
OFDM通过将高速数据流分割成多个低速子载波,并进行调制和并行传输,实现了高效的无线通信。
它的实现原理使得它在抗干扰、频谱利用和抗频偏等方面具有优势,被广泛应用于各种无线通信系统中。
OFDM技术原理及关键技术介绍OFDM (Orthogonal Frequency Division Multiplexing) 技术是一种常用于无线通信系统中的多载波调制技术。
它使用多个频率分离的正交子载波来传输数据,因此能够提供高速、高带宽的数据传输。
本文将介绍OFDM技术的原理以及一些关键技术。
1.子载波生成:OFDM系统将频谱分成多个频带,每个频带由一个正交子载波组成。
这些子载波在频域上是正交的,这意味着在相邻的子载波之间没有相互干扰。
2.符号映射:在每个子载波上分配一个符号,通常使用调制技术(如相移键控或正交振幅调制)将原始数据映射到每个符号上。
根据数据的可靠性要求,可以选择不同的调制方式。
3.并行传输:所有子载波上的符号同时传输,从而提高了数据传输的速率。
这种并行传输的形式将高速数据流降低到多个低速数据流。
4.保护间隔:为了抵抗多径传播引起的码间干扰,OFDM系统引入了保护间隔。
保护间隔是在子载波之间插入一些零值样点,用于消除码间干扰。
5.并串转换:将所有子载波的符号串行转换为一个连续的复杂数据流,以便在传输媒介上进行传输。
6.接收端处理:接收端对收到的数据进行反向处理,包括串并转换、解调和符号解映射。
最后,通过解调的数据经过去保护间隔处理,得到原始数据。
1.多径传播抑制:在无线通信中,多径传播是一个常见的问题,它会导致码间干扰。
为了抑制多径信号,OFDM系统采用了保护间隔技术。
保护间隔的作用是在相邻子载波之间插入一些零值样点,以减小码间干扰的影响。
2.信道估计和均衡:OFDM系统需要准确地估计信道响应,以便进行均衡处理。
在接收端,需要使用已知的信号进行信道估计,从而提高信号的解调性能。
3.载波同步:OFDM系统中,接收端需要将接收到的复杂数据流转换为并行的子载波,并进行解调。
为了实现这个过程,接收端需要对接收到的数据进行载波同步,以确保每个子载波的频率和相位保持一致。
4. Peak-to-Average Power Ratio(PAPR)控制:OFDM信号在传输中可能产生高峰值功率,这会导致信号的非线性失真。
OFDM原理在实际中的应用1. 引言OFDM(Orthogonal Frequency Division Multiplexing,正交频分复用)是一种多载波调制技术,被广泛应用于现代通信系统中。
由于其高效的频谱利用率和对频率选择性衰落的抗干扰能力,OFDM在实际中有许多应用。
本文将介绍OFDM原理及其在实际中的应用。
2. OFDM原理OFDM技术通过将高速数据信号分成多个低速子载波进行传输,每个子载波之间正交且相互独立。
这种正交性使得OFDM抵抗多径传播的影响,提高了信号的可靠性和传输速率。
OFDM的主要原理包括:2.1 子载波分配OFDM将频带分成多个子载波,每个子载波的带宽相对较窄,可以根据系统需求进行合理的分配。
常见的子载波数量为64或者128个,每个子载波的频域上正交且不重叠,这样可以有效地利用频谱资源。
2.2 傅里叶变换OFDM使用快速傅里叶变换(FFT)将时间域的信号转换为频域信号。
通过将信号从时间域转换为频域,可以将多径效应变成相干干扰,从而提高信号的抗多径传播能力。
2.3 碎片插入导频为了进行正交解调和信道估计,OFDM在传输过程中会周期性地插入导频信号。
导频信号用于恢复信号的相位和幅度信息,在接收端进行信道估计和均衡。
2.4 并行传输与并行接收OFDM可以同时传输多个子载波上的数据,从而提高了系统的传输效率。
在接收端,可以利用FFT实现并行接收,将多个子载波的信号恢复到时域。
3. OFDM在实际中的应用3.1 无线局域网(WLAN)OFDM技术被广泛应用于无线局域网(WLAN)中,如IEEE 802.11标准中的Wi-Fi。
通过使用OFDM,Wi-Fi可以实现高速数据传输和抗干扰能力,适用于家庭和企业无线网络。
OFDM的频谱利用率高和性能稳定,可以支持多用户同时传输数据。
3.2 数字电视广播OFDM技术在数字电视广播中也得到了广泛应用,如欧洲的DVB-T和美国的ATSC标准。
目录摘要 (2)ABSTRACT (3)第一章绪论 (4)第二章OFDM系统的基本介绍 (5)2.1OFDM的基本原理 (5)2.1.1 OFDM的产生和发展 (6)2.1.2 DFT的实现 (7)2.1.3 保护间隔、循环前缀和子载波数的选择 (8)2.1.4 子载波调制与解调 (10)2.2OFDM系统的优缺点 (11)2.3OFDM系统的关键技术 (11)第三章OFDM系统仿真实现 (13)3.1OFDM信号的时域及频域波形 (13)3.2带外功率辐射以及加窗技术 (15)3.3在不同信道环境和系统不同实现方式下的仿真 (18)3.3.1 调制与解调 (18)3.3.2 不同信道环境下的系统仿真实现 (20)3.3.3 系统不同实现方式的仿真实现 (22)第四章OFDM系统的仿真结果及性能分析 (23)4.1不同信道环境下的误码特性 (23)4.2不同系统实现方式下的误码特性 (28)第五章总结 (30)摘要本论文以OFDM系统为基础,介绍了OFDM系统的基本原理,以及使用OFDM技术的优势所在,并且展望了今后的无线移动技术的发展前景。
在简单介绍OFDM原理的同时,着重阐述了OFDM系统在不同信道环境和不同实现方式下的误码性能。
主要包括了OFDM系统在加性白高斯信道,在加性白高斯信道和多径干扰两种不同信道环境下系统的误码性能,其中后者还研究了系统在有保护间隔与无保护间隔的误码性能比较。
在理论分析的基础上,用MATLAB进行仿真,最后做出误码性能的分析和比较。
关键字: 正交频分复用(OFDM),离散傅立叶变换,AWGN,,多径干扰,保护间隔。
ABSTRACTThis paper presents you the basic priciple of OFDM(Orthogonal Frequency Division Multiplexing)and where it excels based on OFDM system , following with the prospective of wireless mobile communication. After a brief introduction to OFDM principle , it mainly focuses on the effect of OFDM system under different channels and with different system realizations on the Binary Error Rate (BER). It mainly includes two kinds of channels: the AWGN channel and the AWGN channel with Rayleigh fading. In the latter, we compare the BER with two different system realizations: one with Guarded Intervals(GI), and the other without (GI).Key Words : OFDM, DFT, AWGN, Rayleigh fading ,GI第一章绪论现代移动通信是一门复杂的高新技术,不但集中了无线通信和有线通信的最新技术成就,而且集中了网络接收和计算机技术的许多成果。
通信系统综合设计报告题目:OFDM系统原理及其实现学部:班级:姓名:学号:指导教师:撰写日期:目录第一章1.1要求仿真实现OFDM调制解调,在发射端,经串/并变换和IFFT变换,加上保护间隔(又称“循环前缀”),形成数字信号,通过信道到达接收端,结束端实现反变换,进行误码分析。
1.2系统基本原理及基本模块1.2.1设计思路OFDM的基本原理就是把高速的数据流通过串并变换,分配到传输速率相对较低的若干个子信道中进行传输。
由于每个子信道中的符号周期会相对增加,因此可以减轻由无线信道的多径时延扩展所产生的时间弥散性对系统造成的影响。
并且还可以在OFDM符号之间插入保护间隔,令保护间隔大于无线信道的最大时延扩展,这样就可以最大限度地消除由于多径而带来的符号间干扰(ISI)。
而且,一般都采用循环前缀作为保护间隔,从而可以避免由多径带来的子载波间干扰((ICI) 。
调制原理:设OFDM系统中有N个子信道,第K个子信道采用的子载波为:OFDM信号 N路子信号之和一个码元时间内任意两个子载波正交条件:子载频条件:子载频最小间隔:sT解调原理:根据子载波正交性质:1.2.2系统基本模块此OFMD包含4个模块,编码映射、串并/并串变换、OFDM调制/解调、添加/取出循环前缀等。
第二章2.1编程思路及框架OFDM实现框架如下2.1.1信道编码映射当调制好的信号在信道里进行传输的时候,必然要受到信道的影响,导致在接收端信号解调出现错误,使系统的误码率大大增加。
因而,为减少差错,提高通信系统抗干扰能力和可靠性,在一个实用的通信系统中,采用信道编码这一有效措施。
方法是在发送端的信号中加入一定的冗余度,而在接收端这些冗余度可以用来检测并且纠正信号通过信道后产生的错误。
当然,冗余度的加入降低了系统的工作效率,但是和系统误码率的降低(即信号更加正确地传送)相比,这些代价是可以接受的。
2.1.2串并/并串变换设OFDM系统的输入信号为串行二进制码元,其码元序列时间为T,先将此输入码元序列分为帧,每帧中有F个码元,即有F比特。
OFDM原理及实现OFDM,即正交频分复用,是一种在无线通信领域广泛应用的调制技术。
它通过将高速数据流拆分成多个较低速的子载波,在频域上正交传输,以增加数据传输的可靠性和效率。
本文将介绍OFDM的原理及其实现。
OFDM的原理基于频域与时域的转换。
它将高速数据流拆分成多个较低速的子载波,并将它们在频域上正交传输。
因为正交的子载波之间没有干扰,所以可以更有效地传输数据。
OFDM的频谱利用率也很高,可以达到90%以上。
在OFDM系统中,先将待传输的数据分割成多个子信号,然后将这些子信号变换到频域。
这个变换过程一般使用快速傅里叶变换(FFT)。
每个子信号对应一个子载波,它们在频域上呈现正交的关系。
在频域上,OFDM信号的每个子载波都是一个独立的调制信号。
这些子载波的频率可以根据需要设置,在实际系统中,一般是均匀地分布在整个带宽上。
每个子载波都可以采用不同的调制方式,以适应不同的传输环境和信道条件。
在接收端,OFDM信号需要经过反向变换,即反快速傅里叶变换(IFFT)。
IFFT可以将频域上的信号变换回时域。
反向变换后,将得到多个并行的子信号,然后将它们合并成一个完整的接收信号。
OFDM的实现需要解决几个关键问题。
首先是子载波单载波的调制问题。
一般采用相位偏移键控(PSK)、正交相分量调制(QAM)等调制方式。
其次是FFT和IFFT算法的实现。
FFT是OFDM的关键技术之一,需要使用高效的算法来实现高速的计算。
目前,有许多快速傅里叶变换算法可供选择,如快速傅里叶变换(Cooley-Tukey算法)和基于排序的快速傅里叶变换。
最后是频偏和多径干扰的抑制问题。
OFDM在接收端往往会受到频偏和多径干扰的影响,需要采取相应的技术来抑制这些干扰,如导频插入和信道估计。
OFDM广泛应用于许多无线通信标准中,如Wi-Fi、LTE和数字电视等。
它由于具有高频谱利用率、抗多径干扰能力强等优点,成为了现代无线通信的重要技术之一总之,OFDM通过将高速数据拆分成多个较低速的子载波,在频域上正交传输,增加了数据传输的可靠性和效率。
OFDM的原理与应用OFDM(正交频分复用)是一种基于频域传输的调制技术,其原理是将高速数据流分为多个低速子载波,然后将这些子载波正交分割,相互之间不会产生干扰。
OFDM技术具有分频复用、抗多径干扰、高频谱利用率等优点,被广泛应用于无线通信、数字电视、宽带接入等领域。
OFDM的原理主要包括子载波分割、调制和FFT(快速傅里叶变换)三个步骤。
首先,将高速数据流分为多个不同频率的子载波,以降低每个子载波的传输速率。
然后,对这些子载波进行调制,将数据编码为正弦或余弦波形。
最后,使用FFT将调制后的子载波合并为一个频域信号,并通过信道进行传输。
OFDM技术具有以下几个重要应用:1.无线通信:OFDM广泛应用于无线通信领域,如Wi-Fi(无线局域网)、LTE(长期演进)等。
由于OFDM技术对多径干扰具有较强的抵抗能力,能够有效提高系统的容量和覆盖范围。
2.数字电视:OFDM被用于数字电视领域,如DVB-T(数字视频广播-地面传输)和DVB-T2等系统。
通过将数字电视信号分成多个子载波,OFDM技术能够有效抵抗多径干扰和频率选择性衰落,提高信号质量和传输效率。
3.宽带接入:OFDM也被用于宽带接入技术,如ADSL(非对称数字用户线路)和VDSL(对称数字用户线路)。
OFDM技术可以利用传输线路的频域衰减特性,提高传输速率和抗干扰能力,实现高速宽带接入。
4.光纤通信:OFDM技术也可以应用于光纤通信系统中,如CO-OFDM (相干光正交频分复用)系统。
通过将光信号分割为多个子载波,CO-OFDM可以提高光纤通信系统的容量和传输距离。
总结起来,OFDM技术的优点在于其对频域干扰和多径干扰有较强的抵抗能力,能够提高系统的性能和可靠性。
随着无线通信和数字传输技术的不断发展,OFDM技术将继续在各个领域发挥重要作用。
ofdm原理推导
摘要:
,然后根据详细写一篇文章。
1.OFDM 简介
2.OFDM 的基本原理
3.OFDM 的调制与解调
4.OFDM 的优点与缺点
5.OFDM 在现代通信技术中的应用
正文:
1.OFDM 简介
正交频分复用(OFDM)是一种广泛应用于无线通信系统的多载波调制技术。
它的主要优势在于能够有效地对抗多径效应和频率选择性衰落,从而提高信号传输的可靠性和性能。
2.OFDM 的基本原理
OFDM 的基本原理是将数据流分成若干个子载波,每个子载波的频率相互正交。
这样,各子载波之间可以独立地调制和解调,从而实现多路信号的同时传输。
3.OFDM 的调制与解调
OFDM 的调制过程包括将数据流转换为频域信号,并在每个子载波上进行调制。
解调过程则是将接收到的频域信号转换回时域信号,然后进行进一步处
理。
4.OFDM 的优点与缺点
OFDM 技术的主要优点包括:
- 抗衰落能力强,能够有效抵抗频率选择性衰落和多径效应;
- 频率利用率高,能够充分利用频谱资源;
- 适合高速数据传输,具有较高的信道容量。
然而,OFDM 技术也存在一些缺点,如对频偏和相位噪声敏感,以及较高的计算复杂度等。
5.OFDM 在现代通信技术中的应用
OFDM 技术在现代通信技术中有着广泛的应用,如:
- 无线局域网(WLAN)技术,如Wi-Fi;
- 数字音频广播(DAB)技术;
- 无线通信技术,如LTE 和5G 等。
综上所述,OFDM 作为一种高效的多载波调制技术,在无线通信系统中具有重要的应用价值。
通信系统综合设计报告题目:OFDM系统原理及其实现学部:班级:姓名:学号:指导教师:撰写日期:目录第一章................................................... 错误!未定义书签。
要求................................................. 错误!未定义书签。
系统基本原理及基本模块............................... 错误!未定义书签。
设计思路......................................... 错误!未定义书签。
系统基本模块..................................... 错误!未定义书签。
第二章................................................... 错误!未定义书签。
编程思路及框架....................................... 错误!未定义书签。
信道编码映射..................................... 错误!未定义书签。
串并/并串变换.................................... 错误!未定义书签。
调制解调......................................... 错误!未定义书签。
添加/取出循环前缀................................ 错误!未定义书签。
第三章................................................... 错误!未定义书签。
实验结果............................................ 错误!未定义书签。
码率计算:....................................... 错误!未定义书签。
试验结果......................................... 错误!未定义书签。
总结..................................................... 错误!未定义书签。
附录..................................................... 错误!未定义书签。
第一章要求仿真实现OFDM调制解调,在发射端,经串/并变换和IFFT变换,加上保护间隔(又称“循环前缀”),形成数字信号,通过信道到达接收端,结束端实现反变换,进行误码分析。
系统基本原理及基本模块设计思路OFDM 的基本原理就是把高速的数据流通过串并变换,分配到传输速率相对较低的若干个子信道中进行传输。
由于每个子信道中的符号周期会相对增加,因此可以减轻由无线信道的多径时延扩展所产生的时间弥散性对系统造成的影响。
并且还可以在OFDM 符号之间插入保护间隔,令保护间隔大于无线信道的最大时延扩展,这样就可以最大限度地消除由于多径而带来的符号间干扰(ISI)。
而且,一般都采用循环前缀作为保护间隔,从而可以避免由多径带来的子载波间干扰((ICI) 。
调制原理:设OFDM 系统中有N 个子信道,第K 个子信道采用的子载波为:OFDM 信号路子信号之和一个码元时间 内任意两个子载波正交条件:子载频条件:子载频最小间隔:解调原理:根据子载波正交性质:系统基本模块此OFMD包含4个模块,编码映射、串并/并串变换、OFDM调制/解调、添加/取出循环前缀等。
第二章编程思路及框架OFDM实现框架如下信道编码映射当调制好的信号在信道里进行传输的时候,必然要受到信道的影响,导致在接收端信号解调出现错误,使系统的误码率大大增加。
因而,为减少差错,提高通信系统抗干扰能力和可靠性,在一个实用的通信系统中,采用信道编码这一有效措施。
方法是在发送端的信号中加入一定的冗余度,而在接收端这些冗余度可以用来检测并且纠正信号通过信道后产生的错误。
当然,冗余度的加入降低了系统的工作效率,但是和系统误码率的降低(即信号更加正确地传送)相比,这些代价是可以接受的。
串并/并串变换设OFDM系统的输入信号为串行二进制码元,其码元序列时间为T,先将此输入码元序列分为帧,每帧中有F个码元,即有F比特。
然后将此F 比特分成N组,每组中的比特数可以不同。
如下图所示。
调制解调调制离散傅里叶变换离散傅里叶逆变换;子载波信号OFDM信号复数形式解调解调即为其逆过程,用傅里叶变换完成添加/取出循环前缀OFDM系统中,每个并行数据支路都是窄带信号,可近似认为每个支路都经历平坦衰落,这样就减小了频率选择性衰落对信号的影响。
同时,每路子数据流速率的降低,减小了符号间干扰( ISI) 。
此外,还可以通过加保护间隔的办法完全消除符号间干扰。
假设每个OFDM符号由Y个样值组成,由于时延扩展,接收端将会有和信道冲激响应持续时间相对应的前L (L < Y) 个样值发生错误,为此,可以在发送信号前端加上M个样值,接收端收到信号时,先去掉前M个样值,然后再进行FFT,只要M ≥L就可完全消除ISI。
由于多径效应等因素,两个连续的分组信号之间会产生码间串扰,前一分组的信号可能会影响到后一分组信号的前面几个码元第三章实验结果码率计算:bit_errors = find(baseband_in ~= baseband_out);bit_error_count = size(bit_errors,2)baseband_out_lengthk=bit_error_countb=baseband_out_lengthber=k/b(误码率)试验结果原始数据(下图):发送端数据(下图):调制信号(下图):还原出来的信号(下图):实验分析K为误码数量:为5B为波形总量:为2000误码率BER=k/b=%16QAM误比特率为%总结得出OFDM系统的误码率远低于16QAM等,由此可以见OFDM系统具有一定优越性。
总结通过本次实验,我懂得了如何仿真实现OFDM调制解调,在发射端,经串/并变换和IFFT变换,加上保护间隔(又称“循环前缀”),形成数字信号,通过信道到达接收端,结束端实现反变换,进行误码分析。
通过本次实验,我加深了OFDM的基本原理就是把高速的数据流通过串并变换,分配到传输速率相对较低的若干个子信道中进行传输。
由于每个子信道中的符号周期会相对增加,因此可以减轻由无线信道的多径时延扩展所产生的时间弥散性对系统造成的影响。
并且还可以在OFDM符号之间插入保护间隔,令保护间隔大于无线信道的最大时延扩展,这样就可以最大限度地消除由于多径而带来的符号间干扰(ISI)。
而且,一般都采用循环前缀作为保护间隔,从而可以避免由多径带来的子载波间干扰((ICI)。
此次实验不但给我巩固了课本的基础知识,还加强了我的动手能力。
附录clear all;close all;IDFT_bin_length = 1024; % DFT的点数carrier_count = 200; % 载波的数量bits_per_symbol = 2; % 每个符号代表的比特数symbols_per_carrier = 50; % 每个载波使用的符号数SNR = 10; % 信道中的信噪比(dB)baseband_out_length=carrier_count*symbols_per_carrier*bits_per_s ymbol;%总比特数carriers = (1:carrier_count) + (floor(IDFT_bin_length/4) - floor(carrier_count/2));conjugate_carriers = IDFT_bin_length - carriers + 2;%发送端%产生随机二进制数据:baseband_out = round(rand(1,baseband_out_length));convert_matrix=reshape(baseband_out,bits_per_symbol,length(baseb and_out)/bits_per_symbol);for k = 1:(length(baseband_out)/bits_per_symbol)modulo_baseband(k) = 0;for i = 1:bits_per_symbolmodulo_baseband(k)=modulo_baseband(k)+convert_matrix(i,k)*2^(bit s_per_symbol-i);endend% 串并转换carrier_matrix=reshape(modulo_baseband,carrier_count,symbols_per _carrier)';% 对每一个载波的符号进行差分编码carrier_matrix = [zeros(1,carrier_count);carrier_matrix];for i = 2:(symbols_per_carrier + 1)carrier_matrix(i,:)=rem(carrier_matrix(i,:)+carrier_matrix(i-1,: ),2^bits_per_symbol);end% 把差分符号代码转换成相位carrier_matrix = carrier_matrix * ((2*pi)/(2^bits_per_symbol));% 把相位转换成复数[X,Y]=pol2cart(carrier_matrix,ones(size(carrier_matrix,1),size(c arrier_matrix,2)));complex_carrier_matrix = complex(X,Y);% 分配载波到指定的IFFT位置IDFT_modulation = zeros(symbols_per_carrier + 1, IDFT_bin_length); IDFT_modulation(:,carriers) = complex_carrier_matrix;IDFT_modulation(:,conjugate_carriers) = conj(complex_carrier_matrix);% 画出频域中的OFDM信号代表figure (1)stem(0:IDFT_bin_length-1,abs(IDFT_modulation(2,1:IDFT_bin_length)),'b*-')grid onaxis ([0 IDFT_bin_length ])ylabel('Magnitude')xlabel('IDFT Bin')title('OFDM Carrier Frequency Magnitude')% 通过IFFT将频域转化为时域,得到时域信号time_wave_matrix = ifft(IDFT_modulation');time_wave_matrix = time_wave_matrix';%画出一个符号周期的时域OFDM信号figure (2)plot(0:IDFT_bin_length-1,time_wave_matrix(2,:))grid onylabel('Amplitude')xlabel('Time')title('OFDM Time Signal, One Symbol Period')%画出每一个载波对应的时域信号(分离的OFDM信号)for f = 1:carrier_counttemp_bins(1:IDFT_bin_length)=0+0j;temp_bins(carriers(f))=IDFT_modulation(2,carriers(f));temp_bins(conjugate_carriers(f))=IDFT_modulation(2,conjugate_car riers(f));temp_time = idft(temp_bins');figure(3)plot(0:IDFT_bin_length-1, temp_time)hold onendgrid onylabel('Amplitude')xlabel('Time')title('Separated Time Waveforms Carriers')for i = 1:symbols_per_carrier + 1windowed_time_wave_matrix(i,:)=real(time_wave_matrix(i,:)).*hamm ing(IDFT_bin_length)';windowed_time_wave_matrix(i,:) = real(time_wave_matrix(i,:)); end%串并转换ofdm_modulation=reshape(windowed_time_wave_matrix',1,IDFT_bin_le ngth*(symbols_per_carrier+1));% 画出整个时域OFDMtemp_time = IDFT_bin_length*(symbols_per_carrier+1);figure (4)plot(0:temp_time-1,ofdm_modulation)grid onylabel('Amplitude (volts)')xlabel('Time (samples)')title('OFDM Time Signal')% 上变频,这个模型中我们把经过IFFT运算后OFDM直接发送Tx_data = ofdm_modulation;%信道% The channel model is Gaussian (AWGN) +Multipath(时延为1) Tx_signal_power = var(Tx_data);linear_SNR = 10^(SNR/10);noise_sigma = Tx_signal_power/linear_SNR;noise_scale_factor = sqrt(noise_sigma);noise = randn(1, length(Tx_data))*noise_scale_factor;copy1=zeros(1,length(ofdm_modulation));for i=2:length(ofdm_modulation)copy1(i)=ofdm_modulation(i-1);endRx_Data = Tx_data + noise;% 根据符号长度和符号数将串行的符号转换为并行的% - 每一列是符号周期Rx_Data_matrix=reshape(Rx_Data,IDFT_bin_length,symbols_per_carrier + 1);%对每一列信号做FFT得到频域信号Rx_spectrum = dft(Rx_Data_matrix);% 抽取接收信号中有载波的点Rx_carriers = Rx_spectrum(carriers,:)';% 计算载波的相位% - 弧度转换为角度% - 归一化相位(0-360)Rx_phase = angle(Rx_carriers)*(180/pi);phase_negative = find(Rx_phase < 0);Rx_phase(phase_negative) = rem(Rx_phase(phase_negative)+360,360); % 用diff()计算相位差Rx_decoded_phase = diff(Rx_phase);phase_negative = find(Rx_decoded_phase < 0);Rx_decoded_phase(phase_negative) = rem(Rx_decoded_phase(phase_negative)+360,360);% 相位转化为符号base_phase = 360/2^bits_per_symbol;delta_phase = base_phase/2;Rx_decoded_symbols=zeros(size(Rx_decoded_phase,1),size(Rx_decoded_phase,2));for i = 1:(2^bits_per_symbol - 1)center_phase = base_phase*i;plus_delta = center_phase+delta_phase;minus_delta = center_phase-delta_phase;decoded=find((Rx_decoded_phase<=plus_delta)&(Rx_decoded_phase>mi nus_delta));Rx_decoded_symbols(decoded)=i;end% Convert the matrix into a serial symbol streamRx_serial_symbols=reshape(Rx_decoded_symbols',1,size(Rx_decoded_ symbols,1)*size(Rx_decoded_symbols,2));% Convert the symbols to binaryfor i = bits_per_symbol: -1: 1if i ~= 1Rx_binary_matrix(i,:) = rem(Rx_serial_symbols,2);Rx_serial_symbols = floor(Rx_serial_symbols/2);elseRx_binary_matrix(i,:) = Rx_serial_symbols;endendbaseband_in=reshape(Rx_binary_matrix,1,size(Rx_binary_matrix,1)* size(Rx_binary_matrix,2));% 查找错位比特计算误码率bit_errors = find(baseband_in ~= baseband_out);bit_error_count = size(bit_errors,2)baseband_out_lengthk=bit_error_countb=baseband_out_lengthber=k/b。