目录
正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)技术由于其高效的频谱利用率和抗多径衰落能力,在现代无线通信系统中得到了广泛应用。然而,无线信道的时变性和多径衰落特性会严重影响 OFDM 系统的性能。为了克服这些问题,信道估计与均衡技术成为了 OFDM 系统中的关键环节。其中,最小二乘(Least Squares,LS)算法是一种简单而有效的信道估计方法。
1.OFDM 系统基本原理
OFDM是一种多载波调制技术,它将高速的数据流分成若干个低速的子数据流,每个子数据流通过一个子载波进行调制后并行传输。OFDM 信号的生成过程可以分为以下几个步骤:首先,将输入的串行数据进行串并转换,得到多个并行的子数据流;然后,对每个子数据流进行数字调制,如 QPSK、16QAM 等;最后,将调制后的子数据流分别映射到不同的子载波上,并进行快速傅里叶逆变换(Inverse Fast Fourier Transform,IFFT),得到时域的 OFDM 信号。
2.LS 算法信道估计原理
为了进行信道估计,需要在发送的 OFDM 信号中插入导频信号。导频信号通常是已知的固定符号,可以在接收端用来估计信道响应。导频图案的设计需要考虑信道的特性和系统的性能要求。常见的导频图案有梳状导频、块状导频和网格导频等。导频信号可以在时域或频域插入。在时域插入导频信号时,需要在发送的 OFDM 信号中选择一些特定的时刻插入导频符号;在频域插入导频信号时,需要在发送的 OFDM 信号中选择一些特定的子载波插入导频符号。
无线信道的时变性和多径衰落特性会导致接收信号的幅度和相位发生变化,从而影响 OFDM 系统的性能。信道均衡的目的就是通过对接收信号进行处理,消除信道的影响,使得接收信号尽可能地接近发送信号。
3.均衡的方法
ZF均衡是一种简单的线性均衡方法,它通过将接收信号除以信道估计值来消除信道的影响。
ZF 均衡的优点是简单易实现,缺点是在噪声较大的情况下,性能会下降。
接收端主要包括串并转换、FFT、信道估计、均衡和解调等模块。首先,将接收的串行信号进行串并转换,得到并行的接收信号;然后,对接收信号进行 FFT,得到频域的接收信号;接着,利用导频信号进行信道估计,得到信道估计值;然后,根据信道估计值进行均衡,消除信道的影响;最后,对均衡后的信号进行解调,恢复出原始的发送数据。
4.MATLAB程序
..................12.................................................
Lfft = 256; %可以设置,FFT长度,可以设置为256,512,1024
Lcarr = 200; %可以设置,载波数,但其和导频数量相加要比Lfft小
Lsamp = 2; % 每个符号的采样点数
Lsymb_carr = 24; %可以设置, 符号数乘以载波数,12,24,36,48
LI = 8; %可以设置,大于4 导频之间的间隔
Np = ceil(Lcarr/LI) + 1; % 导频数,加1的原因是使最后一列也是导频
%以上参数,设置时,需要注意总和不要超过Lfft大小
Ncp = 8; %可以设置, 保护间隔长度
SNR_end = 40; %可以设置, 最终信噪比
SNR_step = 2; %可以设置, 信噪比步长
% 信道模型:带多普勒频移的瑞利衰落信道
fd = 0; %可以设置, 多普勒频移,<10
Lmulti = 2; %可以设置, 多径数
Amp = [1 0.8]; %可以设置,个数和Lmulti相同 多径幅度
delay = [2 3]; %可以设置,个数和Lmulti相同 各径延迟
......................................................................
Req = Rls ./ Hch_LS3;
% 并串变换
YY0 = reshape(Rls.', 1, Nums / Lsamp);
YY1 = reshape(Req.', 1, Nums / Lsamp);
% QPSK解调
Rec1 = sign(real(YY0));
Iec1 = sign(imag(YY0));
Rec2 = sign(real(YY1));
Iec2 = sign(imag(YY1));
err1 = [err1, errcnt1];
err2 = [err2, errcnt2];
end
% 绘制误比特率图
figure;
semilogy([0:SNR_step:SNR_end], err1 ./ Nums,'-bs',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.0,0.0]);
hold on;
semilogy([0:SNR_step:SNR_end], err2 ./ Nums,'-r>',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.9,0.0]);
hold on;
grid on;
legend('无信道估计', 'LS信道估计');
hold off;
5.测试结果
通过LS信道估计之后,系统性能得到了明显的提升。
6.完整程序下载
完整可运行代码,博主已上传至CSDN,使用版本为matlab2022a: