1.算法仿真效果
matlab2022a仿真结果如下:
2.算法涉及理论知识概要
OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM(Multi Carrier Modulation),多载波调制的一种。通过频分复用实现高速串行数据的并行传输, 它具有较好的抗多径衰落的能力,能够支持多用户接入。OFDM技术由MCM(Multi-Carrier Modulation,多载波调制)发展而来。OFDM技术是多载波传输方案的实现方式之一,它的调制和解调是分别基于IFFT和FFT来实现的,是实现复杂度最低、应用最广的一种多载波传输方案。
在通信系统中,信道所能提供的带宽通常比传送一路信号所需的带宽要宽得多。如果一个信道只传送一路信号是非常浪费的,为了能够充分利用信道的带宽,就可以采用频分复用的方法。
OFDM主要思想是:将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到在每个子信道上进行传输。正交信号可以通过在接收端采用相关技术来分开,这样可以减少子信道之间的相互干扰(ISI) 。每个子信道上的信号带宽小于信道的相关带宽,因此每个子信道上可以看成平坦性衰落,从而可以消除码间串扰,而且由于每个子信道的带宽仅仅是原信道带宽的一小部分,信道均衡变得相对容易。
OFDM技术是HPA联盟(HomePlug Powerline Alliance)工业规范的基础,它采用一种不连续的多音调技术,将被称为载波的不同频率中的大量信号合并成单一的信号,从而完成信号传送。由于这种技术具有在杂波干扰下传送信号的能力,因此常常会被利用在容易受外界干扰或者抵抗外界干扰能力较差的传输介质中。
OFDM系统频谱
通常的数字调制都是在单个载波上进行,如PSK、QAM等。这种单载波的调制方法易发生码间干扰而增加误码率,而且在多径传播的环境中因受瑞利衰落的影响而会造成突发误码。若将高速率的串行数据转换为若干低速率数据流,每个低速数据流对应一个载波进行调制,组成一个多载波的同时调制的并行传输系统。这样将总的信号带宽划分为N个互不重叠的子通道(频带小于Δf),N个子通道进行正交频分多重调制,就可克服上述单载波串行数据系统的缺陷。在向B3G/4G演进的过程中,OFDM是关键的技术之一,可以结合分集,时空编码,干扰和信道间干扰抑制以及智能天线技术,最大限度的提高了系统性能。包括以下类型:V-OFDM, W-OFDM, F-OFDM, MIMO-OFDM,多带-OFDM。
OFDM中的各个载波是相互正交的,每个载波在一个符号时间内有整数个载波周期,每个载波的频谱零点和相邻载波的零点重叠,这样便减小了载波间的干扰。由于载波间有部分重叠,所以它比传统的FDMA提高了频带利用率。
在OFDM传播过程中,高速信息数据流通过串并变换,分配到速率相对较低的若干子信道中传输,每个子信道中的符号周期相对增加,这样可减少因无线信道多径时延扩展所产生的时间弥散性对系统造成的码间干扰。另外,由于引入保护间隔,在保护间隔大于最大多径时延扩展的情况下,可以最大限度地消除多径带来的符号间干扰。如果用循环前缀作为保护间隔,还可避免多径带来的信道间干扰。
在过去的频分复用(FDM)系统中,整个带宽分成N个子频带,子频带之间不重叠,为了避免子频带间相互干扰,频带间通常加保护带宽,但这会使频谱利用率下降。为了克服这个缺点,OFDM采用N个重叠的子频带,子频带间正交,因而在接收端无需分离频谱就可将信号接收下来。
OFDM系统的一个主要优点是正交的子载波可以利用快速傅利叶变换(FFT/IFFT)实现调制和解调。对于N点的IDFT运算,需要实施N^2次复数乘法,而采用常见的基于2的IFFT算法,其复数乘法仅为(N/2)log2N,可显著降低运算复杂度。
在OFDM系统的发射端加入保护间隔,主要是为了消除多径所造成的ISI。其方法是在OFDM符号保护间隔内填入循环前缀,以保证在FFT周期内OFDM符号的时延副本内包含的波形周期个数也是整数。这样时延小于保护间隔的信号就不会在解调过程中产生ISI。由于OFDM技术有较强的抗ISI能力以及高频谱效率,2001年开始应用于光通信中,相当多的研究表明了该技术在光通信中的可行性。
3.MATLAB核心程序
for m=0:u-1 r=m+1; p1(m+1)=y(1,1)-2*y(1,2)*cos(r*s)+2*y(1,3)*cos(2*r*s)-2*y(1,4)*cos(3*r*s); end %OFDM for m=0:M-1 p2(m+1)=1; end %FBMC子载波 [H,w] = freqz(p1); H=H./max(H); figure plot(w/pi,20*log10(abs(H)),'b'); hold on plot(-w/pi,20*log10(abs(H)),'b'); hold on plot((w+.5)/pi,20*log10(abs(H)),'r'); hold on plot((-w+.5)/pi,20*log10(abs(H)),'r'); hold on plot((w+1)/pi,20*log10(abs(H)),'k'); hold on plot((-w+1)/pi,20*log10(abs(H)),'k'); grid on title('FBMC') %OFDM子载波 [H,w] = freqz(p2); H=H./max(H); figure plot(w/pi,20*log10(abs(H)),'b'); hold on plot(-w/pi,20*log10(abs(H)),'b'); hold on plot((w+.5)/pi,20*log10(abs(H)),'r'); hold on plot((-w+.5)/pi,20*log10(abs(H)),'r'); hold on plot((w+1)/pi,20*log10(abs(H)),'k'); hold on plot((-w+1)/pi,20*log10(abs(H)),'k'); grid on title('OFDM')
标签:20,OFDM,FBMC,信道,abs,matlab,载波,pi From: https://www.cnblogs.com/51matlab/p/17316945.html