1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJqak5xt
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
完整的SC-FDE单载波频域均衡通信链路的设计和实现,包括UW序列的设计、QPSK调制、帧同步、定时同步、载波同步、SNR估计和MMSE信道估计等环节。本文首先介绍了SC-FDE通信系统的基本原理和频域均衡的概念,然后详细介绍了各个环节的设计和实现步骤,并通过仿真实验验证了系统的可行性和性能。最后,对系统的优化和拓展进行了讨论,为进一步提高系统的性能和应用到更广泛的通信领域中提供了思路。
4.部分源码
...........................................................................
Dmap_qpsk= func_QPSK(data,LEN_data,LEN_frame);
%组帧
LEN_ud = LEN_UW*2+LEN_data;
frame = func_frame_gen(UW,Dmap_qpsk,LEN_frame,LEN_ud);
%上采样
Samples = 8; %采样倍数
frame_up = filter(ones(1,Samples),1,upsample(frame,Samples));
%成型滤波
[Tdatas,filter_coff]= func_filter(frame_up,LEN_UW,Samples);
%多径信道
Rdata = func_channel(Tdatas);
%匹配滤波
Rdata = upfirdn(Rdata, filter_coff);
%下采样
Rdata_dw = downsample(Rdata,Samples,2);
subplot(232);
plot(real(Rdata_dw),imag(Rdata_dw),'b*');
title('QPSK过莱斯多径信道后星座图');
subplot(233);
plot(real(Rdata_dw2),imag(Rdata_dw2),'b*');
title('QPSK+频偏和相偏,过莱斯多径信道后星座图');
%帧同步
Frame_N = length(Rdata_dw2)-LEN_UW;
Frame_peaks = func_frame_syn(Rdata_dw2,UW,LEN_UW,Frame_N);
%定时同步
Time_N = length(Rdata_dw2)-LEN_ud-LEN_UW;
Time_N2 = LEN_UW+LEN_data;
[Time_syn,P,R,M] = func_time_syn(Rdata_dw2,LEN_UW,Time_N,Time_N2);
%载波同步
Time_idx = Time_syn;
Rdata_dw3 = func_fre_syn(Rdata_dw2,UW,Time_idx,LEN_ALL,LEN_UW,LEN_fft,LEN_ud,LEN_data);
subplot(234);
plot(real(Rdata_dw3),imag(Rdata_dw3),'b*');
title('同步后QPSK星座图');
%频域均衡
[tmps1,tmps2,hk_1]= func_fre_mmse(Rdata_dw3,UW,LEN_ud,LEN_fft,LEN_UW,Time_idx,LEN_data,LEN_frame);
%QPSK解调
[rd0,rd1] = func_deQPSK(tmps1,tmps2);
subplot(236);
plot(real(tmps1),imag(tmps1),'b*');
title('均衡后QPSK星座图');
%% 绘图
% 帧同步
figure;
Time_idx=1:1:Frame_N;
plot(Time_idx,Frame_peaks(Time_idx));
hold on
plot(Time_syn,Frame_peaks(Time_syn),'r*');
grid on;
title('帧同步');
xlabel('定点d');
% 定时同步
figure;
Time_idx=1:1:Time_N;
plot(Time_idx,M(Time_idx));
grid on;
title('定时同步');
xlabel('定点d');
%信道频偏估计与补偿
[Time_synC,PC,RC,MC] = func_time_syn(Rdata_dw3,LEN_UW,Time_N,Time_N2);
figure;
Time_idx=1:1:Time_N;
plot(Time_idx,MC(Time_idx));
grid on;
title('频偏补偿后相关峰');
xlabel('定点d');
0X_002m