目录

1.8ASK调制原理

2. 8ASK解调原理

3.Turbo编译码

4.MATLAB程序

5.仿真结果

6.完整程序下载


整个系统结构如下图所示:

下面对其理论和仿真做介绍。

1.8ASK调制原理

       ASK即“幅移键控”又称为“振幅键控”,其中2ASK又称为“开关键控”(通断键控)的,所以又记作OOK信号。ASK是一种相对简单的调制方式。幅移键控(ASK)相当于模拟信号中的调幅,只不过与载频信号相乘的是二进制数码而已。幅移就是把频率、相位作为常量,而把振幅作为变量,信息比特是通过载波的幅度来传递的。

       MASK,又称多进制数字调制法。在二进制数字调制中每个符号只能表示0和1(+1或-1)。但在许多实际的数字传输系统中却往往采用多进制的数字调制方式。与二进制数字调制系统相比,多进制数字调制系统具有如下两个特点:第一:在相同的信道码源调制中,每个符号可以携带log2M比特信息,因此,当信道频带受限时可以使信息传输率增加,提高了频带利用率。但由此付出的代价是增加信号功率和实现上的复杂性。 第二,在相同的信息速率下,由于多进制方式的信道传输速率可以比二进制的低,因而多进制信号码源的持续时间要比二进制的宽。加宽码元宽度,就会增加信号码元的能量,也能减小由于信道特性引起的码间干扰的影响等。

       在 8ASK 调制中,我们要将二进制信息序列映射到不同幅度的载波信号上。设输入的二进制信息序列为{bn},每两个二进制位构成一组,共有种组合000、001、010、011、100、101、110、111。

调制信号生成

2. 8ASK解调原理

相干解调

非相干解调

       在实际的通信链路中,发送端通过 8ASK 调制将二进制信息转换为幅度调制后的信号发送出去,信号经过信道传输后,在接收端通过相干解调或非相干解调恢复出原始的二进制信息。整个过程中,信号的频谱特性、解调方式以及误码率等因素都对通信质量有着重要的影响。例如,在信道噪声较大的情况下,相干解调可能具有更好的性能,但需要更复杂的本地载波恢复电路;而非相干解调电路相对简单,但误码率可能会相对较高。

本课题采用的是相干解调。

3.Turbo编译码

       Turbo码是一种极为复杂的信道编码技术,译码算法往往由于硬件实现的复杂度太高或者译码时延太长而难以实现。现目前Turbo码领域面临的主要问题是:在复杂度和时延都可以接受的前提下如何获得最佳的系统性能。Turbo码由分量码经由交织器级联而成。因此,分量码和交织器设计的好坏是决定Turbo码性能的关键因素。实际的通信系统中,为提高系统带宽效率,一种方法是通过删减部分校验比特来提高编码速率,称为删余。

      Turbo码的编码过程实际上是一个利用强约束短码构造伪随机长码的过程。Turbo码的译码算法主要有两大类。是基于最大后验概率(MAP)的软输出算法,主要包括标准MAP算法、对数域上的Log.MAP算法和Max. Log-MAP算法、修正的MAP算法(M-MAP)、滑动窗MAP(SW-MAP)算法和只有前向递推的MAP算法(OSA)。其中,MAP算法是MAP算法的对数形式,它通过将大量的乘法运算转化为加法运算来简化算法的复杂性。

       Turbo码由2个循环系统卷积码并行级联而成:译码采用迭代的串行译码交织器是Turbo 码所特有的,它可以使得信息序列随机化,增加各码字间的重量,从而提高码的保护能力 。

       Turbo编码器的基本结构如图1所示:

        从图1的仿真结果可知,Turbo码编码器主要由分量删余矩阵、两个分量编码器、复接器以及交织器组成。分量编码器是Turbo码编码器中的一个重要组成部分。Turbo码的分量编码器使用RSC编码,因为循环编码器可以改善码的比特误码率性能。删余矩阵是通过删除冗余的校验位来调节码率,Turbo码采用两个成员编器。交织器的作用是通过改变信息传输过程中的发送次序,将连续的突发错误分散化,尽可能的降低连续错误的持续时间。Turbo码,通过交织器,可以改变其行列重量分布,并将输入的码元符号的次序进行随机化输出,尽可能的降低码元之间的相关性,从而进一步提升算法的性能。         

      Turbo译码器主要包括如下几个结构:两个分量译码器模块,交织器模块,解交织器模块以及硬判决模块。

       Turbo码的译码使用了迭代译码。利用EXIT图实现对迭代译码过程的跟踪,从而估计迭代译码的收敛性。利用EXIT图还可以预测实现一定性能要求时所必须的迭代译码次数。它为分析迭代译码过程和迭代译码方案的设计提供了有力的工具。

4.MATLAB程序

部分matlab程序如下图所示:

77....................................
end
yod2=func_dec2bin(yod);
y = -2*yod2+1; 
x_hat      = round(turbo_decode(y(1:end),max_iter));



figure % 创建图形窗口
subplot(411) % 创建3行1列的子图,并定位到第一个
plot(ask,'b','linewidth',1) % 绘制ASK调制信号
title('8ASK Modulation'); % 设置标题
grid on % 打开网格


subplot(412) % 定位到第二个子图
plot(Ydemod,'b','linewidth',1) % 绘制载波信号
title('8ASK解调'); % 设置标题
grid on % 打开网格

subplot(413) % 定位到第三个子图
plot(yfilter,'b','linewidth',1) % 绘制载波信号
title('低通滤波'); % 设置标题
grid on % 打开网格

subplot(414) % 定位到第三个子图
stairs(yod,'b','linewidth',1) % 绘制载波信号
title('判决输出'); % 设置标题
grid on % 打开网格



5.仿真结果

6.完整程序下载

完整可运行代码,博主已上传至CSDN,使用版本为matlab2024B:

(本程序包含程序简要讲解和操作步骤视频)

https://download.csdn.net/download/ccsss22/90944334

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐