1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZZaakp1y
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
LTE(Long-Term Evolution)是下一代无线通信技术,它采用了SC-FDMA(Single-Carrier Frequency-Division Multiple Access)作为上行链路传输方案,以及OFDMA(Orthogonal Frequency-Division Multiple Access)作为下行链路传输方案。这两种技术都属于多址接入技术,能够实现多用户同时使用同一频段进行通信,而不会相互干扰。
4.部分源码
..................................................................
%每个SNR点上仿真若干次
for i=1:length(SNR_dB)
i
Error = 0;
err_all = 0;
for iii=1:nloop(i)
iii
rng(iii);
%%
%产生测试信号
msg = rand(Len*Nc/4,1)>=0.5;
%turbo编码
seridata1 = func_turbo_code(msg,N,M);
........................................................................
%每次仿真信道采样的开始位置
count_begin =(iii-1)*(5*counter);
trms_1 = delay_avg/timeval;
t_max = 4e-6/timeval;
%信道采样点数,每个调制符号采一个点
[passchan_ofdm_symbol,H] = func_multipath_chann(Guard_int_ofdm_out,Nmultipath,Pow_avg,delay_multi,Fre_offset,timeval,counter,count_begin);
%加入噪声
Rec_ofdm_symbol = awgn(passchan_ofdm_symbol,SNR_dB(i),'measured');
%%
%开始接收
Guard_int_remove = func_guard_interval_remove(Rec_ofdm_symbol,(fftlen+Guard_int),Guard_int,(Nc+pilot_num));
%FFT
fft_out = fft(Guard_int_remove);
%sub carrier demapping
fft_out = func_desubcarrierMap(fft_out);
fft_out = ifft(fft_out);
%信道估计
%LMMSE
[Sig_Lrmmse,Hs] = func_lmmse_estimation(fft_out,pilot_space,Pilot_seq,pilot_num,trms_1,t_max,10^(SNR_dB(i)/10));
%解调
Dqpsk = func_deMapping(Sig_Lrmmse,fftlen*Nc);
%turbo解码
Dqpsk_decode = [func_turbo_decode(2*Dqpsk(1:end-(Len*Nc-length(seridata1)))-1,N,M)]';
%计算误码率
err_num = Len*Nc/4-length(find(msg==Dqpsk_decode(1:Len*Nc/4)));
Error = Error + err_num;
end
%计算误码率
err_all = err_all+Len*Nc/4;
Err_Rate(i) = Error/err_all/nloop(i);
end
.....................................................................
papr = zeros(1,PAPR_len);
psFilter = r;
for n = 1:PAPR_len
n
tmp = round(rand(BLOCK,2));
tmp = tmp*2 - 1;
data = (tmp(:,1) + j*tmp(:,2))/sqrt(2);
X = fft(data);
Y = zeros(totalSubcarriers,1);
Y(1:Q:totalSubcarriers) = X;
y = ifft(Y);
y_oversampled(1:Nos:Nos*totalSubcarriers) = y;
y_result = filter(psFilter, 1, y_oversampled);
%PAPR.
papr(n) = 10*log10(max(abs(y_result).^2) / mean(abs(y_result).^2));
end
[X1,X2] = hist(papr,50);
N(ii,:)=X1;
Xs(ii,:)=X2;
end
figure
semilogy(Xs(1,:),1-cumsum(N(1,:))/max(cumsum(N(1,:))),'b','linewidth',2);
hold on
semilogy(Xs(2,:),1-cumsum(N(2,:))/max(cumsum(N(2,:))),'r','linewidth',2);
hold on
semilogy(Xs(3,:),1-cumsum(N(3,:))/max(cumsum(N(3,:))),'k','linewidth',2);
title ('PAPR of SC-FDMA')
xlabel ('PAPR[dB]')
ylabel ('{PAPR(PAPR>PAPR0)}')
grid on;
legend('User = 16','User = 32','User = 64');
%发送信号
figure
stem(msg(500:2000));
title('发送信号');
figure
stem(Dqpsk_decode(500:2000));
title('接收信号');
% 误码率
figure
semilogy(SNR_dB,Err_Rate,'b-o');
grid on
xlabel('SNR');
ylabel('BER');
axis([0.999,8,1e-5,1]);
%星座图
[R,C] = size(Sig_Lrmmse);
RR = reshape(Sig_Lrmmse,[R*C,1]);
scatterplot(RR);
save up.mat N Xs seridata RR SNR_dB Err_Rate
0X_033m