1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y5qbmZpv
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
为了在接收端进行数据恢复,需要知道调制值的参考相位和幅度,在实际系统中,由于载波频率偏移、定时偏差记忆信道的频率选择性衰落等的影响信号会收到破坏,导致相位偏移和幅度变化。为了恢复信号,接收端存在两种信号检测方法,查分检测和相干检测。差分检测可以在时域和频域内分别进行:时域内差分通过比较当前OFDM符号子载波与前一个OFDM符号中对应子载波间幅度和相位的差值来实现。相干检测利用信号的参考值来检测信号,所以在使用相干信号检测的时候,前面需要一个信道估计。差分检测方法比较适合较低传输速率的OFDM系统,如欧洲的DAB系统。而对于要求更高的传输速率和频谱效率的OFDM系统,相干检测更合适。
OFDM 中信号检测算法总体分为三类,线性检测、非线性检测、最优检测。常用的算法有迫零ZF检测、均方误差MMSE、V-BLAST 检测和最大似然检测算法。在最优检测中的最大似然(ML)检测算法虽然性能是这几类中最好的,但其复杂度是随着天线数和信号调制阶数的逐渐的增加而成指数量级快速增加。当在实际应用中天线数目过多时,该检测算法的计算量将非常大,所以不适合实际使用。线性检测中最小均方误差(MMSE)信号检测算法和迫零(ZF)信号检测算法都归属于线性检测算法类型,它们只能对在信道矩阵方面对接收信号进行相对于线性均衡性质的检测,实现虽然简单,但是检测性能不理想,对比最大似然(ML)检测算法的精确度相差很多。V-BLAST 检测算法的性能和复杂度介于最大似然检测和线性检测之间,在现实中被广泛地应用。
4.部分源码
%OFDM参数
%数据长度
paras.lens = 2000;
%数据速率
paras.rate = 6;
%信号发射速率,恒定
Rate = 20e6;
fc = 100e6;
%循环谱检测参数
%采样频率
fs = 300e6;
%采样长度
N = 2048;
%平滑点数
M = 20;
%信噪比
SNR = 15;
%数据
Signals = round(rand(1,8*paras.lens));
%OFDM信号生成
Signal_OFDM = transmitter(Signals,paras);
%提升信号采样率
s_n = ceil(fs/Rate);
Signal_OFDM = Signal_OFDM(ones(s_n,1),:);
Signal_OFDM = reshape(Signal_OFDM, 1, s_n*length(Signal_OFDM));
%载波调制
Signal_channel = real(Signal_OFDM.*exp(j*2*pi*fc/fs*(0:length(Signal_OFDM)-1)));
Signal_channel = [Signal_channel];
01_198m