基于扩频解扩+turbo译码的16QAM图传通信系统matlab误码率仿真,扩频参数可设置

1.算法仿真效果

matlab2022a仿真结果如下(完整代码运行后无水印):



仿真操作步骤可参考程序配套的操作视频。


2.算法涉及理论知识概要

该通信系统主要用于图像传输,适用于对图像质量和传输可靠性要求较高的场景,如无人机图像传输、视频监控、无线电视广播等。

在复杂的电磁环境中,需要保证图像传输的稳定性和清晰度,因此采用了扩频解扩和Turbo 译码等技术来提高系统的抗干扰能力。


发射端:包括图像源、16QAM调制器、扩频器、发射天线等。

接收端:包括接收天线、解扩器、16QAM解调器、Turbo 译码器、图像显示设备等。


2.1 16QAM调制解调

16QAM 是用两路独立的正交 4ASK 信号叠加而成,4ASK 是用多电平信号去键控载波而得到的信号。它是 2ASK 调制的推广,和 2ASK 相比,这种调制的优点在于信息传输速率高。正交幅度调制是利用多进制振幅键控(MASK)和正交载波调制相结合产生的。16 进制的正交振幅调制是一种振幅相位联合键控信号。16QAM 的产生有 2 种方法:

(1)正交调幅法,它是有 2 路正交的四电平振幅键控信号叠加而成;

(2)复合相移法:它是用 2 路独立的四相位移相键控信号叠加而成。


2.2 扩频技术

扩频技术是将信号的带宽扩展到比原始信号带宽宽得多的范围内,从而降低信号的功率谱密度,提高抗干扰能力。


在发射端,将原始信号与一个高速的扩频码进行乘法运算,使信号的带宽被扩展。


在接收端,使用与发射端相同的扩频码进行解扩,将信号恢复到原始带宽。


常用的扩频码有伪随机码(如m 序列、Gold 序列等),具有良好的自相关性和互相关性。


选择合适的扩频码可以提高系统的抗干扰性能和多址能力。


2.3 Turbo 译码

Turbo 码是一种接近香农极限的纠错编码技术,由两个并行的卷积码编码器和一个交织器组成。通过迭代译码的方式,不断更新译码结果,提高译码的准确性。


常用的Turbo 译码算法有最大后验概率(MAP)算法和软输出维特比算法(SOVA)等。这些算法通过计算接收信号的似然比,对发送的信息进行估计和纠错。Turbo 译码具有较高的纠错能力,能够在低信噪比条件下实现可靠的通信。但是,Turbo 译码的计算复杂度较高,需要较大的计算资源和时间。


3.MATLAB核心程序

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容