1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/aJaamJdx
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
在当今信息飞速发展的时代,图像传输的需求日益增长,对传输系统的性能要求也越发严苛。微波光子信道凭借其独特优势,成为实现高效、高速图像传输的关键技术路径。在该系统中,OFDM(正交频分复用)结合 QPSK(四相相移键控)的调制方式、LDPC(低密度奇偶校验码)编译码以及 LS(最小二乘法)信道估计技术相互协作,共同保障图像数据在复杂信道环境下的可靠传输。
4.部分源码
........................................................................
% 定义更接近现实的微波光子信道模型函数
fiber_length = [10]; % 光纤长度 (km)
dispersion = [17e-12]; % 色散系数 (s/m/nm)
dispersion_3rd = [0.07e-27]; % 三阶色散系数 (s^3/m)
attenuation = [0.2]; % 光纤损耗 (dB/km)
nonlinear_coeff = [1.3]; % 非线性系数 (W^-1/km)
Rec_ofdm_symbol = full_microwave_photonics_channel(passchan_ofdm_symbol, fiber_length, dispersion, dispersion_3rd, attenuation, nonlinear_coeff, SNR_dB(i));
%%
%开始接收
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);
%信道估计
%ls
[Sig_Lrmmse,Hs] = func_ls_estimation(fft_out,pilot_space,Pilot_seq,pilot_num);
%解调
Dqpsk = func_pideMapping(Sig_Lrmmse,fftlen*Nc);
%LDPC解码
z_hat = func_Dec(2*Dqpsk(1:end-(Len*Nc-length(seridata1)))-1,sigma,H,max_iter);
Dqpsk_decode = round(z_hat(size(G,2)+1-size(G,1):size(G,2)));
%转化为图片进行保存
save R1.mat Rimages_snr
load R1.mat
dat = Rimages_snr{1};
len = length(dat);
Rbin = dat(1:len/3);
Gbin = dat(1+len/3:2*len/3);
Bbin = dat(1+2*len/3:len);
%二进制转化为十进制
Rdec = func_bin2image(Rbin);
Gdec = func_bin2image(Gbin);
Bdec = func_bin2image(Bbin);
%十进制转化为矩阵
RIimages = [reshape(Rdec,[256,256])]';
GIimages = [reshape(Gdec,[256,256])]';
BIimages = [reshape(Bdec,[256,256])]';
ImagesLS_snr2(:,:,1) = RIimages;
ImagesLS_snr2(:,:,2) = GIimages;
ImagesLS_snr2(:,:,3) = BIimages;
%RGB合并
figure;
imshow(uint8(ImagesLS_snr2));
dat = Rimages_snr{2};
len = length(dat);
Rbin = dat(1:len/3);
Gbin = dat(1+len/3:2*len/3);
Bbin = dat(1+2*len/3:len);
%二进制转化为十进制
Rdec = func_bin2image(Rbin);
Gdec = func_bin2image(Gbin);
Bdec = func_bin2image(Bbin);
%十进制转化为矩阵
RIimages = [reshape(Rdec,[256,256])]';
GIimages = [reshape(Gdec,[256,256])]';
BIimages = [reshape(Bdec,[256,256])]';
ImagesLS_snr4(:,:,1) = RIimages;
ImagesLS_snr4(:,:,2) = GIimages;
ImagesLS_snr4(:,:,3) = BIimages;
%RGB合并
figure;
imshow(uint8(ImagesLS_snr4));
dat = Rimages_snr{3};
len = length(dat);
Rbin = dat(1:len/3);
Gbin = dat(1+len/3:2*len/3);
Bbin = dat(1+2*len/3:len);
%二进制转化为十进制
Rdec = func_bin2image(Rbin);
Gdec = func_bin2image(Gbin);
Bdec = func_bin2image(Bbin);
%十进制转化为矩阵
RIimages = [reshape(Rdec,[256,256])]';
GIimages = [reshape(Gdec,[256,256])]';
BIimages = [reshape(Bdec,[256,256])]';
ImagesLS_snr6(:,:,1) = RIimages;
ImagesLS_snr6(:,:,2) = GIimages;
ImagesLS_snr6(:,:,3) = BIimages;
%RGB合并
figure;
imshow(uint8(ImagesLS_snr6));
save R1_iamge.mat ImagesLS_snr2 ImagesLS_snr4 ImagesLS_snr6
0X_083m
---