f′(iΔt_)是第i个抽样时刻前一瞬间的量化值。
根据上述分析,我们给出增量调制器框图如图2所示。
图2增量调制原理框图
f′(iΔt_)可以由编码输出的二进制序列反馈到一个理想的积分器以后得到。
由于该积分器又具有解码功能,因此又称为本地解码器(译码器)。
f(iΔt)和f′(iΔt_)的差值,可以用一个比较电路(减法器)来完成。
量化编码可以用一个双稳判决器来执行,并生成双极性二进制码序列。
具体调制过程描述如下:
设f′(0-)=0(即t=0时刻前一瞬间的量化值为零),因此有
t=0时,e(0)=f(0)-f′(0-)>0,则Po(0)=1
(1)
t=Δt时,e(Δt)=f(Δt)-f′(Δt_)>0,则Po(Δt)=1
(2)
t=2Δt时,e(2Δt)=f(2Δt)-f′(2Δt_)<0,则Po(2Δt)=0;(3)
t=3Δt时,e(3Δt)=f(3Δt)-f′(3Δt_)>0,则Po(3Δt)=1;(4)
t=4Δt时,e(4Δt)=f(4Δt)-f′(4Δt_)<0,则Po(4Δt)=0;(5)
t=5Δt时,e(5Δt)=f(5Δt)-f′(5Δt_)>0,则Po(5Δt)=1;(6)
t=6Δt时,e(6Δt)=f(6Δt)-f′(6Δt_)>0,则Po(6Δt)=1;(7)
以此类推,即可得到如图3所示的波形。
会发现图3中的f′(t)和图1的波形不一样。
其实,图1的阶梯波只是为了形象地说明增量调制原理,而实际积分器的输出波形如图3d所示。
(C)
图3增量调制过程示意图
4.2ΔM的解调原理
为了完成整个通信过程,发送端调制出的信号必须在接收端通过解调恢复出原始模拟信号。
ΔM信号的解调比较简单,用一个和本地解码器一样的积分器即可。
在接收端和发送端的积分器一般都是一个RC积分器。
解调过程就是图4―3中的积分过程。
当积分器输入“1”码时,积分器输出产生一个正斜变的电压并上升一个量化台阶σ;而当输入“0”码时,积分器输出电压就下降一个量化台阶σ。
为了保证解调质量,对解码器有两个要求:
(1)每次上升或下降的大小要一致,即正负斜率大小一样。
(2)
(2)解码器应具有“记忆”功能,即输入为连续“1”或“0”码时,输出能连续上升或下降。
对积分器的输出信号进行低通滤波,滤除波形中的高频成分,即可得到与原始模拟信号十分近似的解调信号,如图4所示
图4增量调制译码(解调)示意示
5增量调制MATLAB的仿真
5.1程序代码:
Ts=1e-3;
t=0:
Ts:
20*Ts;
x=sin(2*pi*50*t)+0.5*sin(2*pi*150*t);
delta=0.4;
D(1+length(t))=0;
fork=1:
length(t)
e(k)=x(k)-D(k);
e_q(k)=delta*(2*(e(k)>=0)-1);
D(k+1)=e_q(k)+D(k);
codeout(k)=(e_q(k)>0);
end
subplot(3,1,1);plot(t,x,'-o');axis([020*Ts,-22]);holdon;
subplot(3,1,2);stairs(t,codeout);axis([020*Ts,-22]);
Dr(1+length(t))=0;
fork=1:
length(t)
eq(k)=delta*(2*codeout(k)-1);
xr(k)=eq(k)+Dr(k);
Dr(k+1)=xr(k);
end
subplot(3,1,3);stairs(t,xr);holdon;
subplot(3,1,3);plot(t,x);
5.2增量调制Simulink仿真实现
采用Simulink基本模块实现和采用DPCM编解码模块实现。
仿真测试模型如图(6)所示。
仿真步进设置为0.001s,模型中所有需要设置采样时间的地方均设置采样时间为0.001s。
在增量调制部分,Relay模块作为量化器适应,其门限设置为0,输出值分别设置为0.4和-0.4;Relay作为编码器使用,其门限设置为0,输出值设置为1和0;解码端Relay2模块作为解码器使用,其门限设置为0.5,输出值分别为0.4和-0.4;使用单位延时器UnitDelay作为预测滤波器,初始状态均设置为零。
使用DPCM编解码模块进行等价实现,DPCM编码模块的设置是,预测器分子系数为[0,1],分母系数是1,量化分割值为0,码书为[-0.4,0.4],解码器与编码器设置相同。
仿真时间设置为0.02s,即仿真前20个采样点。
仿真结果如图(7)所示,采用Simulink基本模块实现的解码结果与编程法得到的波形相同。
但是,由于初始值设置问题,采用DPCM编解码模块得出的解码结果与采用Simulink基本模块实现的解码结果在起始部分稍有不同,随着仿真时间的增加,两者输出结果相同。
图6增量调制编码仿真测试模型
其中f(u)=sin(2*pi*50*u)+0.5*sin(2*pi*150*u)
6结果分析
程序执行结果如图5所示。
从图中原信号和解码结果对比看,在输入信号变化平缓的部分,编码器输出1、0交替码,相应的解码结果以正负阶距交替变化,形成颗粒噪声,称空载失真;在输入信号变化过快的部分,解码信号因不能跟踪上信号的变化而引起斜率过载失真。
量化阶距越小,则空载失真就越小,但是容易发生过载失真;反之,量化阶距增大,则斜率过载失真减小,但空载失真增大。
如果量化阶距能根据信号的变化缓急自适应调整,则可以兼顾优化空载失真和过载失真,这就是自适应增量调制的意思。
图5增量调制编码解码波形仿真结果
(一)
波形解析:
第一个图形是原信号及离散样值
第二个图形是编码输出二进制序列的波形
第三个图形解码结果和信号波形对比
0.004—0.006为空载失真部分
0.009—0.012为过载失真部分
图7增量调制编码解码波形仿真结果
(二)
6.1增量调制存在的问题
增量调制尽管有前面所述的不少优点,但它也有两个不足:
一个是一般量化噪声问题;另一个是过载噪声问题。
两者可统一称为量化噪声。
观察图1可以发现,阶梯曲线(调制曲线)的最大上升和下降斜率是一个定值,只要增量σ和时间间隔Δt给定,它们就不变。
那么,如果原始模拟信号的变化率超过调制曲线的最大斜率,则调制曲线就跟不上原始信号的变化,从而造成误差。
我们把这种因调制曲线跟不上原始信号变化的现象叫做过载现象,由此产生的波形失真或者信号误差叫做过载噪声。
另外,由于增量调制是利用调制曲线和原始信号的差值进行编码,也就是利用增量进行量化,因此在调制曲线和原始信号之间存在误差,这种误差称为一般量化误差或一般量化噪声。
两种噪声示意图如图8所示。
图8两种量化噪声示意图
仔细分析两种噪声波形我们发现,两种噪声的大小与阶梯波的抽样间隔Δt和增量σ有关。
我们定义K为阶梯波一个台阶的斜率式中,fs是抽样频率。
该斜率被称为最大跟踪斜率。
当信号斜率大于跟踪斜率时,称为过载条件,此时就会出现过载现象;当信号斜率等于跟踪斜率时,称为临界条件;当信号斜率小于跟踪斜率时,称为不过载条件。
可见,通过增大量化台阶(增量)σ进而提高阶梯波形的最大跟踪斜率,就可以减小过载噪声;而降低σ则可减小一般量化噪声。
显然,通过改变量化台阶进行降噪出现了矛盾,因此,σ值必须两头兼顾,适当选取。
不过,利用增大抽样频率(即减小抽样时间间隔Δt),却可以“左右逢源”,既能减小过载噪声,又可降低一般量化噪声。
因此,实际应用中,ΔM系统的抽样频率要比PCM系统高得多(一般在两倍以上,对于话音信号典型值为16kHz和32kHz)。
6.2自适应增量调制
增量调制中增量的幅值是固定的。
若幅值选得过大,粒状噪声过大;若选得过小,超载噪声增加,这给增量的幅度选择带来了一定的困难。
为了解决这一问题,可让增量的幅值在调制的过程中随着声音信号的变化自动地进行调制、变化,这就是自适应调制ADM(AdaptiveDeltaModulation)。
ADM调制的基本原理是:
在声音信号变化不大的情况下,取较小的增量幅值以抑制粒状噪声。
在声音信号变化较大的情况下,预测信号跟不上声音信号的变化,应采取一定的算法增加增量的幅值,以此抑制超载噪声。
调制过程中,增量的幅值随声音信号的变化自适应地变化。
ADM调制虽然能较好地克服超载噪声,解决粒状噪声和超载噪声的矛盾,但在声音信号从高速变化转向平坦处时,容易出现由于增量幅值过大而产生的噪声。
6.2.1自适应增量调制MATLAB的仿真
程序代码:
Ts=1e-3;
t=0Ts40Ts;
x=sin(2pi50t)+0.5sin(2pi150t);
x(2041)=0.2sin(2pi50t(2041));
delta=0.4;
D(1+length(t))=0;
K=1.3;
fork=1length(t)
e(k)=x(k)-D(k);
e_q(k)=delta(2(e(k)=0)-1);
ifk1
delta=delta(K.^sign(e_q(k).e_q(k-1)));
end
D(k+1)=e_q(k)+D(k);
codeout(k)=(e_q(k)0);
end
Dr(1+length(t))=0;
delta=0.4;
fork=1length(t)
eq(k)=delta(2codeout(k)-1);
ifk1
delta=delta(K.^sign(eq(k).eq(k-1)));
end
xr(k)=eq(k)+Dr(k);
Dr(k+1)=xr(k);
end
stairs(t,xr);holdon;
plot(t,x);
自适应增量调制中,量化间距是自适应变化的:
如果波形斜率陡峭,则连续输出的一串量化误差是同符号的,那么应使量化间距增大以减小斜率失真;如果波形平缓,则连续输出的一串量化误差是正负符号交替的,这时减小量化间距就可以减小颗粒噪声。
例如,一种较简单的自适应规则是
(8)
其中,自适应量化间距调整系数K
1。
显然,当一串量化误差是同符号时,则sgn(
)>0,于是
,即量化间距增加,反之,量化间距减少。
程序运行结果如图9所示。
图9自适应增量调制编码解码仿真结果
波形解析:
0.01左右及0.02左右量化阶距增加
0.015左右及0.025---0.035量化阶距减小,颗粒噪声随之减小
6.3增量调制应用的例子
试建立Simulink模型,研究信道误码对增量调制的语音质量的影响。
增量调制的采样率为32kHz。
仿真模型如图(10)所示,其中使用了PateTranstion模块将输入语音信号的采样率由8000次/s升至32000次/s,然后进行增量调制。
增量调制的预测器分子系数设置为[0,0.9]以避免系统处于临界稳定状态。
信道误码率可在0~1内任意设置。
通过仿真聆听相应误码率下的恢复话音,主观感觉误码率在0.1时语音仍然具有相当的可懂度,说明增量调制的抗噪声能力比PCM强,但在无误码传输中,增量调制的解码音质不如PCM。
将信道误码率设置为0.5,则输出为纯噪声,相当于通信中断。
有趣的是,当将误码率设置为0.9时,又可听到解码语音信号,这说明增量调制能够抵抗信道传输中信号相位反转。
由于增量调制解码方法相当简单,实际中甚至直接使用积分器或低通滤波器对输入信号处理即可,也不需要时钟同步,抗干扰能力很强,所以在军用无线语音通信中得到了较为广泛的应用。
心得体会
由于基础不扎实,以前Matlab并没怎么学,这一次用上了,还真是无从下手。
在网上查看了很多资料,本来以为随便找一个程序能运行就行了,但发现这样不行,还是必须自己会点,因为根本不可能找到找到一个要求一摸一样的,最终还是要修改。
参考了一些程序后,分析了一下,不会的就看书、XX,还是有点收获的。
增量调制通信原理学过,基础还是没忘记,关键就是编程序了。
由于对Matlab的陌生,好多函数找不到,也不会用。
体现在这次课程设计中的就是不会求频谱。
问了好多同学,还是有点模糊。
有幸在看到一个求频谱的,原来就是使用的函数不会用。
虽然很简单,但不会就是最难的事。
这次课程设计的确花了我很长的时间,但从中学到的东西还是令我欣慰的。
7参考文献
[1]郭文彬,桑林编著,通信原理-基于Matlab的计算机仿真,北京邮电大学出版社,2006
[2]曹志刚,钱亚生,现代通信原理,清华大学出版社,2003年
[3]郭仕剑等,《MATLAB7.x数字信号处理》,人民邮电出版社,2006年
[4]张辉,曹丽娜著,通信原理学习指导,西安电子电子科技大学,2003