通信原理课程设计模拟信号的数字化处理Word下载.docx
《通信原理课程设计模拟信号的数字化处理Word下载.docx》由会员分享,可在线阅读,更多相关《通信原理课程设计模拟信号的数字化处理Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
每人提交一份课程设计报告(打印稿和电子稿各一份),课程设计报告按照模板撰写内容,要求详细、准确、完整。
前言
数字通信系统己成为当今通信的发展方向,然而自然界的许多信息通过传感器转换后,绝大部分是模拟量,脉冲编码调制(PCM)是把模拟信号变换为数字信号的一种调制方式,主要用于语音传输,在光纤通信、数字微波通信、卫星通信中得到广泛的应用,借助于MATLAB软件,可以直观、方便地进行计算和仿真。
因此可以通过运行结果,分析系统特性。
MATLAB是美国MathWorks公司开发的一套面向理论分析研究和工程设计处理的系统仿真软件,它既是一种直观、高效的计算机语言,同时又是一个科学计算平台。
它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。
根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。
总的来说,该软件有三大特点。
一是功能强大,二是界面友善、语言自然,三是开放性强。
正是由于MATLAB具有这些特点,所以它被广泛的应用在通信仿真中,通过仿真展示了PCM编码实现的设计思路及具体过程,并加以进行分析。
基于MATLAB的仿真模型,能够反映模拟通信系统的动态工作过程,其可视化界面具有很好的演示效果,为通信系统的设计和研究提供强有力的工具,也为学习通信系统理论提供了一条非常好的途径。
当然理论与实际还会有很大的出入,在设计时还要考虑各种干扰和噪声等因素的影响。
1、基本原理
1.1脉冲编码调制(PCM)
脉冲编码调制(pulsecodemodulation,PCM)是概念上最简单、理论上最完善的编码系统,是最早研制成功、使用最为广泛的编码系统,但也是数据量最大的编码系统。
PCM的编码原理比较直观和简单,下图为PCM系统的原理框图:
图1.1PCM系统原理框图
图中,输入的模拟信号m(t)经抽样、量化、编码后变成了数字信号(PCM信号),经信道传输到达接收端,由译码器恢复出抽样值序列,再由低通滤波器滤出模拟基带信号m(t)。
通常,将量化与编码的组合称为模/数变换器(A/D变换器);
而译码与低通滤波的组合称为数/模变换器(D/A变换器)。
前者完成由模拟信号到数字信号的变换,后者则相反,即完成数字信号到模拟信号的变换。
PCM在通信系统中完成将语音信号数字化功能,它的实现主要包括三个步骤完成:
抽样、量化、编码。
分别完成时间上离散、幅度上离散、及量化信号的二进制表示。
根据CCITT的建议,为改善小信号量化性能,采用压扩非均匀量化,有两种建议方式,分别为A律和μ律方式,我国采用了A律方式,由于A律压缩实现复杂,常使用13折线法编码,采用非均匀量化PCM编码。
1.2PCM编码原理
1.2.1抽样
抽样是把时间上连续的模拟信号变成一系列时间上离散的抽样值的过程。
抽样定理:
设一个频带限制的(0,fH)Hz内的时间连续信号m(t)如果它不少于2fH次/秒的速率进行抽样,则m(t)可以由抽样值完全确定。
抽样定理指出,由样值序列无失真恢复原信号的条件是fs≥2fH,为了满足抽样定理,要求模拟信号的频谱限制在0~fH之内(fH为模拟信号的最高频率)。
为此,在抽样之前,先设置一个前置低通滤波器,将模拟信号的带宽限制在fH以下,如果前置低通滤波器特性不良或者抽样频率过低都会产生折叠噪声。
抽样频率小于2倍频谱最高频率时,信号的频谱有混叠。
抽样频率大于2倍频谱最高频率时,信号的频谱无混叠。
另外要注意的是,采样间隔的周期要足够的小,采样率要足够的大,要不然会出现如图1.2(b)所示的混叠现象,一般情况下TsWs=2π,Wn>
2Wm。
(a)不发生混叠现象(b)发生混叠现象
图1.2
抽样过程如图所示:
图1.3抽样过程
1.2.2量化
1.定义
量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示。
从数学上来看,量化就是把一个连续幅度值的无限数集合映射成一个离散幅度值的有限数集合。
一个模拟信号经过抽样量化后,得到已量化的脉冲幅度调制信号,它仅为有限个数值。
如下图所示,量化器输出L个量化值
,k=1,2,3,…,L。
常称为重建电平或量化电平。
当量化器输入信号幅度x落在
与
之间时,量化器输出电平为
。
这个量化过程可以表达为:
这里
称为分层电平或判决阈值。
通常
称为量化间隔。
图1.4量化过程
2.分类
模拟信号的量化分为均匀量化和非均匀量化。
均匀量化:
用这种方法量化输入信号时,无论对大的输入信号还是小的输入信号一律都采用相同的量化间隔。
为了适应幅度大的输入信号,同时又要满足精度要求,就需要增加样本的位数。
但是,对话音信号来说,大信号出现的机会并不多,增加的样本位数就没有充分利用。
为了克服这个不足,就出现了非均匀量化的方法。
非均匀量化:
非均匀量化是根据信号的不同区间来确定量化间隔的。
对于信号取值小的区间,其量化间隔
也小;
反之,量化间隔就大。
它与均匀量化相比,有两个突出的优点。
首先,当输入量化器的信号具有非均匀分布的概率密度(实际中常常是这样)时,非均匀量化器的输出端可以得到较高的平均信号量化噪声功率比;
其次,非均匀量化时,量化噪声功率的均方根值基本上与信号抽样值成比例。
因此量化噪声对大、小信号的影响大致相同,即改善了小信号时的量化信噪比。
实际中,非均匀量化的实际方法通常是将抽样值通过压缩再进行均匀量化。
通常使用的压缩器中,大多采用对数式压缩。
广泛采用的两种对数压缩律是
压缩律和A压缩律。
美国采用
压缩律,我国和欧洲各国均采用A压缩律。
3.量化信噪比
在量化时候会产生量化误差,这里不作详细介绍,其量化误差计算公式如下:
量化后量化输出为:
我们衡量一个量化器的性能好坏用信噪比来表示:
信噪比定义如下:
其中:
xq(t)与x(t)近似程度的好坏用Sq/Nq衡量。
Sq/Nq越大,说明近似程度越好。
1.2.3
压缩律与A压缩律
1.
压缩律
压缩规律μ压缩特性近似满足以下对数规律:
μ=0时:
无压缩作用(直线),μ>0时:
μ↑→压缩明显,压缩作用:
y是均匀的,而x是非均匀的,信号越小△x也越小。
图1.5
律压缩特性
压缩特性早期是用二极管的非线性来实现的,但要保证压缩特性的一致性、稳定性以及压缩与扩张特性的匹配是很困难的。
因此通常都是采用近似理想压缩特性曲线的折线来代替理想特性。
对于μ律曲线,采用15段折线近似。
2.A压缩律
所谓A压缩律也就是压缩器具有如下特性的压缩律:
,
式中,x为压缩器归一化输入电压;
y为压缩器归一化输出电压;
A为常数,决定压缩程度。
A压缩律中的常数A不同,则压缩曲线的形状也不同,它将特别影响小电压时的信号量噪比的大小,在实际中,选择A等于87.6。
A律压缩表示式是一条连续的平滑曲线,用电子线路很难准确的实现。
现在由于数字电路技术的发展,这种特性很容易用数字电路来近似实现,13折线特性就是近似于A压缩律的特性,因此常使用13折线法编码,压扩特性图如下图所示:
图1.6A率13折线压扩特性图
3.13折线的形成
(1)首先把输入信号的幅值归一化(横坐标),把0~1的值域划分为不均匀的8个区间,每个区间的长度以2倍递增。
具体地说就是0~1/128为第一区间,1/128~1/64为第二区间,1/64~1/32为第三区间,1/32~1/16为第四区间,直到1/2~1为第八区间。
(2)再把输出信号的幅度也归一化(纵坐标),并均匀分成8个区间,即0~1/8,1/8~2/8,2/8~3/8,直到7/8~1。
(3)然后以横轴各区间的右端点为横坐标,以相对应纵轴区间的上端点为纵坐标,就可得到(1/128,1/8),(1/64,2/8),(1/32,3/8),…,(1,1)等8个点。
(4)将原点及这8个点依次用直线段连接起来就得到一条近似A律的折线。
(5)第一区间和第三区间的线段斜率一样,可以看成一条线段,则正值曲线就只有7条线段,与之对应的负值曲线也只有7条线段,而正、负值曲线合画在一起后,各自的第一段折线斜率也一样,所以在14条线段中再减去一条就成为13折线。
完整的13折线图如图1.7所示。
图1.7完整的13折线图
13折线的压扩特性基本上保持了连续压扩特性曲线的优点,又便于用数字电路实现,本设计中所用到的PCM编码正是采用这种压扩特性来进行编码的。
表1.1是13折线时的x值与计算得到的x值的比较。
1
按折线
分段时的
段落
2
3
4
5
6
7
8
斜率
16
表1.113折线x值与计算x值的比较
表1.1中第二行的值是根据计算得到的,第三行的值是13折线分段时的值。
可见,13折线各段落的分界点与曲线十分逼近,同时按2的幂次分割有利于数字化。
1.2.4A律PCM编码
1.编码的定义
所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码。
当然,这里的编码和译码与差错控制编码和译码是完全不同的,前者是属于信源编码的范畴。
在现有的编码方法中,若按编码的速度来分,大致可分为两大类:
低速编码和高速编码。
通信中一般都采用第二类。
编码器的种类大体上可以归结为三类:
逐次比较型、折叠级联型、混合型。
在逐次比较型编码方式中,无论采用几位码,一般均按极性码、段落码、段内码的顺序排列。
本设计采用A律13折线编码。
2.A律PCM编码的规则
在13折线法中,无论输入信号是正是负,均按8段折线(8个段落)进行编码。
若用8位折叠二进制码来表示输入信号的抽样量化值,其中用第一位表示量化值的极性,其余七位(第二位至第八位)则表示抽样量化值的绝对大小。
具体的做法是:
用第二至第四位表示段落码,它的8种可能状态来分别代表8个段落的起点电平。
其它四位表示段内码,它的16种可能状态来分别代表每一段落的16个均匀划分的量化级。
这样处理的结果,8个段落被划分成27=128个量化级。
段落码和8个段落之间的关系如表1.2(a)所示;
段内码与16个量化级之间的关系见表1.2(b)。
段落序号
段落码
量化级
段内码
111
15
1111
14
1110
110
13
1101
12
1100
101
11
1011
10
1010
100
9
1001
1000
011
0111
0110
010
0101
0100
001
0011
0010
000
0001
0000
(a)段落码(b)段内码
表1.2段落码与段内码
3.PCM编码流程
输入信号x后,先判断x的符号,x>
0时C1=1,x<
0时C1=0;
判断完符号后将信号进行归一化和量化,再进行段落判断以及段内判断,最后将C1~C8输出。
流程图如下:
图1.8PCM编码流程图
1.3增量调制
1.3.1增量调制简介
增量调制简称ΔM或增量脉码调制方式(DM),它是继PCM后出现的又一种模拟信号数字化的方法。
1946年由法国工程师DeLoraine提出,目的在于简化模拟信号的数字化方法。
主要在军通信和卫星通信中广泛使用,有时也作为高速大规模集成电路中的A/D转换器使用。
对模拟信号采样,并用每个样值与它的预测值的差值对周期脉冲序列进行调制,就是增量调制。
它是一种最简单的差值脉冲编码。
已调脉冲序列以脉冲的有、无来表征差值的正负号,也就是差值只编成一位二进制码。
早期的语言增量调制编码器是由分立元件组成的。
随着模拟集成电路技术的发展,70年代末出现了音节压扩增量调制集成单片,80年代出现了瞬时压扩集成单片,单片内包括了开关电容滤波器与开关电容积分器,集成度不断提高,使增量调制的编码器的体积减小,功耗降低。
1.3.2增量调制的原理
如图1.9所示,在模拟信号f(t)的曲线附近,有一条阶梯状的变化曲线f′(t),f′(t)与f(t)的形状相似。
显然,只要阶梯“台阶”σ和时间间隔Δt足够小,则f′(t)与f(t)的相似程度就会提高。
对f′(t)进行滤波处理,去掉高频波动,所得到的曲线将会很好地与原曲线重合,这意味着f′(t)可以携带f(t)的全部信息(这一点很重要)。
因此,f′(t)可以看成是用一个给定的“台阶”σ对f(t)进行抽样与量化后的曲线。
我们把“台阶”的高度σ称为增量,用“1”表示正增量,代表向上增加一个σ;
用“0”表示负增量,代表向下减少一个σ。
则这种阶梯状曲线就可用一个“0”、“1”数字序列来表示(如图1.9所示),也就是说,对f′(t)的编码只用一位二进制码即可。
此时的二进制码序列不是代表某一时刻的抽样值,每一位码值反映的是曲线向上或向下的变化趋势。
图1.9增量调制原理图
2.仿真程序、程序编制、仿真结果
2.1仿真程序编制
2.1.1抽样定理的验证
首先我们先要通过matlab软件产生一个模拟信号,然后才能对模拟信号进行抽样等等一系列的操作,下面先给出matlab软件建立m文件产生一个比较熟悉的时域连续的周期函数:
f(t)=cos(2*pi*40*t)+sin(2*pi*60*t),可以看出这个信号就是由两个最常用的函数复合而成。
产生原始连续信号的matlab源代码:
%该程序用于画出原信号的图形
clear;
t=-0.1:
0.001:
0.1;
%该参数用于画原信号图形
f=cos(2*pi*40*t)+sin(2*pi*60*t);
%原函数,由t的取值可得f有201个
subplot(2,1,1)%matlab矩阵区域设置
plot(t,f);
%画出采原函数序列图
title('
原信号'
);
xlabel('
时间t/s);
接下来就是对原始信号进行抽样了,下面给出对信号进行抽样的源代码:
%该函数用于画出原始波形和抽样后离散的采样波形图
T=1/500;
%抽样周期,500是抽样频率,可以调整抽样频率
gs=-0.1:
T:
fg=cos(2*pi*40*gs)+sin(2*pi*60*gs);
%对信号进行以T周期抽样
subplot(2,1,2)
stem(gs,fg,'
.'
)%画图
采样信号'
时间t/s'
2.1.2量化与编码
在抽样以后我们得到了一个个的离散的数字信号序列,但是这个序列并不是我们想要的数字信号序列,因为前面已经说过,这个不是真正的离散数字信号,它只是在时间上是离散的,在幅度上仍然是连续的。
所以就要进行下一步操作—量化。
在实际中量化和编码是一起进行的,下面给出量化编码的matlab源代码:
%建立原信号
T=0.002;
%取时间间隔为0.01
t=-0.1:
%时域间隔dt为间隔从0到10画图
xt=cos(2*pi*40*t)+sin(2*pi*60*t);
%xt方程
%采样:
时间连续信号变为时间离散模拟信号
fs=500;
%抽样fs>
=2fc,每秒钟内的抽样点数目将等于或大于2fc个
sdt=1/fs;
%频域采样间隔0.002
t1=-0.1:
sdt:
%以sdt为间隔从-0.1到0.1画图
st=cos(2*pi*30*t1)+sin(2*pi*65*t1);
%离散的抽样函数
figure
(1);
subplot(3,1,1);
plot(t,xt);
原始信号'
%画出原始的信号图,以好对比
gridon%画背景
subplot(3,1,2);
stem(t1,st,'
%这里画出来的是抽样后的离散图
抽样信号'
gridon%画背景
%量化过程
n=length(st);
%取st的长度为n
M=max(st);
A=(st/M)*2048;
%a1(极性码)a2a3a4(段落码)a5a6a7a8(段内电平码)
code=zeros(i,8);
%产生i*8的零矩阵
%极性码a1
fori=1:
n%if循环语句
ifA(i)>
=0
code(i,1)=1;
%代表正值
else
code(i,1)=0;
%代表负值
end
%这里就是量化的过程,划分成几个不等的段,然后用码元来代替,也就是俗称编码
ifabs(A(i))>
=0&
&
abs(A(i))<
code(i,2)=0;
code(i,3)=0;
code(i,4)=0;
step=1;
start=0;
elseif16<
=abs(A(i))&
32
code(i,4)=1;
start=16;
elseif32<
64
code(i,3)=1;
step=2;
start=32;
elseif64<
128
step=4;
start=64;
elseif128<
256
code(i,2)=1;
step=8;
start=128;
elseif256<
512
step=16;
start=256;
elseif512<
1024
step=32;
start=512;
elseif1024<
2048
step=64;
start=1024;
end
B=floor((abs(A(i))-start)/step);
%段内码编码floor取整(四舍五入)
t=dec2bin(B,4)-48;
%dec2bin定义将B变为4位2进制码,-48改变格式
code(i,5:
8)=t(1:
4);
%输出段内码
code=reshape(code'
1,8*n);
%reshape代表从新塑形
code
subplot(3,1,3);
stem(code,'
axis([16401]);
%这里我们先取前面八个点编码输出,输出时候有64个点
编码信号'
gridon
2.1.3A律与u律特性曲线
下面给出A律13折线以及u律15折线特性曲线绘制的matlab程序源代码:
%a律13折线u律15折线
%uandAlawforquantize,filename:
a_u_law.m
%u=255y=ln(1+ux)/ln(1+u)
%A=87.6y=Ax/(1+lnA)(0<
x<
1/A)Y=(1+lnAx)/(1+lnA)
clearall;
closeall;
dx=0.01;
x=0:
dx:
1;
u=255;
%uLaw
yu=log(1+u*x)/log(1+u);
%ALaw
A=87.6;
length(x)
ifx(i)<
1/A
ya(i)=A*x(i)/(1+log(A));
ya(i)=(1+log(A*x(i)))/(1+log(A));
end
figure
(1)
subplot(2,1,1);
plot(x,yu,'
k.:
'
uLaw'
)
x'
ylabel('
y'
holdon
xxu=[0,1/255,3/255,7/255,15/255,31/255,63/255,127/255,1];
yyu=[0,1/8,2/8,3/8,4/8,5/8,6/8,7/8,1];
plot(xxu,yyu,'
r'
stem(xxu,yyu,'
b-'
legend('
u律压缩特性'
'
折线近似u律'
subplot(2,1,2);
plot(x,ya,'
ALaw'
holdon
xxa=[0,1/128,1/64,1/32,1/16,1/8,1/4,1/2,1];
yya=[0,1/8,2/8,3/8,4/8,5/8,6/8,7/8,1];
pl