通信系统综合设计与实践
题目 基于MATLAB的模拟信号的数字传输系统 院(系)名称 专业名称 学生姓名 学生学号 指导教师
信息工程学院 通信工程 郑军营、王鹏辉、罗敬畏 090110029、090110068、090114033 宫娜娜
2012年5月16日
通信系统综合设计与实践
页第 II页
第II页
摘 要
数字通信系统己成为当今通信的发展方向,然而自然界的信息通过传感器转换后,绝大部分是模拟量,因而需要将模拟信号转化成数字信号再进行传播。主要用于语音传输,在光纤通信、数字微波通信、卫星通信中得到广泛的应用。由此可见,在信号传输过程中,把模拟信号数字化,对推动移动通信事业的发展有着重大意义。基于以上模拟信号数字传输方式的重要性,及鲜明的现实意义,借助于MATLAB 软件,设计一个模拟信号的数字传输系统。该系统包括PCM编译码、2FSK调制解调、AWGN信道和滤波器,通过此通信系统模型,可以直观、方便地进行计算和仿真,并对其现有的理论进行仔细的分析、研究。
关键词:PCM,2FSK,MATLAB
通信系统综合设计与实践
页第 III页
第III页
目 录
1系统总体设计 ................................................................................................................ 1
1.1 总体框图 ............................................................................................................ 1 1.2 设计思路 ............................................................................................................ 1 1.3 设计方法 ............................................................................................................ 1 2 MATLAB实现系统仿真 ............................................................................................ 2
2.1 PCM编译码设计 .............................................................................................. 2
2.1.1 A律和U律的介绍比较及其选择 .......................................... 2 2.1.2 PCM编码.................................................................................. 2 2.1.3 PCM译码.................................................................................. 3
2.2 2FSK调制解调设计 ......................................................................................... 3
2.2.1 2FSK、2ASK及2PSK简介、比较及选择 ........................... 3 2.2.2 2FSK调制设计 ......................................................................... 3 2.2.3 2FSK解调设计 ......................................................................... 4
2.3 信道设计 ............................................................................................................ 4 2.4 滤波器设计 ........................................................................................................ 4 2.5 仿真及其数据分析 .............................................................................................. 4
2.5.1 PCM编译码的仿真设计.......................................................... 5 2.5.2 2FSK调试解调的仿真设计 ..................................................... 6 2.5.3 仿真结果及数据分析 ............................................................... 7
3 Simulink实现与仿真结果分析 ............................................................................... 10
3.1 Simulink简介 .................................................................................................. 10 3.2 仿真及其分.............................................................. ............................ ........... 10 3.3 仿真波形 ............................................................................................................ 11 4 课程设计时遇到的困难及总结 ............................................................................... 13
4.1 课程设计时遇到的困难 .................................................................................. 13
4.1.1 困难1 对A律的设计 ......................................................... 13 4.1.2 困难2 信号变换 .................................................................. 13
通信系统综合设计与实践
页第 IV页
第IV页
4.1.3 困难3 FSK的调制与解调 .................................................. 13 4.1.4 困难4 低通滤波器设计 ...................................................... 13 4.1.5 困难5 Simulink参数的设置 .............................................. 13
4.2 课程设计最终总结 .......................................................................................... 14 5 参考文献 .................................................................................. 错误!未定义书签。 6 附录1 程序1 ......................................................................................................... 16 附录2 附录3
程序2 ......................................................................................................... 19 Simulink模块参数设置............................................................................21 通信系统综合设计与实践
页第 1页
第1页
1 系统总体设计
1.1 总体框图
经过查找资料,我们对系统设计有了整体理解认识,通过不同的侧面进行考
虑,我们最终的系统设计如下:
模拟 信源 抽样 量化 PCM编码 2FSK 调制 AWGN 信道 信号 输出 低通 滤波 PCM 译码 2FSK 解调
图1.1总体框图
1.2 设计思路
1. 信号的压缩扩张,PCM编码与解码。 2. 2FSK的二进制频移键控调制和解调 3. 对AWGN信道的设计 4. 对低通滤波器的设计
1.3 设计方法
1. 设计一个A律13折线近似的PCM编码器模型,能够对样值在[-1,1] 内
的归一化信号进行编码;
2. 设计一个对应编码器的PCM解码器;
3 . 用两个不同频率的余弦信号对信号进行调制(100KHZ、220KHZ);
通信系统综合设计与实践
页第 2页
4. 用相干解调对2FSK进行解调;
第2页
5. 同时将信号经过AWGN信道加入噪声,通过不同噪声的功率,研究对信号误码率的影响;
6. 最后将译码输出信号经过滤波器,滤除因译码错误造成的高频干扰。
2 MATLAB实现系统仿真
2.1 PCM编译码设计
2.1.1 A律和U律的介绍比较及其选择
相对于模拟传输系统来说,数字传输系统的抗干扰能力强,差错可控等一系列优点,而将模拟信号转化成数字信号机必须进行相应的编码技术。现在的编码 技术主要分为两种:一种为均匀量化,另一种为非均匀量化。对于均匀量化来说,在大信噪比的情况下,对信号的影响不大,但是在小信噪比时,误码率会急剧增加,严重影响信号的质量。基于此,采用的编码方式是非均匀量化。在非均匀量化中,主要有两种压缩方法:A律十三折线法和U律十五折线法。对于两种编码方式各有优缺点,A律在小信噪比时的误码率比U律的高,但是在大信噪比时A律的比U律的低。结合我国的通用编码方式是A律,所以我们在本系统设计时采用的是A律十三折线法[2]。 2.1.2 PCM编码
PCM编码就是将一个模拟信号进行抽样、量化和编码。在抽样之前我们还必须对信号进行归一化处理,这样我们可以使信号便于非均匀量化。
所谓A压缩律也就是压缩器具有如下特性的压缩律:
y?Ax1,0?X?1?lnAA
y?1?lnAx1,?X?11?lnAA
A律压扩特性是连续曲线,A值不同压,扩特性亦不同,在电路上实现这样的函数规律是相当复杂的。实际中,往往都采用近似于A律函数规律的13折线(A=87.6)的压扩特性。将信号化成八位二进制表示的数据。这八位PCM码的格式为:
通信系统综合设计与实践
页第 3页
表2.1 八位PCM码格式
Bit1 符号位 Bit2 Bit3 段落码 Bit4 Bit5 Bit6 第3页
Bit7 Bit8 段内码 段落码是非均匀的,而对于段内码是均匀的,所以对信号进行编码时,要分不同的情况进行讨论。 2.1.3 PCM译码
对于PCM译码来说,就是PCM编码的逆过程,在编程中先确定符号位,再确定段落号,最后找到段内的位置,最后将其转化为十进制数,再乘以信号的振幅,就可以的到想要的信号。 2.2 2FSK调制解调设计
2.2.1 2FSK、2ASK及2PSK简介、比较及选择
数字信号的传输凡是分为基带传输和带通传输,实际的大多数信道(如无线信道)都是用的带通传输。为了使信号能在带通信道中传输,必须用数字基带信号对载波进行调制,以使信号与信道的特性匹配,即数字调制。常用的数字调制技术是利用数字信号的离散取值特点通过开关键控载波,从而实现调制,而载波的可控特性有振幅、频率、相位,所以可获得振幅键控(ASK)、频移键控(FSK)、相移键控(PSK)。它的主要优点是: 实现起来较容易,抗噪声与抗衰减的性能较好。在中低速数据传输中得到了广泛的应用。它是利用基带数字信号离散取值特点去键控载波频率以传递信息的一种数字调制技术。
通过对《通信原理》的学习[2],我们知道,对于三种调制方式来说,PSK的性能是最好的,但是也是成本最高和最难实现的,而ASK性能最差,但是对系统的要求最低,而FSK居中。所以在一般的数字传输系统中,FSK得到广泛的应用。我们在该系统的设计中同样使用比较常用的FSK进行调制和解调。 2.2.2 2FSK调制设计
最常见的是用两个频率承载二进制1和0的双频FSK系统。用两个频率ω1 、ω2分别表示二进制符号0和1,而形成FSK信号
?? e 0(t)???ang(t?nTs)?cos(?1t??n)?n?
(1) ?????ang(t?nTs)?cos(?2t??n)?n? 通信系统综合设计与实践
页第 4页
第4页
其中,e2FSK(t)是要传输的二进制符号。 时?Acos(w1t??n)发送为‘1’e2FSK(t)??
Acos(wt??)发送为‘0’时1n?(2) 而在我们设计的系统中,我们分别用载频为100KHZ和220KHZ作为载频对基带信号进行调制。 2.2.3 2FSK解调设计
2FSK信号的常用解调方法是采用的非相干解调和相干解调。其解调原理是将2FSK信号分解为上下两路2ASK信号分别进行解调,然后进行判决。而非相干解调包括包络检波法、过零检测法、差分检波法。具体的实现方法就不做具体介绍了。在本系统中,为了减少误码率,使系统能够稳定,我们采用非相干解调的方法对FSK信号进行解调。 2.3 信道设计
对于信道来说,做的是模拟真实的通信系统,所以就必须加上信道的噪声干扰,从而我们才能真正认识到整个通信系统的性能与噪声的关系。在设计的系统中,将信噪比从0到10 的变化对误码率的影响绘制成一条曲线,可以直观准确的看到信号的误码率与信噪比的关系变化。 2.4 滤波器设计
对于滤波器的重要性我就不多做介绍了,通过我们在实践过程中系统性能的表现,我们对系统加上了低通滤波器[3],对解调后的信号进行滤波,减小误码对解调信号质量的影响。 2.5 仿真及其数据分析
该仿真在windowsXP系统,MATLAB2010[1]版本以上运行。由一正弦函数作为系统的输入模拟信号,经过抽样后,在进行13折线A率量化编码,变成二进制码元,为了模拟实际信道的特性,在编码后的码元中加入了高斯白噪声,作为FSK解调的输入,接着进行相干解调,之后经过滤波器,最终得到解调信号。
通信系统综合设计与实践
页第 5页
2.5.1 PCM编译码的仿真设计
第5页
由于模拟正弦信号经编码后得到的二进制码是一个较大的二维矩阵,不便于进行FSK的调制与解调。为了实现起来比较简单,同时又让系统各部分的功能特性看起来比较直观,分成了两个系统,即PCM编译码部分和FSK调制解调部分。
由于在MATLAB上运行的是数字信号,虽说是产生了模拟信号,但是实质还是数字的,所以就利用这一点减少了对信号进行抽样的步骤,直接对其进行量化,在量化之前要对信号进行归一化。如图下图所示为PCM编码与PCM译码的流程图:
输入码组 提取符号 信号输入 判断段 判断符号 落位置 归一化、量化 判断段 内位置 段落判断 判断 符号 段中判断 输出 输出
图2.1 PCM编码与PCM译码的流程图
通信系统综合设计与实践
页第 6页
第6页
对于译码程序,首先确定它的符号,在进行循环判断段内码的值和段落中的位置,最后将所得数字按PCM的编码规则进行合成,得到模拟信号的输出。为 了模块化程序设计,我们为PCM编码和PCM译码分别创建了一个函数,作为M文件,即PCM.M和iPCM.M,如下附录2所示。 2.5.2
2FSK调试解调的仿真设计
根据以上的介绍,我们知道,要进行信道编码来提高信号的传输质量,对于2FSK的编程,我们按照如下的流程图来进行的:
PCM编计算误码率 判断是否为1 低通滤波器 100K信 号调制 220K信号调制 画出时域的各个 过程中的图形 加入高斯 白噪声 绘出信噪比 和误码 2FSK输出 100K信号 相干解调 220K信号 相干解调 低通 滤波器 低通 滤波器 抽样判决 抽样判决
图2.2 程序流程图
具体程序过程见附表1。
通信系统综合设计与实践
页第 7页
2.5.3 仿真结果及数据分析
编码前的函数4321振幅 第7页
0-1-2-3-40123时间456x 107-3
图2.3 原信号
调制信号110.50.50-0.500500100015002000-10200400600800FSK信号加入噪声的FSK信号2110-10-2010020030000.5解调后的信号500100015002000
图2.4 编码及调制过程中的信号
通信系统综合设计与实践
页第 8页
43210-1-2-3-4 第8页
0123456x 107-3
图2.5 最后解码后恢复出来的波形
100 仿真结果理论结果10-1误码率10-210-310 0-4123456信噪比(dB)78910
图2.6 误码率随信噪比的变化关系
有图形可以看出,在经过加入噪声的信道中,信号的质量会随着信噪比的增加而减弱,具体的变化如下表2.2所示:
通信系统综合设计与实践
页第 9页
表2.2 误码率理论值与实际值比较
信噪比(dB) 误码率理论值 误码率实测值 0.1581 0.1345 0.1090 0.0783 0.0584 0.0444 0.0268 0.1587 0.1309 0.1040 0.0789 0.0565 0.0377 0.0230 1 2 3 4 5 6 7 8 第9页
9 0.0060 0.0105 10 0.0024 0.0029 0.0126 0.0161 在图形的表现就可以直观看出,加入噪声后,误码率就随之增加,具体的数据如表格所示。
10.80.60.40.20-0.2-0.4-0.6-0.8-1020406080100120140160180200
图2.7 加入滤波器后恢复的信号
经过滤波器后,由于解码错误而产生的高频分量被滤除,恢复出原始的信号,达到了预期的效果,使我们进一步了解了通信过程中各个部分的重要性,仅仅一个滤波器可以使一个信号的质量突然有很差变好。
通信系统综合设计与实践
页第 10页
第10页
3 Simulink实现与仿真结果分析
3.1 Simulink简介
Simulink是MATLAB软件最重要的组件之一,是一个用来对动态系统进行搭建、仿真和分析的软件包。它提供了一种图形化的交互式环境,在该环境中,无需大量书写程序,而只需通过鼠标拖动的方法便能迅速地建立起系统框图模型。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,基于以上优点Simulink已被用来研究实际的动态系统,包括电子电路、机械系统、汽车动力系统、控制系统及许多其它复杂的动力学系统[1]。 3.2 仿真及其分析
以MATLAB2010的Simulink作为仿真工具,根据模拟数字的传输系统的组成原理,建立仿真模型:首先对一个模拟信号进行A律13折线近似的PCM编码,再两个不同频率的余弦信号对信号进行调制,使其经过一个高斯白噪声信道,用2FSK进行相干解调,再对输出的信号进行对应的PCM译码,最后将译码输出信号经过滤波器,滤除因译码错误造成的高频干扰。在Simulink模块库中找出相应的模块,选择合适的模块以及设置适当的参数,建立仿真模型,图示如下:
Sine Wave1Zero-OrderHoldRelay|u|Saturation[-1,1]limitAbsA-LawCompressorA-LawCompressor1127GainQuantizerdistance=1Integer to BitConverterInteger to BitConverter0~127 A/DScope3Product1A-LawExpanderA-LawExpander1Relay11/127Gain1Bit to IntegerConverterBit to IntegerConverter7bit D/ADemux
图3.1 Simulink的仿真图连接(无噪声)
通信系统综合设计与实践
页第 11页
第11页
图3.2 Simulink的仿真图连接(加入高斯白噪声)
3.3 仿真波形
图3.3 无噪声时信号源和解码后的波形
图3.4 PCM编码的波形
通信系统综合设计与实践
页第 12页
第12页
通过图3.3和图3.4可以看出模拟信号通过PCM编码译码,但没有通过高斯白噪声信道,得出的波形与原始波形基本一致。
图3.5 有噪声时信号源和解码后的波形
图3.6 加入高斯白噪声后的误码和信号
由图3.5和图3.6 的波形可以看出,输入信号在通过整个通信系统模型后,最终输出的波形和原来的输出波形相比有一定的相位差,即产生了延迟。但可以在接收端基本不失真的恢复出原来的输入波形,基本实现了模拟信号数字化的传输过程。
通信系统综合设计与实践
页第 13页
第13页
4 课程设计时遇到的困难及总结
4.1 课程设计时遇到的困难 4.1.1 困难1 对A律的设计
将模拟信号变为数字信号,首先遇到的问题就是如何将模拟信号变为数字信号,以便用MATLAB处理,刚开始设计时,不知道如何利用现有资料进行编码,在我们的讨论下,又通过老师的帮助,重新学习PCM编码及MATLAB语言,最终使程序能按预定结果运行。 4.1.2 困难2 信号变换
在信号的抽样之后,将信号放在一个1000*1的矩阵中(采样信号是1000次),PCM编码后的矩阵就变成了1000*8。而在FSK处理时,一直出现错误,说矩阵不匹配不能进行相乘,经过不断分析,在鹏辉的提示及帮助下,我们将矩阵进行变换,变成8000*1的矩阵,然后在FSK解调后在进行逆变换,最终使信号正常的得到处理。
4.1.3 困难3 FSK的调制与解调
可以说,在整个系统设计中,我们最难就是FSK调制和解调的设计,在这中间我们遇到了一个有一个的问题,整整四天时间我们都在一起讨论如何设计能使信号得到预期的效果,在这中间,还是多亏了敬畏的理论,使我们进一步理解了FSK的原理及过程,为编程提供了进一步的依据。这里我很感谢他们两个的支持和帮助。
4.1.4 困难4 低通滤波器设计
低通滤波器是有必要的,就像我上面介绍的,最后一级的滤波直接影响我们得到信号的质量。而在滤波器的设计时,由于理论不足,我们不知道如何设计参数。在实在没办法的情况下,我们去找了数字信号处理老师,并得到了老师的有效帮助,使我们的滤波器得以完成。因此,我们的系统也达到了预期的效果。 4.1.5
困难5 Simulink参数的设置
通信系统综合设计与实践
页第 14页
第14页
仿真能很出色的完成任务,但是我们去不能正确使用Simulink。还是在刘老师的帮助下,改变不同的参数,一步一步的帮我们调,最终,我们的系统终于能完成任务,在这里,我再次谢谢老师们对我们的帮助。 4.2 课程设计最终总结
经过紧张的两个星期的课程设计,基本上完成了一个简单而并不简单的模拟信号的数字化传输系统。以前有过认识,但是都比较零散,只知道大致的用法,同时MATLAB功能强大,内容丰富,需要有一定的程序设计能力,还要对通信原理的相关知识有比较明确的把握,所以在做这次课程设计时,遇到很多的问题,不过,我们最终还是成功结项。
这次课程设计让我对MATLAB有了较清晰和直观的认识,尽管许多内部函数还不知道,程序设计也只是一知半解,但对以后的学习有了较好的指引。利用MATLAB以及其他的一些软件来进行通信原理等其他的课程学习是一个很好的方法。不仅在知识学习上有较多的收获,在学习态度和方法上也起到了端正和提高作用,为了寻求知识的那份执著。
总体来说,这次课程设计让我受益匪浅。在摸索该如何设计程序使之实现所需功能的过程中,虽然很困难,但也很有趣,培养了我的设计思维,锻炼了操作能力。在让我体会到了设计艰辛的同时,更让我体会到了成功的喜悦和快乐。在这里,我们再次感谢老师的耐心辅导以及同学们的热心帮助。
通信系统综合设计与实践
页第 15页
第15页
5参考文献
[1] 刘学勇.详解MATLAB/Simulink通信系统建模与仿真[M].北京:电子工业出版社,2011.
[2] 樊昌信,曹丽娜.通信原理[M].北京:国防工业出版社,2011.
[3] 高西全,丁玉美.数字信号处理[M].西安:西安电子科技大学出版社,2011.
通信系统综合设计与实践
页第 16页
第16页
6 附录1 程序1
MATLAB仿真程序详细: clc clear;
A1 = 4; % 幅值
f=300; %频率是300Hz t = 2*(0:0.001:1-0.001)/f; x = t;
Signal_m = A1 * sin(2*f*pi*x);%输入正弦波信号 plot(x,Signal_m); title('编码前的函数'); xlabel('时间'); ylabel('振幅');
S=Signal_m; bian_ma=pcm(S);
%bian_ma_C=2*(bian_ma-0.5);
bian_ma_chage=reshape(bian_ma,1,8*length(S));
figure,
subplot(2,2,1);
stairs(bian_ma_chage(1:2000));
title('调制信号');axis([0 2000 -0.2 1.2]); rand('state',sum(100*clock)); randn('state',sum(100*clock)); minTestLength=8000; maxTestLength=8000;
A=1; Eb=A*A; EbN0=10;
index=1; %作为每个信噪比的下标 for EbN0=0:1:10 %信噪比有0到10 disp('程序正在运行,请稍等···') N0=Eb*10^(-EbN0/10); noiseVar=N0/2;%噪声密度
noiseRoot=sqrt(noiseVar);%噪声均方差 errorCount=0;%误码的符号个数 testCount=0;%测试次数
w1=2*314000;%信号‘1’载波角频率 w2=2*471000;%信号‘0’载波角频率 mm=0:0.001:0.4;
通信系统综合设计与实践
页第 17页
第17页
i=0;
DemoFSK=zeros(1,minTestLength); FSK=zeros(1,4010);
Noise_FSK=zeros(1,4010); while(1) i=i+1;
%源信号经过FSK调制解调
src=bian_ma_chage(i);%产生随机数字信号scr src1=src;%存储信号
src2=1-src;%存储和原始信号相反的信号
noise=noiseRoot.*randn(1,length(mm));%高斯白噪声矩阵 fsk=cos(w1*mm)*src1+cos(w2*mm)*src2; Noise_fsk=fsk+noise;%信号和噪声的叠加 if i<10
FSK(1+401*(i-1):401*i)=fsk;
Noise_FSK(1+401*(i-1):401*i)=Noise_fsk; end
efsk1=Noise_fsk.*cos(w1*mm);%频率为w1的相干解调 efsk2=Noise_fsk.*cos(w2*mm);%频率为w2的相干解调 efsk11=filtfilt(ones(1,10),9.7675,efsk1);%低通滤波 efsk22=filtfilt(ones(1,10),9.7675,efsk2);
ave1=sum(abs(efsk11))/length(mm);%抽样值得绝对值的平均值,大于1/2为1,小与1/2为0
ave2=sum(abs(efsk22))/length(mm); if ave1>1/2
DemoFSK(i)=1; else
DemoFSK(i)=0; end
if ave1>1/2&ave2>1/2
errorCount=errorCount+1;%对解调信号错误的判断 elseif ave1<1/2&ave2<1/2
errorCount=errorCount+1; end
testCount=testCount+1;%测试长度
if(testCount end %接下来判断要不要继续测试下去 tempBER=errorCount/testCount;%误码率 if (tempBER>0) thresholdTestLength=1/tempBER;%根据计算出来的误码率来计算实际需要的测试次数下限(thresholdTestLength) else 通信系统综合设计与实践 页第 18页 第18页 thresholdTestLength=maxTestLength;%当没有产生误码的时候,则实际的测试次数用最大的测试次数作为下限 end if(testCount>thresholdTestLength)%如果已经进行的测试次数大于测试下限,则停止循环,否则,继续进行测试 myTestLength(index)=testCount; myBER(index)=tempBER; myEbN0(index)=EbN0; index=index+1; break; end end end subplot(2,2,2),plot(FSK(1:800));title('FSK信号'); subplot(2,2,3),plot(Noise_FSK(1:300));title('加入噪声的FSK信号'); subplot(2,2,4),Stairs(DemoFSK(1:2000)),axis([0 2000 -0.2 1.2]);title('解调后的信号'); %PCM解调后的输出 FSK_jie_tiao=reshape(DemoFSK,length(S),8); PCM_jie_tiao=ipcm(FSK_jie_tiao); PCM_jie_tiao_souse=A1*PCM_jie_tiao; figure, plot(x,PCM_jie_tiao_souse); %绘制频域图形 %figure,subplot(2,2,1),plot(abs(fft(bian_ma_chage)));title('调制信号的频谱'); %subplot(2,2,2),plot(abs(fft(FSK)));title('FSK信号的频谱'); %subplot(2,2,3),plot(abs(fft(Noise_FSK)));title('加入噪声的FSK信号的频谱'); %subplot(2,2,4),plot(abs(fft(DemoFSK)));title('解调后信号的频谱'); figure,semilogy(myEbN0,myBER,'r+-'); xlabel('信噪比(dB)'); ylabel('误码率'); hold on EbN0_R=10.^(myEbN0/10);%信噪比 thBER=0.5*erfc(sqrt(EbN0_R/2)); semilogy(myEbN0,thBER,'*-');%绘制关系曲线 legend('仿真结果','理论结果'); grid; 通信系统综合设计与实践 页第 19页 第19页 附录2 程序2 PCM.m和iPCM.m %PCM编码程序 function code=pcm(S) %S为输入信号 z=sign(S); %判断S的正负 MaxS=max(abs(S)); %求S的最大值 S=abs(S/MaxS); %归一化 Q=2048*S; %量化 code=zeros(length(S),8); %代码存储矩阵(全零) %段落码判断程序 for i=1:length(S) if (Q(i)>=128)&(Q(i)<=2048) code(i,2)=1; %在第五段与第八段之间,段位码第一位都为“1” end if (Q(i)>32)&(Q(i)<128)||(Q(i)>=512)&(Q(i)<=2048) code(i,3)=1; %在第三四七八段内,段位码第二位为“1” end if (Q(i)>=16)&(Q(i)<32)||(Q(i)>=64)&(Q(i)<128)||(Q(i)>=256)&(Q(i)<512)||(Q(i)>=1024)&(Q(i)<=2048) code(i,4)=1; %在二四六八段内,段位码第三位为“1” end end %段内码判断程序 N=zeros(length(S)); for i=1:length(S) N(i)=bin2dec(num2str(code(i,2:4)))+1; %找到code位于第几段,将二进制转化成十进制的整数 end a=[0,16,32,64,128,256,512,1024]; %量化间隔 b=[1,1,2,4,8,16,32,64]; %除以16,得到每段的最小量化间隔 for i=1:length(S) q=ceil((Q(i)-a(N(i)))/b(N(i))); %求出在段内的位置,ceil是求例该数最近的整数 if q==0 code(i,(5:8))=[0,0,0,0]; %如果输入为零则输出“0” else k=num2str(dec2bin(q-1,4)); %编码段内码为二进制,4表示四位二进制 code(i,5)=str2num(k(1)); code(i,6)=str2num(k(2)); code(i,7)=str2num(k(3)); 通信系统综合设计与实践 页第 20页 code(i,8)=str2num(k(4)); end if z(i)>0 code(i,1)=1; elseif z(i)<0 code(i,1)=0; end %符号位的判断 end end %PCM译码程序 function S=ipcm(code) l=size(code,1); %求出输入码组的个数 a=[0,16,32,64,128,256,512,1024]; %段落起点值 b=[1,1,2,4,8,16,32,64]; %每段的最小量化间隔 c=[0,1.5:15.5]; %段内码平均值 for i=1:l x=code(i,1); %取符号 T=bin2dec(num2str(code(i,(2:4))))+1; %判断段落位置 Y=bin2dec(num2str(code(i,(5:8)))); %判断段内位置 if Y==0 k(i)=a(T)/2048; %段内码为零时 else k(i)=(a(T)+b(T)*c(Y))/2048; %还原出量化后的电平值 end if x==0 %判断符号位 S(i)=-k(i); else S(i)=k(i); end end 第20页 通信系统综合设计与实践 页第 21页 第21页 附录3 Simulink模块参数设置 (1)SignalGenerator模块的参数设计: (2)Sampled Quantizer Encode模块参数设计: 通信系统综合设计与实践 页第 22页 (3)M-FSK Modulator Baseband模块参数设计: 第22页 (4)Digital Filter模块的参数设计: 通信系统综合设计与实践 页第 23页 (5)AWGN Channel模块的参数设计: 第23页 (6)M-FSK Demodulator Baseband模块的参数设计: 通信系统综合设计与实践 页第 24页 (7)Quantizer Decode模块的参数设计: 第24页 (8)Analog Filter Design模块的参数设计: 通信系统综合设计与实践 页第 25页 (9)Scope模块的参数设计: 第25页 (10)Scope1模块的参数设计:
相关推荐: