关注我,追更更多通信仿真代码!
文章目录
- 摘要
- 1 引言
- 2 OFDM系统与信道模型
- 2.1 OFDM基本原理
- 2.2 无线信道模
- 3 信道估计方法
- 3.1 LS信道估计
- 3.2 基于插值的信道估计
- 3.3 Comb-DFT信道估计
- 3.4 MMSE信道估计及平滑退化
- 4 仿真设计与分析
- 4.1 参数设置
- 4.2 仿真结果分析
- 4.3 部分代码
- 5 总结
摘要
正交频分复用(OFDM)技术因其高频谱效率和较强的抗多径能力,被广泛应用于现代无线通信系统。然而,无线信道的频率选择性和时间选择性会严重影响OFDM系统的解调性能,因此信道估计成为接收端的关键环节。本文围绕OFDM系统中的信道估计问题,研究了几种典型方法:最小二乘(LS)估计、线性插值、样条插值、中值滤波、梳状离散傅里叶变换(Comb-DFT)估计以及最小均方误差(MMSE)估计。基于MATLAB仿真平台,在TDL-E信道和Rayleigh信道下分别设计了三个仿真实验:Comb-DFT与LS线性插值的对比、不同插值方法与导频步长的对比、LS与MMSE的对比。
1 引言
随着无线通信技术的快速发展,人们对高速数据传输的需求日益增长。OFDM作为一种多载波调制技术,将高速数据流分配到多个相互正交的子载波上传输,能够有效对抗频率选择性衰落,并简化接收端均衡。然而,无线信道具有多径效应和多普勒效应,导致接收信号在幅度和相位上发生畸变。为了在接收端正确恢复发送数据,必须对信道进行估计和补偿。
信道估计方法通常分为基于导频的估计和盲估计。基于导频的估计在实际系统中更为常见,其基本思想是在发送端插入已知的导频符号,接收端利用导频位置的信道响应进行估计,再通过插值或变换得到所有子载波上的信道频响。常用的估计准则包括LS和MMSE。LS估计实现简单,但受噪声影响大;MMSE估计利用信道统计信息,性能更优,但计算复杂度高且需要知道噪声功率和信道相关矩阵。此外,插值方法的选择、导频间隔的大小以及时域降噪策略都会影响最终估计性能。
本文基于两个MATLAB仿真实验,研究OFDM系统中的多种信道估计方法。第一个实验针对TDL-E信道,对比Comb-DFT与LS线性插值;第二个程序针对Rayleigh信道,对比LS在不同插值方式(中值、线性、样条)和不同导频步长下的性能,并进一步比较LS与MMSE。通过仿真结果分析各方法的优缺点,为实际系统设计提供依据。
2 OFDM系统与信道模型
2.1 OFDM基本原理
2.2 无线信道模
3 信道估计方法
3.1 LS信道估计
3.2 基于插值的信道估计
3.3 Comb-DFT信道估计
3.4 MMSE信道估计及平滑退化
4 仿真设计与分析
4.1 参数设置
实验一参数设置
| 参数 | 取值 |
|---|---|
| 使用子载波数 | 1320 |
| 导频间隔 | 6 |
| 采样率 | 30.72 MHz |
| 子载波间隔 | 15 kHz |
| 扩展子载波数 | 6 |
| 总子载波数 | 1332 |
| 时域截断长度 | 58 |
| 调制方式 | 16-QAM |
| 信道模型 | TDL-E |
| 时延扩展 | 100 ns |
| 移动速度 | 30 km/h |
| 载波频率 | 4 GHz |
| K因子 | 22 dB |
| SNR范围 | 0:5:30 dB |
实验二参数设置
| 参数 | 取值 |
|---|---|
| FFT长度 | 1024 |
| CP长度 | 256 |
| 使用子载波数 | 840 |
| 调制方式 | 16-QAM |
| 采样率 | 20 MHz |
| 信道模型 | Rayleigh |
| 路径时延 | [0 110 190 410] ns |
| 平均路径增益 | [0 -9.7 -19.2 -22.8] dB |
| 最大多普勒频移 | 5 Hz |
| 多普勒谱 | Jakes |
| 导频步长 | 16和4 |
| SNR范围 | 0:5:45 dB |
| MMSE退化中心 | 27.5 dB |
| MMSE退化宽度 | 2.5 dB |
4.2 仿真结果分析
- 可以看到:
Comb-DFT通过时域截断有效抑制噪声,在TDL-E信道下性能始终优于LS线性插值,且信噪比越高优势越显著。在Rayleigh信道下,导频步长越小估计越准确,线性插值表现最稳健;MMSE在低信噪比下优于LS,高信噪比下平滑退化为LS。
4.3 部分代码
clear;close all;clc;%%参数 Nused=1320;Sf=6;Fs=30.72e6;Delta_f=15e3;%带扩展的 Comb 数组 N_ext=6;Ncomb_ext=Nused+2*N_ext;%=1332=6*222Ng_local=round(144*Ncomb_ext/2048);used_start=N_ext+1;%=7used_end=N_ext+Nused;%=1326pilot_in_used=(1:Sf:Nused).';Npilot=length(pilot_in_used);pilot_in_ext=pilot_in_used+N_ext;data_in_used=setdiff((1:Nused).',pilot_in_used);data_in_ext=data_in_used+N_ext;%线性插值权重 n_vec=(1:Nused).';i_left=floor((n_vec-1)/Sf)+1;i_left=min(i_left,Npilot);i_right=min(i_left+1,Npilot);pos_l=pilot_in_used(i_left);pos_r=pilot_in_used(i_right);denom=pos_r-pos_l;denom(denom==0)=1;t_vec=(n_vec-pos_l)./denom;t_vec(pos_l==pos_r)=0;w_r=t_vec;w_l=1-t_vec;%信道 v_kmh=30;fc=4e9;c=physconst('lightspeed');fd=(v_kmh*1000/3600)/c*fc;delay_spread_ns=100;tdl=nrTDLChannel;tdl.DelayProfile='TDL-E';tdl.DelaySpread=delay_spread_ns*1e-9;tdl.MaximumDopplerShift=fd;tdl.SampleRate=Fs;tdl.NumTransmitAntennas=1;tdl.NumReceiveAntennas=1;tdl.NormalizePathGains=true;info_tdl=info(tdl);max_delay_s=max(info_tdl.PathDelays);Fs_comb=Ncomb_ext*Delta_f;max_delay_comb_samples=ceil(max_delay_s*Fs_comb);L_trunc=max_delay_comb_samples+16;fprintf('=== 可视化 |S(ω)| 与 BER,TDL-E ===\n');fprintf('Nused=%d,Sf=%d,Ncomb_ext=%d,L_trunc=%d\n\n',...Nused,Sf,Ncomb_ext,L_trunc);M=16;Mod_Order=4;K_dB=22;%%理论 BER function ber=theoretical_ber_tdl_e(EbN0_dB,M,K_dB)k=log2(M);L=sqrt(M);EbN0=10.^(EbN0_dB/10);ber=(2/k)*(1-1/L)*erfc(sqrt(3*EbN0*k/(2*(M-1))));K=10^(K_dB/10);ber=ber/(1+1/K);end%BER 曲线 SNRdB=0:5:30;nSNR=length(SNRdB);BER_comb=zeros(size(SNRdB));BER_ls=zeros(size(SNRdB));MIN_ERRORS=100;MAX_BITS_CAP=5e7;rng(42);BER_pred=theoretical_ber_tdl_e(SNRdB-10*log10(Mod_Order),M,K_dB);fori_snr=1:nSNR EsN0_lin=10^(SNRdB(i_snr)/10);err_comb=0;err_ls=0;total_bits=0;fprintf('BER SNR = %5.1f dB: ',SNRdB(i_snr));tic;while(err_comb<MIN_ERRORS||err_ls<MIN_ERRORS)...&&total_bits<MAX_BITS_CAP data_bits=randi([01],length(data_in_used)*Mod_Order,1);data_syms=qammod(data_bits,M,'InputType','bit',...'UnitAveragePower',true);pilot_bits=randi([01],Npilot*Mod_Order,1);pilot_syms=qammod(pilot_bits,M,'InputType','bit',...'UnitAveragePower',true);freq_syms=zeros(Ncomb_ext,1);freq_syms(data_in_ext)=data_syms;freq_syms(pilot_in_ext)=pilot_syms;x_time=ifft(freq_syms)*sqrt(Ncomb_ext);x_cp=[x_time(end-Ng_local+1:end);x_time];reset(tdl);y_ch=tdl(complex(x_cp));noise=sqrt(1/(2*EsN0_lin))*...(randn(size(y_ch))+1j*randn(size(y_ch)));y_rx=y_ch+noise;y_time=y_rx(Ng_local+1:end);Y_nat=fft(y_time)/sqrt(Ncomb_ext);pilot_syms_nat=freq_syms(pilot_in_ext);H_LS_pil=Y_nat(pilot_in_ext)./pilot_syms_nat;ifany(~isfinite(H_LS_pil))continue;end%Comb-DFT H_comb=zeros(Ncomb_ext,1);H_comb(pilot_in_ext)=H_LS_pil;slope_L=H_LS_pil(2)-H_LS_pil(1);H_comb(1)=H_LS_pil(1)-slope_L;slope_R=H_LS_pil(end)-H_LS_pil(end-1);H_comb(Ncomb_ext-5)=H_LS_pil(end)+slope_R;h_comb=ifft(H_comb)*sqrt(Ncomb_ext);h_trunc=zeros(Ncomb_ext,1);h_trunc(1:L_trunc)=h_comb(1:L_trunc)*Sf;H_est_full=fft(h_trunc)/sqrt(Ncomb_ext);H_est_comb=H_est_full(used_start:used_end);%LS+线性插值 H_est_ls=w_l.*H_LS_pil(i_left)+w_r.*H_LS_pil(i_right);%均衡器 Y_data_nat=Y_nat(data_in_ext);tx_syms_nat=freq_syms(data_in_ext);tx_bits_used=qamdemod(tx_syms_nat,M,'OutputType','bit',...'UnitAveragePower',true);H_d=H_est_comb(data_in_used);X_eq=conj(H_d).*Y_data_nat./(abs(H_d).^2+1/EsN0_lin+eps);X_eq(~isfinite(X_eq))=0;rx=qamdemod(X_eq,M,'OutputType','bit','UnitAveragePower',true);err_comb=err_comb+sum(tx_bits_used~=rx);H_d=H_est_ls(data_in_used);X_eq=conj(H_d).*Y_data_nat./(abs(H_d).^2+1/EsN0_lin+eps);X_eq(~isfinite(X_eq))=0;rx=qamdemod(X_eq,M,'OutputType','bit','UnitAveragePower',true);err_ls=err_ls+sum(tx_bits_used~=rx);total_bits=total_bits+length(tx_bits_used);endBER_comb(i_snr)=err_comb/total_bits;BER_ls(i_snr)=err_ls/total_bits;fprintf('t=%.1f 秒 | Comb: %.3e | LS: %.3e',...toc,BER_comb(i_snr),BER_ls(i_snr));iferr_ls>0&&err_comb>0fprintf(' | Comb 相对 LS: %+.2f dB\n',...10*log10(BER_ls(i_snr)/BER_comb(i_snr)));elsefprintf('\n');end end5 总结
本文围绕OFDM系统中的信道估计问题,系统研究了LS、线性插值、样条插值、中值滤波、Comb-DFT及MMSE等多种典型方法,并在TDL-E与Rayleigh两类信道下通过MATLAB仿真进行了对比分析。结果表明:Comb-DFT凭借时域截断有效抑制噪声,在TDL-E信道下性能始终优于LS线性插值,且信噪比越高优势越明显;在Rayleigh信道下,导频步长越小估计越准确,线性插值表现最稳健,MMSE在低信噪比下优于LS,高信噪比下平滑退化为LS。综合来看,实际系统设计需根据信道特性与复杂度约束,在估计精度与实现代价之间做出权衡。