基于MATLAB的PCM仿真

时间:2022-10-22 08:33:21

【摘 要】本文的主要内容是对脉冲编码调制系统用MATLAB软件进行计算机仿真。通过编程,对含有脉冲编码系统的PCM通信系统进行了建模,并以此为基础,进行线性PCM与对数PCM的性能比较。

【关键词】脉冲编码调制;均匀量化;非均匀量化;线性;非线性;MATLAB

0.引言

20世纪70年代后期,超大规模集成电路的脉冲编码调制(PCM)编、解码器的出现,使PCM在光纤通信、数字微波通信、卫星通信中得到越来越广泛的应用。因此,PCM已经成为数字通信中一门十分重要的技术。PCM也是通信工程专业学生必修的部分。学生可以通过该系统的实验,加深线性编码和非线性编码等概念的理解,进一步掌握有关数字通信系统性能的分析方法和基本研究方法。

1.Matlab简介

MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分,它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

2.脉冲编码调制(PCM)基本原理

脉冲编码调制(PCM)概念是1937年由法国工程师Alec Reeres最早提出来的。1946年美国Bell实验室实现了第一台PCM数字电话终端机。1962年后,晶体管PCM终端机大量应用于市话网中局间中继线,使市话电缆传输电话路数扩大24-30倍。70年代后期,超大规模集成电路的PCM编、解码器的出现,使PCM在光纤通信、数字微波通信、卫星通信中获得了更广泛的应用。因此,PCM已经成为数字通信中一个十分基本的问题。

脉冲编码调制简称脉码调制,它是一种将模拟语音信号变化成数字信号的编码方式。脉码调制的过程如图2所示。

PCM主要包括抽样、量化与编码三个过程。抽样是把连续时间模拟信号转换成离散时间连续幅度的抽样信号;量化是把离散时间连续幅度的抽样信号转换成离散时间离散幅度的数字信号;编码是将量化后的信号编码形成一个二进制码组输出。国际标准化的PCM码组(电话语音)是八位码组代表一个抽样值。从通信中的调制概念来看,可以认为PCM编码过程是模拟信号调制一个二进制脉冲序列,载波是脉冲序列,调制改变脉冲序列的有无或“1”、“0”,所以PCM成为脉冲编码调制。

图1.1 PCM原理图

编码后的PCM码组,经数字信道传输,可以是直接的基带传输或者是微波、光波载频调制后的通带传输。在接收端,二进制码组反变换成重建的模拟信号■(t)。在解调过程中,一般采用抽样保持电路,所以低通滤波器均采用■型频率响应以补偿抽样保持电路引入的频率失真■。

预滤波是为了把原始语音信号的频带限制在300-3400Hz标准的长途模拟电话的频带内。由于原始语音频带是40-10000Hz左右,所以预滤波会引入一定的频带失真。

整个PCM系统中,重建信号■(t)的失真主要来源于量化以及信道传输误码,通常,用信号与量化噪声的功率比,即信噪比S/N来表示。

3.线性PCM与对数PCM的性能比较

下面以正弦信号输入为例,来分析线性PCM编码与对数PCM编码的信噪比(SNR)特性。

3.1均匀量化

由通信原理可知,当输入为正弦信号a=Am*sin(0.1*pi*x),且信号不过载时,若取量化间隔数为L,且L=2n,n为正整数。则有信噪比

SNR≈4.77+20logD+6.02n

单位为分贝(dB),其中D=Am/■V,V为最大量化电平。在不过载的范围内,信噪比随输入信号的增加呈线性增加。

3.2非均匀量化

3.2.1 A律压缩特性

假设输入的正弦信号a=sin(0.1*pi*x)的相位是随机的,且在(-π,π)范围内等概率分布。则有:

量化噪声功率

σ■■=■,0≤a≤1/A

σ■■=■{[2-(aA)2]sin-1(■)+■+■},1/A≤a≤1

其中C=1/(1+InA),A=87.6。

以及正弦波瞬时功率S=■

根据上面3个公式,可以编制出以下程序,求得输入样值数组x和信噪比数组SNR。并绘制出SNR特性曲线。

x=0:0.01:20;

a=sin(0.1*pi*x);

a2=max(a); %求幅值的最大值

b=length(a);

a1=abs(a); %求输入信号的绝对值

X=20*log10(a1/a2);

n=8;

SNR1=6.02*n+4.77+X; %均匀量化的信噪比

plot(X,SNR1)

axis([-80 0 0 70]);

ylabel('SNR(dB)');xlabel('20logD');

grid on

text('Position',[-30,15],'String','L=256');

hold on

A=87.6;

上一篇:刑罚轻缓化的价值研究 下一篇:变压器内部故障检测机器人的设计与制作