目录
1.引言
2.算法测试效果
3.算法涉及理论知识概要
3.1 时域相关检测原理
3.2 频域相关检测原理
3.3 接收端精同步
4.MATLAB核心程序
5.完整算法代码文件获得
1.引言
该Simulink模型完整复现了IEEE 802.11g标准下的OFDM通信链路,核心目标是实现信号帧的同步检测。发送端通过QPSK调制、前导码插入、IFFT生成OFDM符号,经AWGN信道传输后,接收端利用时域 / 频域相关运算,基于短训练序列(STS)和长训练序列(LTS)完成帧同步,最终实现数据解调。帧同步作为OFDM接收的首要环节,是后续载波同步、信道估计与数据解调的前提,其性能直接决定了系统的通信可靠性。
2.算法测试效果
3.算法涉及理论知识概要
IEEE 802.11g的帧结构以短训练序列(STS)和长训练序列(LTS)为核心同步标识:STS由10个重复的短符号组成,周期为16个采样点,用于粗同步与信号检测;LTS由2个重复的长符号组成,周期为64个采样点,用于精同步与频偏估计。帧检测的核心原理是利用训练序列的自相关特性,通过滑动相关运算找到相关峰,确定帧的起始位置,分为时域相关和频域相关两种实现方式。
3.1 时域相关检测原理
时域相关直接对接收信号与本地训练序列进行滑动互相关运算,利用训练序列的周期性和自相关峰值特性实现帧检测。设接收基带信号为r(n),本地短训练序列为Sshort(n),长度为Ns=16,则滑动互相关运算为:
其中(⋅)∗表示复共轭运算。当接收信号滑动到帧起始位置时,接收序列与本地序列高度相关,相关值Rshort(k)会出现尖锐峰值,以此实现粗同步。
长序列相关峰更窄,可实现精同步,消除短序列同步的误差。
3.2 频域相关检测原理
频域相关利用FFT的卷积特性,将时域相关运算转换为频域乘法运算,降低长序列相关的计算复杂度。设接收信号的FFT为R(k),本地训练序列的FFT为S(k),根据卷积定理,时域相关等于频域共轭相乘:
其中R(k)=FFT{r(n)},S(k)=FFT{s(n)}。频域相关通过一次FFT、一次频域相乘和一次IFFT完成,大幅减少了长序列相关的运算量,适合硬件实现。
3.3 接收端精同步
LTS长度为64,其自相关特性更尖锐,相关峰宽度仅为一个采样点,可实现亚采样级别的同步。时域相关运算为:
4.MATLAB核心程序
figure
plot(sc1w2ri,'r','linewidth',2);
hold on;
stem(sc1w2ri);
xlabel('time (0.05 us)')
ylabel('amplitude(dB)')
title('Long sequence Frequency domain correlation')%时域相关
%时域相关
[sc1pw1prt]=xcorr(R_Real_time,Short_seq_sampleR);
[sc1pw1pit]=xcorr(R_Imag_time,Short_seq_sampleI);
sc1w1ri=sc1pw1pit.^2+sc1pw1prt.^2;
sc1w1ri=sc1w1ri/max(sc1w1ri);
figure
plot(sc1w1ri,'r','linewidth',2);
hold on;
stem(sc1w1ri);
xlabel('time (0.05 us)')
ylabel('amplitude(dB)')
title('Short sequence Time domain correlation');[sc1pw2prt]= xcorr(R_Real_time,Long_seq_sampleR);
[sc1pw2pit]= xcorr(R_Imag_time,Long_seq_sampleI);
sc1w2ri = sc1pw2pit.^2+sc1pw2prt.^2;
sc1w2ri = sc1w2ri/max(sc1w2ri);
figure
plot(sc1w2ri,'r','linewidth',2);
hold on;
stem(sc1w2ri);
xlabel('time (0.05 us)')
ylabel('amplitude(dB)')
title('Long sequence Time domain correlation')% 9.短码实数部分在时域上的自相关
figure;
subplot(221);
[a,b]=xcorr(Short_seq_sampleR,'unbiased');
stem(b,a);
title('autocor of short sequence real in time domain');
%10.短码虚数部分在时域上的自相关
subplot(222);
[a,b]=xcorr(Short_seq_sampleI,'unbiased');
stem(b,a);
title('autocor of short sequence image in time domain');
%11.短码实数部分在频域上的自相关
subplot(223);
[a,b]=xcorr(Short_seq_sample,'unbiased');
stem(b,a);
title('autocor of short sequence real in frequency domain');%12.短码虚数部分在频域上的自相关
subplot(224);
[a,b]=xcorr(Short_seq_sample,'unbiased');
stem(b,a);
title('autocor of short sequence real in frequency domain');
%13.长码实数部分在时域上的自相关
figure;
subplot(221);
[a,b]=xcorr(Long_seq_sampleR,'unbiased');
stem(b,a);
title('autocor of long sequence real in time domain');
%14.长码虚数部分在时域上的自相关
subplot(222);
[a,b]=xcorr(Long_seq_sampleI,'unbiased');
stem(b,a);
title('autocor of long sequence image in time domain');
%15.长码实数部分在频域上的自相关
subplot(223);
[a,b]=xcorr(Xl,'unbiased');
stem(b,a);
title('autocor of long sequence image in frequency domain');%16.长码虚数部分在频域上的自相关
subplot(224);
[a,b]=xcorr(Xl,'unbiased');
stem(b,a);
title('autocor of long sequence image in frequency domain');12_005m
5.完整算法代码文件获得
完整程序见博客首页左侧或者打开本文底部GZH名片
(V关注后回复码:X131)
V