1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Zp2Ym5pt
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
该通信系统主要用于图像传输,适用于对图像质量和传输可靠性要求较高的场景,如无人机图像传输、视频监控、无线电视广播等。
在复杂的电磁环境中,需要保证图像传输的稳定性和清晰度,因此采用了扩频解扩和 Turbo 译码等技术来提高系统的抗干扰能力。
发射端:包括图像源、16QAM调制器、扩频器、发射天线等。
接收端:包括接收天线、解扩器、16QAM解调器、Turbo 译码器、图像显示设备等。
4.部分源码
........................................................................
for i=1:length(SNR)
Rimages = [];
for iii=1:length(datbin)/Iimage_len
[SNR(i),iii,floor(length(datbin)/Iimage_len)]
%产生需要发送的随机数
Trans_data = [datbin(Iimage_len*(iii-1)+1:Iimage_len*iii)];
turbo_code = turbo_encode(Trans_data);
%DSSS
pseudoNumber = round(rand(1,fp)');
[dsss,converted,PN2] = func_dsss(turbo_code,pseudoNumber,fp);
Trans_BPSK = QAM16_modulation(dsss);
%通过高斯信道
Rec_BPSK = awgn(Trans_BPSK,SNR(i),'measured');
ReData = QAM16_demodulation(Rec_BPSK);
%DSSS
dsss2 = func_dsss2(ReData,pseudoNumber,fp);
%turbo译码
x_hat = round(turbo_decode(dsss2));
Rimages = [Rimages,x_hat];
end
Rimages_snr{i} = Rimages;
end
dat = Rimages_snr{1};
len = 3*length(Rbin);
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])]';
Images_snr_3(:,:,1) = RIimages;
Images_snr_3(:,:,2) = GIimages;
Images_snr_3(:,:,3) = BIimages;
%RGB合并
figure;
imshow(uint8(Images_snr_3));
dat = Rimages_snr{2};
len = 3*length(Rbin);
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])]';
Images_snr0(:,:,1) = RIimages;
Images_snr0(:,:,2) = GIimages;
Images_snr0(:,:,3) = BIimages;
%RGB合并
figure;
imshow(uint8(Images_snr0));
dat = Rimages_snr{3};
len = 3*length(Rbin);
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])]';
Images_snr3(:,:,1) = RIimages;
Images_snr3(:,:,2) = GIimages;
Images_snr3(:,:,3) = BIimages;
%RGB合并
figure;
imshow(uint8(Images_snr3));
if fp==1
save R_16qam_1_iamge.mat Images_snr_3 Images_snr0 Images_snr3
end
if fp==4
save R_16qam_4_iamge.mat Images_snr_3 Images_snr0 Images_snr3
end
if fp==8
save R_16qam_8_iamge.mat Images_snr_3 Images_snr0 Images_snr3
end
0sj_024m
---