全文原理介绍见:https://zhuanlan.zhihu.com/p/57967971
OFDM matlab实现:
1.基带数据产生
2.卷积码编码(一个输入,两个输出,每个数据被编为两位的卷积码),2位传送一个bit 的数据
函数:poly2trellis(),convenc()
3.4PSK调制,每位传输2bit数据
函数:pskmod()
4,生成扩频码(3阶的m序列,初始寄存器值为1,1,1),将调制后的数据和扩频码内积相乘,得到扩频后的数据(牺牲带宽换取数据的可靠性,频带利用率下降)。
modu_data 行:载波(除去传输导频的载波)
列:OFDM符号
spread_data 行:载波(除去传输导频的载波)
列:每7列表示一个OFDM符号
函数:mseq()作者自写
5.插入导频,用作信道估计
导频位置为从第一个载波开始,每隔6个载波插入一次,共11个导频信号。
6.IFFT,对要传输的基带信号进行IFFT变换
ifft_data 行:采样点
列:每7列表示一个OFDM符号
7.插入CP,CP长度一般为有效信号长度的四分之一,整个OFDM符号长度的五分之一。此时一个OFDM符号的时间长度变为N_fft+N_cp。
8.并串转换
9.设定信噪比,经过信道,叠加噪声
10.串并转换
11.去除CP
12.FFT,对接收到的信号进行FFT变换
fft_data 行:载波
列:每7列表示一个OFDM符号
12.信道均衡
根据接收到的导频使用线性插值法来估计信道
函数:interp1()
13.信道校正
将接收到的数据除以估计的信道,消除信道的影响
14.解扩
demspread_data 行:载波
列:OFDM符号
15.4PSK解调
函数:pskdemod
16.信道译码
对卷积码解码,得到传输的信号。