课 程 设 计 报 告
系 : 三 系 学 生 姓 名 :班 级:学 号: [1**********] 成 绩:指 导 教 师: 吴 琼
开 课 时 间:2013-2014学年一学期
目录
一、课程设计目的 .................................................................................... 1 二.设计任务书 ........................................................................................ 1 三.进度安排 ............................................................................................ 2 四.具体要求 ............................................................................................ 2 五、课程设计内容 .................................................................................... 3
第一章 基本原理 . .................................................................................................................... 3
1.1对模拟信号进行抽样 . ............................................................................................... 4 1.2对离散数字信号序列量化 . ....................................................................................... 6 1.3 对量化后的数字信号进行编码 . ............................................................................ 10 第二章 仿真程序、程序编制、流程图、仿真结果 ........................................................... 13
2.1 抽样定理的验证 . .................................................................................................... 13 2.2量化与编码 . ............................................................................................................. 14 2.3 误码率 . .................................................................................................................... 16 2.4整个程序设计流程如图 . ......................................................................................... 17 第三章 结论及其分析 . .......................................................................................................... 19
3.1抽样定理的验证 . ..................................................................................................... 19 3.2 量化与编码分析 . .................................................................................................... 20 3.3误码率分析 . ............................................................................................................. 21 3.4 A律PCM 编码译码后波形与输入波形 . ................................................................. 22 3.5未编码的正弦信号经A 律PCM 编译码后的量化信噪比 ...................................... 23 3.6仿真实现增量调制的过程和并理解噪声产生的原理。 ...................................... 24
六、运行程序过程中产生的问题及采取的措施 . ................................. 25 七、总结和展望 ...................................................................................... 26 八.参考文献 .......................................................................................... 27
一、课程设计目的
本课程是为通信工程专业本科生开设的专业必修课,结合学生的专业方向的理论课程,充分发挥学生的主动性,使学生掌握应用MATLAB 或者SYSTEMVIEW 等仿真软件建立通信系统,巩固理论课程内容,规范文档的建立,培养学生的创新能力,并能够运用其所学知识进行综合的设计。
通信系统原理的课程设计是对通信系统仿真软件、课程学习的综合检验,配合理论课的教学,让学生亲自参加设计、仿真、验证通信系统的一般原理、调制解调原理、信号传输及受噪声影响等方面的知识点。
二.设计任务书
模拟信号数字化PCM 编码设计
主要内容:
1. 模拟信号数字化的处理步骤:抽样、量化、编码 2. PCM编码的压缩和扩张原理;
3. 用MATLAB 或其它EDA 工具软件对PCM 编码进行使用A 律和μ律的压缩和扩张进行软件仿真;
4. 对仿真进行分析比较。 5. PCM的8位编码C 1C 2C 3C 4C 5C 6C 7C 8
6.仿真实现增量调制的过程和并理解噪声产生的原理。
三.进度安排
(一)18周课程设计安排:
星期一:讲课程设计的内容,安排每一天的具体任务,熟悉软件的编程环境MATLAB/SIMULINK;
星期二:查资料,确定课程设计的题目; 星期三:确定设计方案,写出设计思想;
星期四:编写修改程序,必须有详细的程序注释,得出结果; 星期五:写总结报告,检查各位的做的情况,考评设计成绩。 上交的材料:包含三样:(课程设计的电子稿、打印稿、程序)
四.具体要求
1. 课程设计的内容独立自主完成,课程设计报告内容完整、格式规范、排版整洁美观;
2. 设计选用的语言不限,推荐使用MATLAB 、C 均可,编写出的程序,必须有详细的注释说明;
五、课程设计内容
模拟信号数字化的处理
第一章 基本原理
通信系统可以分为模拟和数字通信系统两大类。数字通信系统有很多的优点,应用非常广泛,已经成为现代通信的主要发展趋势。自然界中很多信号都是模拟量,我们要进行数字传输就要将模拟量进行数字化,将模拟信号数字化,处理可以分为抽样,量化,编码,这三个步骤。
下图是模拟信号数字传输的过程原理图:
f s (t ) f (t ) f (n )
A /D
量化编码
p (t )
下图是模拟信号数字化过程: 数字
滤波器
g (n )
D /A
g (t )
1.1对模拟信号进行抽样
抽样是把时间上连续的模拟信号变成一系列时间上离散的抽样值的过程。抽
样定理:设一个频带限制的(0,fH )Hz 内的时间连续信号m (t )如果它不少于2fH 次/s的速率进行抽样,则m(t)可以由抽样值完全确定。
抽样定理指出,由样值序列无失真恢复原信号的条件是fs ≥2fH ,为了
满足抽样定理,要求模拟信号的频谱限制在0~fH 之内(fH 为模拟信号的最高频率)。为此,在抽样之前,先设置一个前置低通滤波器,将模拟信号的带宽限制在fH 以下,如果前置低通滤波器特性不良或者抽样频率过低都会产生折叠噪声。抽样频率小于2倍频谱最高频率时,信号的频谱有混叠。 抽样频率大于2倍频谱最高频率时,信号的频谱无混叠。取样分为冲激取样和矩形脉冲取样,这里只详细介绍冲激取样的原理和过程,矩形脉冲取样的原理和冲激取样的是一样的,只不过取样函数变成了矩形脉冲序列。数学运算与冲激取样是一样的。冲激取样就是通过冲激函数进行取样。
上图左边就是简化的模拟信号转换离散的数字信号的抽样过程,其中f (t )
是连续的时间信号,也就是模拟信号,在送到乘法器上与s(t)取样脉冲序列进行乘法运算,事实上取样脉冲序列就是离散的一个个冲激函数(冲激函数如上图右边的图),右边部分的fs(t)就是变成了一个个离散的函数点了。下面给出抽样的数学运算过程。 s (t )=δT s (t )=
n =-∞∞
∑δ(t -nT )
s
f s (t )=f (t )⋅s (t )=f (t )⋅∑δ(t -nT s )
n =-∞
=
n =-∞
∞
∑
f (t )δ(t -nT )=∑f (nT )δ(t -nT )
s
s
s
n =-∞
∞∞
下面给出抽样过程的冲激抽样的函数过程:
⨯
=
因此:
∞
fs(t)
=f (t ) ⋅δT (t ) =∑f (kT ) δ(t -kT )
k =-∞
另外要注意的是,采样间隔的周期要足够的小,采样率要做够的大,要不然会出现如下图所示的混叠现象,一帮情况下TsWs=2π,Wn>2Wm。
1.2对离散数字信号序列量化
量化就是利用预先规定的有限个电平来表示模拟信号抽样值的过程。时间连续的模拟信号经过抽样后的样值序列虽然在时间上离散,但是在幅度上仍然是连续的,也就是说,抽样值m(kT)可以取到无穷多个值,这个很容易理解的,因为在一个区间里面可以取出无数的不同的数值,这就可以看成是连续的信号,所有这样的信号仍然属于模拟信号范围。因此这就有了对信号进行量化的概念。
在通信系统中已经有很多的量化方法了,最常见的就是均匀量化与非均匀量
化。均匀量化概念比较早出来。因其有很多的不足之处,很少被使用,这就有了非均匀量化的概念。
均匀量化就是把信号的取值范围按照等距离分割,每个量化电平都取中间值
(也就是平均值),落在这个区间的所有值都用这个值代替。当信号的变化范围和量化电平被确定后,量化间隔也就被确定。
在语言信号数字化通信中,均匀量化有个明显不足之处:量化信噪比随信号
的电平的减小而下降。为了克服这个缺点,实际中往往采用非均匀量化。
非均匀量化是一种在整个动态范围内量化间隔不相等的量化。它是根据输入
信号的概率密度函数来分布量化电平的,以改善量化性能,它的特点是输入小时量阶也小,输入大时,量阶也大。整个范围内信噪比几乎是一样的,缩短了码字长度,提高了编码效率。
实际中非均匀量化的方法之一是把输入量化器的信号x 先进行压塑处理,再
把压缩的信号y 进行非均匀量化。压缩器其实就是一个非线性电路,微弱的信号被放大,强的信号被压缩,压缩器的输入输出关系可以这样表示:y=f(x)
接受端采用一个与压缩特性相反的扩张器来恢复x 。下图就是压缩与扩张的示意图:
通常使用的压缩器中,大多数采用对数压缩,即
y=lnx。广泛采用这两种对数压扩特性的是
u/A率压扩。
μ律压缩特性
压缩规律:μ压缩特性近似满足下对数规律
μ律压缩定性分析
μ=0
时:无压缩作用(直线) μ>
0时:μ↑→压缩明显
压缩作用---y 是均匀的,而x 是非均匀的→信号越小△x 也越小
x
A 压缩率
所谓的 A压缩率就是压缩器具有如下特性:
上式中:x 为归一化的压缩器输入电压;归一化的压缩器输出电压;A 为压扩参数,表示压缩程度。
下图是由抽样后的离散信号量化的过程
其中量化过程如下如所示
:
量化器,其输出信号x q (t)=xq (kT)=qi , qi 为M 个量化电平q 1、q 2 ⋯q M 之一。m 1、m 2 ⋯ mM-1为量化区间的端点。
在量化时候会产生量化误差,这里不作详细介绍,其量化误差计算公式如下:
量化后量化输出为:
S q N q
=
E m (kT s ) -m q (kT s )
E m 2q (kT s )
[]
2
m i -1≤x (kT )
我们衡量一个量化器的性能好坏用信噪比来表示: 信噪比定义如下:
S q
N q E [x (kT ) -x q (kT )]2
其中:xq(t) 与x(t) 近似程度的好坏用 Sq/Nq 衡量。 Sq /Nq 越大, 说明近似程度越好。
=
2E [x q (kT )]
在非均匀量化中有如下的压扩特性:
4Δ3Δ2ΔΔ
y
压扩特性数学分析:
o
在实用中需按照不同情况对理想压缩特性作适当修正。
当量化区间划分很多时,在每一量化区间内压缩特性曲线可以近似看作为一段直线,其斜率为:∆y dy
==y '∆x dx
∆x =
dx
∆y dy
对此压缩器的输入和输出电压范围均作归一化,且纵坐标y 在0和1之间均匀划分成N 个量化区间,则每个量化区间的间隔应该等于:
∆y =
1N
∆x =
dx 1dx ∆y =dy N dy
dx
=N ∆x dy
为了对不同的信号强度保持信号量噪比恒定,当输入电压x 减小时,应当使
量化间隔∆x 按比例地减小,即: ∆x ∝ x。
dx ∝x dy
dx =kx dy
ln x =ky +c
将边界条件(当x=1时,y=1),代入可得: k+c=0 → c=-k
ln x =ky -k
1y =1+ln x
k
1.3 对量化后的数字信号进行编码
所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码。当然,这里的编码和译码与差错控制编码和译码是完全不同的,前者是属于信源编码的范畴。
在现有的编码方法中,若按编码的速度来分,大致可分为两大类:低速编码和高速编码。通信中一般都采用第二类。编码器的种类大体上可以归结为三类:逐次比较型、折叠级联型、混合型。在逐次比较型编码方式中,无论采用几位码,一般均按极性码、段落码、段内码的顺序排列。下面结合13折线的量化来加以说明。
在13折线法中,无论输入信号是正是负,均按8段折线(8个段落)进行编码。若用8位折叠二进制码来表示输入信号的抽样量化值,其中用第一位表示量化值的极性,其余七位(第二位至第八位)则表示抽样量化值的绝对大小。具体的做法是:用第二至第四位表示段落码,它的8种可能状态来分别代表8个段落的起点电平。其它四位表示段内码,它的16种可能状态来分别代表每一段落的16个均匀划分的量化级。这样处理的结果,8个段落被划分成27=128个量化级。 13折线编码
特点:基本上保持压缩特性,又便于数字实现。
折线的各段斜率:
线段8斜率:1/8÷1/2=1/4 线段7斜率:1/8÷1/4=1/2
线段6斜率:1/8÷1/8= 1 线段5斜率:1/8÷1/16=2 线段4斜率:1/8÷1/32=4 线段3斜率:1/8÷1/64=8 线段2斜率: 1/8÷1/128=16 线段1斜率: 1/8÷1/128=16 下图是完整的13折线图:
完整13折线的图的特性:
(1)负向8段斜线按同样方法得到 ; (2)第Ⅲ象限的折线与第Ⅰ象限呈奇对称;
(3)斜率相同的段合为一段,共13段,称为13折线法。 13折线的绘制方法:
(1)将输入输出的电压归一。
(2)将x 轴的区间(0,1)不均匀的划分为8段,划分的规律是:每一次以二分之一取段。
(3)将x 轴上分好的8段,在段内分成均匀的16段,每一等份作为一个量化层。 (4)将y 轴的区间(0,1)均匀的划分为8段,在段内分成均匀的16段,每一等份作为一个量化层。
(5)将相应的交点连接起来得到8个折线段。
(6)因为还包括小于0的电平,所以在第三象限也有8个折线段,但是在第一象限中第一,二段的折线的斜率和第三象限第一,二段相同,所以四条连成一条,这样整个平面有13条线,所以也称为13折线.
下表左边是段落码和段落之间的关系,右边是段内码16个量化级之间的关系
误码率:
对于误码率的计算,我们一般都是对信号的噪声功率和信噪比来进行讨论
的。
误码率是衡量数据在规定时间内数据传输精确性的指标。如果有误码就有误码率。简单的说,误码率就是在数字传输过程中,在发送到接收端,发送错误的码元个数占总的码元个数的比例。
误码率的计算公式如下:
第二章 仿真程序、程序编制、流程图、仿真结果
2.1 抽样定理的验证
首先我们先要通过matlab 软件产生一个模拟信号,然后才能对模拟信号进行
抽样等等一系列的操作,下面先给出matlab 软件建立m 文件产生一个比较熟悉的时域连续的周期函数,f(t)= cos(2*pi*30*t)+sin(2*pi*65*t),可以看出这个信号就是由两个最常用的函数复合而成。 A, 产生原始连续信号的matlab 源代码:
%该程序用于画出原信号的图形 clear;
t = -0.1:0.001:0.1; %该参数用于画原信号图形 f =cos(2*pi*90*t); %原函数, 由t 的取值可得f 有201个值 subplot(2,1,1) %matlab矩阵区域设置 plot(t, f) ;%画出采原函数序列图
title('原信号'); xlabel('时间t(s)');
B, 接下来就是对原始信号进行抽样了,下面给出对信号进行抽样的源代码 %该函数用于画出原始波形和抽样后离散的采样波形图 %绘制离散的采样波形图
T= 1/500; %抽样周期,500是抽样频率,可以调整抽样频率
gs = -0.1:T:0.1;
fg = cos(2*pi*90*gs); %对信号进行以T 周期抽样 subplot(2,1,2)
stem(gs, fg) %画图 title('采样信号'); xlabel('时间t(s)');
2.2量化与编码
在抽样以后我们得到了一个个的离散的数字信号序列,但是这个序列并不是
我们想要的数字信号序列,因为前面已经说过,这个不是真正的离散数字信号,它只是在时间上是离散的,在幅度上仍然是连续的。所以就要进行下一步操作—量化。
在实际中量化和编码是一起进行的,下面给出量化编码的matlab 源代码: clear all; close all; %建立原信号
T=0.002; %取时间间隔为0.01
t=-0.1:T:0.1; %时域间隔dt 为间隔从0到10画图 xt=cos(2*pi*30*t)+sin(2*pi*30*t); %xt方程 %采样:时间连续信号变为时间离散模拟信号
fs=500; %抽样fs>=2fc,每秒钟内的抽样点数目将等于或大于2fc 个
sdt=1/fs; %频域采样间隔0.002
t1=-0.1:sdt:0.1; %以sdt 为间隔从-0.1到0.1画图 st=cos(2*pi*30*t1)+sin(2*pi*30*t1); % 离散的抽样函数
figure(1); subplot(3,1,1);
plot(t,xt);title('原始信号'); %画出原始的信号图, 以好对比 grid on
%画背景
subplot(3,1,2);
stem(t1,st,'.'); %这里画出来的是抽样后的离散图 title('抽样信号');
grid on %画背景
%量化过程
n=length(st); %取st 的长度为n M=max(st);
A=(st/M)*2048; %a1(极性码) a2a3a4(段落码)a5a6a7a8(段内电平码)
code=zeros(i,8); %产生i*8的零矩阵 %极性码a1
for i=1:n %if循环语句 if A(i)>=0
code(i,1)=1; %代表正值
else
code(i,1)=0; %代表负值 end
% 这里就是量化的过程,划分成几个不等的段,然后用码元来代替,也就是俗称编码
if abs(A(i))>=0&&abs(A(i))
code(i,2)=0;code(i,3)=0;code(i,4)=0;step=1;start=0; elseif 16
code(i,2)=0;code(i,3)=0;code(i,4)=1;step=1;start=16; elseif 32
code(i,2)=0;code(i,3)=1;code(i,4)=0;step=2;start=32; elseif 64
code(i,2)=0;code(i,3)=1;code(i,4)=1;step=4;start=64; elseif 128
code(i,2)=1;code(i,3)=0;code(i,4)=0;step=8;start=128; elseif 256
code(i,2)=1;code(i,3)=0;code(i,4)=1;step=16;start=256; elseif 512
code(i,2)=1;code(i,3)=1;code(i,4)=0;step=32;start=512; elseif 1024
code(i,2)=1;code(i,3)=1;code(i,4)=1;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); %输出段内码 end
code=reshape(code',1,8*n); %reshape代表从新塑形 code
subplot(3,1,3);
stem(code,'.');axis([1 64 0 1]); %这里我们先取前面八个点编码输出, 输出时候有64个点
title('编码信号'); grid on
2.3 误码率
误码率用matlab 做实际上也就是套公式,最常用的也就是利用信号噪声功
率,信噪比来计算得出,在这里我简单的用matlab 画出几个常见的传输系统的性噪比误码率:
clear all;a=0.001 %信号幅度
SNR_dB=-6:0.3:20; %信噪比范围(单位分贝) SNR=10.^(SNR_dB./10); %信噪比(由分贝转化而来 10lg(SNR)=SNR_dB) SNR2=a.^2./(2*SNR); %信号幅度为a 时的噪声功率 for i=1:length(SNR_dB)
ask_pe0=0.5*erfc(sqrt(a.^2./(8*SNR2))); %ASK相干解调时的误码率(给定信号幅度a 和噪声方差σ^2时的信噪比r=a^2/2*σ^2,而这里的噪声功率是SNR2)
ask_pe1=0.25*erfc(sqrt(a.^2./(8*SNR2)))+0.5*exp(-a.^2./(8*SNR2)); %ASK非相干解调时的误码率
fsk_pe0=0.5*erfc(sqrt(a.^2./(4*SNR2))); %FSK相干解调时的误码率 fsk_pe1=0.5*exp(-0.25*a.^2./SNR2); %FSK非相干解调时的误码率
psk_pe=0.5*erfc(sqrt(0.5*a.^2./SNR2)); %PSK解调时的误码率
dpsk_pe0=erfc(sqrt(a.^2./(2*SNR2))); dpsk_pe1=0.5*exp(-0.5*a.^2./SNR2);
end
semilogy(SNR_dB,ask_pe0,'r'); hold on;
semilogy(SNR_dB,ask_pe1); hold on;
semilogy(SNR_dB,fsk_pe0,'*r'); hold on;
semilogy(SNR_dB,fsk_pe1,'*'); hold on;
semilogy(SNR_dB,psk_pe,'om'); hold on;
semilogy(SNR_dB,dpsk_pe0,':r'); hold on;
semilogy(SNR_dB,dpsk_pe1,':');
legend(' 相干2ASK',' · 非相干2ASK',' 相干2FSK',' · 非相干2FSK','2PSK',' 相干2DPSK',' 非相干2DPSK'); axis([-6,20,1/1e7,1]);
xlabel('SNR_dB'); %确定横坐标 ylabel('Pe'); %确定纵坐标
2.4整个程序设计流程如图
图1-4 程序设计大致流程
输入要进行编码的正弦信号,
因为正弦信号的幅度是变化的所以定义了一个变量用于存放幅度,通过每次的循环来改变幅度。由于幅度的的值最大为1,因此要对产生的正弦信号进行标准化。
t = 0:0.01:10;
m1 = -60:1:0; %输入的正弦信号幅度不同 m = 10.^(m1/20); figure(1)
for i = 1:length(m) for j = 1:2
x1 = m(i)*sin(2*pi*t+2*pi*rand(1)); v = 1;
x = x1/v;%normalize sxx = floor(x*4096);
将采样后得到sxx 进行A 律PCM 编码,
y = pcm_encode(sxx);
pcm_encode函数是按照附表A 律PCM 编码进行编程的。在话音信号的数字化同际标准G .7ll 中,采用了折叠码编码。表7—1是G .711建议的语音信号的4律编码规则。输入的语音信号经过抽样、量化后,每个抽样值编码成8个比特的二进制码组。量化时,A 律中的每个区间义被均勺量化成16个量化电平,其编码规则为: 其中:
·b0为极性码,b0=0时对应输入为负。b0=1时对应输入为正。 ·b1b2b3为段落码,分别对应x 的8个区间;
·b4b5b6b7为段内码,对应x 区间中的l 6个量化电平值 将经过PCM 编码的信号送入信道
题目要求的信道没有误码,所以将编码后的序列送入信道没有什么改变只是传输,没有产生误码。
再将经过信道的信号y 进行PCM 解码
y2 = pcm_decode(y,v);
pcm_decode函数实际上是pcm_encode的逆过程。
画出经过A 律PCM 编码、译码后得到的信号波形与未编码的信号波形。
subplot(211) plot(t,x1);
title('未编码信号波形'); subplot(212) plot(t,y2)
title('编译码后得到的信号波形');
画出不同幅度A c 情况下,PCM 译码后得到的信号量化信噪比曲线。 对于一定A c 的情况下,量化信噪比的计算方法如下:根据公式 SNR =得
nq(j) = sum((x1-y2).*(x1-y2))/length(x1); sq(j) = mean(y2.^2); snr(j) = (sq(j)/nq(j));
snrq(i)=10*log10(mean(snr));
对于要绘制不同A c 情况下的量化信噪比曲线,只是进行循环,每次循环的A c 从而得到不同的量化信噪比。 循环结束后,绘出量化信噪比曲线。 plot(m1,snrq);
axis([-60 0 0 60]);
title('xulie的量化信噪比') grid;
下图为simulink 搭建的PCM 编码器框图:
S
σ2
(6)
图1-5所示
测试模型和仿真结果如图所示,其中以Saturation 作为限幅器,,将输入信号幅度值限制在PCM 编码的定义范围内,Relay 模块的门限设置为0,其输出既可作为PCM 编码出去的最高位——极性码。阳值取绝对值后,以Look-Up Table 模块进行13折线压缩,并用增益模块将样值范围放大到0~127,然后用间距为1的Quantizer 进行四舍五入的取整,最后将整数编码为7位二进制序列,作为PCM 编码的低7
第三章 结论及其分析
3.1抽样定理的验证
产生原始信号的函数生成的信号波形如下图所示:
3.2 量化与编码分析
下面给出由量化编码程序输出的编码序列(由于数据较多,这里只显示前80位数据) :
code =
Columns 1 through 16
1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 Columns 17 through 32
0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 1 Columns 33 through 48
1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 Columns 49 through 64
1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0
3.3误码率分析
先给出误码率的matlab 仿真图:
上图显示的是误码率与信号的信噪比之间的关系,由图可见,当信噪比很小
时,误码率相对来说比较高,而且可以看出,不管是通过什么解调,其误码率都是处在一个相同或者相近的位置;当信噪比较高时,误码率就比较小了,而且啊,不同的解调,所产生的信噪比都是相差比较大的。我们还可以看出非相干解调相同的信噪比下所产生的误码率最高,在相同的 误码率下产生的信噪比也是最大的。PSK 解调是这集中解调中稍微比较好的了。
3.4 A律PCM 编码译码后波形与输入波形
图1-6 A 律PCM 编码译码后波形与输入波形
图1-7 A 律PCM 编码译码后波形与输入波形的对比示意图
3.5未编码的正弦信号经A 律PCM 编译码后的量化信噪比
图1-8 未编码的正弦信号经A 律PCM 编译码后的量化
信噪比
st =128
将图1-8的量化信噪比与原理中的图3对比,发现两个图形大致一样,图8中的曲线也有6个起伏,7个波峰,说明程序得到的量化信噪比曲线是正确的。因为题目中是对正弦信号进行A 律PCM 编码、译码后得到的量化信噪比曲线。而在原理部分图3正是加入正弦信号,通过A 律13折线近似后得到的SNR 曲线。出现这样曲线是因为在每段折线起始部分,量化间隔成倍增加,量化噪声功率增加很快,而信号功率并没有很快增加,造成量化信噪比有所下降。但虽图1-6与图1-3的波形基本吻合,却存在一定的不同。曲线的起伏和波峰没有理论上的曲线的起伏明显。
3.6仿真实现增量调制的过程和并理解噪声产生的原理。
Ts=1e-3; t=0:Ts:20*Ts;
x=sin(2*pi*60*t)+0.5*sin(2*pi*150*t); delta=0.4;D(1+length(t))=0;
for k=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([0 20*Ts,-2 2]);
hold on; subplot(3,1,2);stairs(t,codeout); axis([0 20*Ts,-2 2]); Dr(1+length(t))=0; for k=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);
hold on; subplot(3,1,3);plot(t,x);
六、运行程序过程中产生的问题及采取的措施
面对A 率本来无从下手,后来同学点播,终于明白了该如何操作,谢谢老师同学的帮忙,也学会了如何使用百度文库。
七、总结和展望
通过此次课程设计,使我更加扎实的掌握了有关模拟信号数字化PCM 编码设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。 在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上披荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦 !
在这一周的课程设计中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说是苦多于甜,但是可以学到很多很多的东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
八.参考文献
1. 《通信原理》樊昌信 曹丽娜 国防工业出版社
2. 《现代通信系统分析与仿真——matlab 通信工具箱》李建新 刘乃安 西安电子科技大学出版社
3. 《数字信号处理教程——matlab 释义与实现》陈怀琛 电子工业出版社 4. 《现代通信系统——使用matlab 》约翰-G-普罗克斯 西安交通大学出版社 5. 《MATLAB 通信工程仿真》张德丰 机械工业出版社
6. 《MATLAB/SIMULINK通信系统建模与仿真实例分析》邵玉斌 清华大学出版社
课 程 设 计 报 告
系 : 三 系 学 生 姓 名 :班 级:学 号: [1**********] 成 绩:指 导 教 师: 吴 琼
开 课 时 间:2013-2014学年一学期
目录
一、课程设计目的 .................................................................................... 1 二.设计任务书 ........................................................................................ 1 三.进度安排 ............................................................................................ 2 四.具体要求 ............................................................................................ 2 五、课程设计内容 .................................................................................... 3
第一章 基本原理 . .................................................................................................................... 3
1.1对模拟信号进行抽样 . ............................................................................................... 4 1.2对离散数字信号序列量化 . ....................................................................................... 6 1.3 对量化后的数字信号进行编码 . ............................................................................ 10 第二章 仿真程序、程序编制、流程图、仿真结果 ........................................................... 13
2.1 抽样定理的验证 . .................................................................................................... 13 2.2量化与编码 . ............................................................................................................. 14 2.3 误码率 . .................................................................................................................... 16 2.4整个程序设计流程如图 . ......................................................................................... 17 第三章 结论及其分析 . .......................................................................................................... 19
3.1抽样定理的验证 . ..................................................................................................... 19 3.2 量化与编码分析 . .................................................................................................... 20 3.3误码率分析 . ............................................................................................................. 21 3.4 A律PCM 编码译码后波形与输入波形 . ................................................................. 22 3.5未编码的正弦信号经A 律PCM 编译码后的量化信噪比 ...................................... 23 3.6仿真实现增量调制的过程和并理解噪声产生的原理。 ...................................... 24
六、运行程序过程中产生的问题及采取的措施 . ................................. 25 七、总结和展望 ...................................................................................... 26 八.参考文献 .......................................................................................... 27
一、课程设计目的
本课程是为通信工程专业本科生开设的专业必修课,结合学生的专业方向的理论课程,充分发挥学生的主动性,使学生掌握应用MATLAB 或者SYSTEMVIEW 等仿真软件建立通信系统,巩固理论课程内容,规范文档的建立,培养学生的创新能力,并能够运用其所学知识进行综合的设计。
通信系统原理的课程设计是对通信系统仿真软件、课程学习的综合检验,配合理论课的教学,让学生亲自参加设计、仿真、验证通信系统的一般原理、调制解调原理、信号传输及受噪声影响等方面的知识点。
二.设计任务书
模拟信号数字化PCM 编码设计
主要内容:
1. 模拟信号数字化的处理步骤:抽样、量化、编码 2. PCM编码的压缩和扩张原理;
3. 用MATLAB 或其它EDA 工具软件对PCM 编码进行使用A 律和μ律的压缩和扩张进行软件仿真;
4. 对仿真进行分析比较。 5. PCM的8位编码C 1C 2C 3C 4C 5C 6C 7C 8
6.仿真实现增量调制的过程和并理解噪声产生的原理。
三.进度安排
(一)18周课程设计安排:
星期一:讲课程设计的内容,安排每一天的具体任务,熟悉软件的编程环境MATLAB/SIMULINK;
星期二:查资料,确定课程设计的题目; 星期三:确定设计方案,写出设计思想;
星期四:编写修改程序,必须有详细的程序注释,得出结果; 星期五:写总结报告,检查各位的做的情况,考评设计成绩。 上交的材料:包含三样:(课程设计的电子稿、打印稿、程序)
四.具体要求
1. 课程设计的内容独立自主完成,课程设计报告内容完整、格式规范、排版整洁美观;
2. 设计选用的语言不限,推荐使用MATLAB 、C 均可,编写出的程序,必须有详细的注释说明;
五、课程设计内容
模拟信号数字化的处理
第一章 基本原理
通信系统可以分为模拟和数字通信系统两大类。数字通信系统有很多的优点,应用非常广泛,已经成为现代通信的主要发展趋势。自然界中很多信号都是模拟量,我们要进行数字传输就要将模拟量进行数字化,将模拟信号数字化,处理可以分为抽样,量化,编码,这三个步骤。
下图是模拟信号数字传输的过程原理图:
f s (t ) f (t ) f (n )
A /D
量化编码
p (t )
下图是模拟信号数字化过程: 数字
滤波器
g (n )
D /A
g (t )
1.1对模拟信号进行抽样
抽样是把时间上连续的模拟信号变成一系列时间上离散的抽样值的过程。抽
样定理:设一个频带限制的(0,fH )Hz 内的时间连续信号m (t )如果它不少于2fH 次/s的速率进行抽样,则m(t)可以由抽样值完全确定。
抽样定理指出,由样值序列无失真恢复原信号的条件是fs ≥2fH ,为了
满足抽样定理,要求模拟信号的频谱限制在0~fH 之内(fH 为模拟信号的最高频率)。为此,在抽样之前,先设置一个前置低通滤波器,将模拟信号的带宽限制在fH 以下,如果前置低通滤波器特性不良或者抽样频率过低都会产生折叠噪声。抽样频率小于2倍频谱最高频率时,信号的频谱有混叠。 抽样频率大于2倍频谱最高频率时,信号的频谱无混叠。取样分为冲激取样和矩形脉冲取样,这里只详细介绍冲激取样的原理和过程,矩形脉冲取样的原理和冲激取样的是一样的,只不过取样函数变成了矩形脉冲序列。数学运算与冲激取样是一样的。冲激取样就是通过冲激函数进行取样。
上图左边就是简化的模拟信号转换离散的数字信号的抽样过程,其中f (t )
是连续的时间信号,也就是模拟信号,在送到乘法器上与s(t)取样脉冲序列进行乘法运算,事实上取样脉冲序列就是离散的一个个冲激函数(冲激函数如上图右边的图),右边部分的fs(t)就是变成了一个个离散的函数点了。下面给出抽样的数学运算过程。 s (t )=δT s (t )=
n =-∞∞
∑δ(t -nT )
s
f s (t )=f (t )⋅s (t )=f (t )⋅∑δ(t -nT s )
n =-∞
=
n =-∞
∞
∑
f (t )δ(t -nT )=∑f (nT )δ(t -nT )
s
s
s
n =-∞
∞∞
下面给出抽样过程的冲激抽样的函数过程:
⨯
=
因此:
∞
fs(t)
=f (t ) ⋅δT (t ) =∑f (kT ) δ(t -kT )
k =-∞
另外要注意的是,采样间隔的周期要足够的小,采样率要做够的大,要不然会出现如下图所示的混叠现象,一帮情况下TsWs=2π,Wn>2Wm。
1.2对离散数字信号序列量化
量化就是利用预先规定的有限个电平来表示模拟信号抽样值的过程。时间连续的模拟信号经过抽样后的样值序列虽然在时间上离散,但是在幅度上仍然是连续的,也就是说,抽样值m(kT)可以取到无穷多个值,这个很容易理解的,因为在一个区间里面可以取出无数的不同的数值,这就可以看成是连续的信号,所有这样的信号仍然属于模拟信号范围。因此这就有了对信号进行量化的概念。
在通信系统中已经有很多的量化方法了,最常见的就是均匀量化与非均匀量
化。均匀量化概念比较早出来。因其有很多的不足之处,很少被使用,这就有了非均匀量化的概念。
均匀量化就是把信号的取值范围按照等距离分割,每个量化电平都取中间值
(也就是平均值),落在这个区间的所有值都用这个值代替。当信号的变化范围和量化电平被确定后,量化间隔也就被确定。
在语言信号数字化通信中,均匀量化有个明显不足之处:量化信噪比随信号
的电平的减小而下降。为了克服这个缺点,实际中往往采用非均匀量化。
非均匀量化是一种在整个动态范围内量化间隔不相等的量化。它是根据输入
信号的概率密度函数来分布量化电平的,以改善量化性能,它的特点是输入小时量阶也小,输入大时,量阶也大。整个范围内信噪比几乎是一样的,缩短了码字长度,提高了编码效率。
实际中非均匀量化的方法之一是把输入量化器的信号x 先进行压塑处理,再
把压缩的信号y 进行非均匀量化。压缩器其实就是一个非线性电路,微弱的信号被放大,强的信号被压缩,压缩器的输入输出关系可以这样表示:y=f(x)
接受端采用一个与压缩特性相反的扩张器来恢复x 。下图就是压缩与扩张的示意图:
通常使用的压缩器中,大多数采用对数压缩,即
y=lnx。广泛采用这两种对数压扩特性的是
u/A率压扩。
μ律压缩特性
压缩规律:μ压缩特性近似满足下对数规律
μ律压缩定性分析
μ=0
时:无压缩作用(直线) μ>
0时:μ↑→压缩明显
压缩作用---y 是均匀的,而x 是非均匀的→信号越小△x 也越小
x
A 压缩率
所谓的 A压缩率就是压缩器具有如下特性:
上式中:x 为归一化的压缩器输入电压;归一化的压缩器输出电压;A 为压扩参数,表示压缩程度。
下图是由抽样后的离散信号量化的过程
其中量化过程如下如所示
:
量化器,其输出信号x q (t)=xq (kT)=qi , qi 为M 个量化电平q 1、q 2 ⋯q M 之一。m 1、m 2 ⋯ mM-1为量化区间的端点。
在量化时候会产生量化误差,这里不作详细介绍,其量化误差计算公式如下:
量化后量化输出为:
S q N q
=
E m (kT s ) -m q (kT s )
E m 2q (kT s )
[]
2
m i -1≤x (kT )
我们衡量一个量化器的性能好坏用信噪比来表示: 信噪比定义如下:
S q
N q E [x (kT ) -x q (kT )]2
其中:xq(t) 与x(t) 近似程度的好坏用 Sq/Nq 衡量。 Sq /Nq 越大, 说明近似程度越好。
=
2E [x q (kT )]
在非均匀量化中有如下的压扩特性:
4Δ3Δ2ΔΔ
y
压扩特性数学分析:
o
在实用中需按照不同情况对理想压缩特性作适当修正。
当量化区间划分很多时,在每一量化区间内压缩特性曲线可以近似看作为一段直线,其斜率为:∆y dy
==y '∆x dx
∆x =
dx
∆y dy
对此压缩器的输入和输出电压范围均作归一化,且纵坐标y 在0和1之间均匀划分成N 个量化区间,则每个量化区间的间隔应该等于:
∆y =
1N
∆x =
dx 1dx ∆y =dy N dy
dx
=N ∆x dy
为了对不同的信号强度保持信号量噪比恒定,当输入电压x 减小时,应当使
量化间隔∆x 按比例地减小,即: ∆x ∝ x。
dx ∝x dy
dx =kx dy
ln x =ky +c
将边界条件(当x=1时,y=1),代入可得: k+c=0 → c=-k
ln x =ky -k
1y =1+ln x
k
1.3 对量化后的数字信号进行编码
所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码。当然,这里的编码和译码与差错控制编码和译码是完全不同的,前者是属于信源编码的范畴。
在现有的编码方法中,若按编码的速度来分,大致可分为两大类:低速编码和高速编码。通信中一般都采用第二类。编码器的种类大体上可以归结为三类:逐次比较型、折叠级联型、混合型。在逐次比较型编码方式中,无论采用几位码,一般均按极性码、段落码、段内码的顺序排列。下面结合13折线的量化来加以说明。
在13折线法中,无论输入信号是正是负,均按8段折线(8个段落)进行编码。若用8位折叠二进制码来表示输入信号的抽样量化值,其中用第一位表示量化值的极性,其余七位(第二位至第八位)则表示抽样量化值的绝对大小。具体的做法是:用第二至第四位表示段落码,它的8种可能状态来分别代表8个段落的起点电平。其它四位表示段内码,它的16种可能状态来分别代表每一段落的16个均匀划分的量化级。这样处理的结果,8个段落被划分成27=128个量化级。 13折线编码
特点:基本上保持压缩特性,又便于数字实现。
折线的各段斜率:
线段8斜率:1/8÷1/2=1/4 线段7斜率:1/8÷1/4=1/2
线段6斜率:1/8÷1/8= 1 线段5斜率:1/8÷1/16=2 线段4斜率:1/8÷1/32=4 线段3斜率:1/8÷1/64=8 线段2斜率: 1/8÷1/128=16 线段1斜率: 1/8÷1/128=16 下图是完整的13折线图:
完整13折线的图的特性:
(1)负向8段斜线按同样方法得到 ; (2)第Ⅲ象限的折线与第Ⅰ象限呈奇对称;
(3)斜率相同的段合为一段,共13段,称为13折线法。 13折线的绘制方法:
(1)将输入输出的电压归一。
(2)将x 轴的区间(0,1)不均匀的划分为8段,划分的规律是:每一次以二分之一取段。
(3)将x 轴上分好的8段,在段内分成均匀的16段,每一等份作为一个量化层。 (4)将y 轴的区间(0,1)均匀的划分为8段,在段内分成均匀的16段,每一等份作为一个量化层。
(5)将相应的交点连接起来得到8个折线段。
(6)因为还包括小于0的电平,所以在第三象限也有8个折线段,但是在第一象限中第一,二段的折线的斜率和第三象限第一,二段相同,所以四条连成一条,这样整个平面有13条线,所以也称为13折线.
下表左边是段落码和段落之间的关系,右边是段内码16个量化级之间的关系
误码率:
对于误码率的计算,我们一般都是对信号的噪声功率和信噪比来进行讨论
的。
误码率是衡量数据在规定时间内数据传输精确性的指标。如果有误码就有误码率。简单的说,误码率就是在数字传输过程中,在发送到接收端,发送错误的码元个数占总的码元个数的比例。
误码率的计算公式如下:
第二章 仿真程序、程序编制、流程图、仿真结果
2.1 抽样定理的验证
首先我们先要通过matlab 软件产生一个模拟信号,然后才能对模拟信号进行
抽样等等一系列的操作,下面先给出matlab 软件建立m 文件产生一个比较熟悉的时域连续的周期函数,f(t)= cos(2*pi*30*t)+sin(2*pi*65*t),可以看出这个信号就是由两个最常用的函数复合而成。 A, 产生原始连续信号的matlab 源代码:
%该程序用于画出原信号的图形 clear;
t = -0.1:0.001:0.1; %该参数用于画原信号图形 f =cos(2*pi*90*t); %原函数, 由t 的取值可得f 有201个值 subplot(2,1,1) %matlab矩阵区域设置 plot(t, f) ;%画出采原函数序列图
title('原信号'); xlabel('时间t(s)');
B, 接下来就是对原始信号进行抽样了,下面给出对信号进行抽样的源代码 %该函数用于画出原始波形和抽样后离散的采样波形图 %绘制离散的采样波形图
T= 1/500; %抽样周期,500是抽样频率,可以调整抽样频率
gs = -0.1:T:0.1;
fg = cos(2*pi*90*gs); %对信号进行以T 周期抽样 subplot(2,1,2)
stem(gs, fg) %画图 title('采样信号'); xlabel('时间t(s)');
2.2量化与编码
在抽样以后我们得到了一个个的离散的数字信号序列,但是这个序列并不是
我们想要的数字信号序列,因为前面已经说过,这个不是真正的离散数字信号,它只是在时间上是离散的,在幅度上仍然是连续的。所以就要进行下一步操作—量化。
在实际中量化和编码是一起进行的,下面给出量化编码的matlab 源代码: clear all; close all; %建立原信号
T=0.002; %取时间间隔为0.01
t=-0.1:T:0.1; %时域间隔dt 为间隔从0到10画图 xt=cos(2*pi*30*t)+sin(2*pi*30*t); %xt方程 %采样:时间连续信号变为时间离散模拟信号
fs=500; %抽样fs>=2fc,每秒钟内的抽样点数目将等于或大于2fc 个
sdt=1/fs; %频域采样间隔0.002
t1=-0.1:sdt:0.1; %以sdt 为间隔从-0.1到0.1画图 st=cos(2*pi*30*t1)+sin(2*pi*30*t1); % 离散的抽样函数
figure(1); subplot(3,1,1);
plot(t,xt);title('原始信号'); %画出原始的信号图, 以好对比 grid on
%画背景
subplot(3,1,2);
stem(t1,st,'.'); %这里画出来的是抽样后的离散图 title('抽样信号');
grid on %画背景
%量化过程
n=length(st); %取st 的长度为n M=max(st);
A=(st/M)*2048; %a1(极性码) a2a3a4(段落码)a5a6a7a8(段内电平码)
code=zeros(i,8); %产生i*8的零矩阵 %极性码a1
for i=1:n %if循环语句 if A(i)>=0
code(i,1)=1; %代表正值
else
code(i,1)=0; %代表负值 end
% 这里就是量化的过程,划分成几个不等的段,然后用码元来代替,也就是俗称编码
if abs(A(i))>=0&&abs(A(i))
code(i,2)=0;code(i,3)=0;code(i,4)=0;step=1;start=0; elseif 16
code(i,2)=0;code(i,3)=0;code(i,4)=1;step=1;start=16; elseif 32
code(i,2)=0;code(i,3)=1;code(i,4)=0;step=2;start=32; elseif 64
code(i,2)=0;code(i,3)=1;code(i,4)=1;step=4;start=64; elseif 128
code(i,2)=1;code(i,3)=0;code(i,4)=0;step=8;start=128; elseif 256
code(i,2)=1;code(i,3)=0;code(i,4)=1;step=16;start=256; elseif 512
code(i,2)=1;code(i,3)=1;code(i,4)=0;step=32;start=512; elseif 1024
code(i,2)=1;code(i,3)=1;code(i,4)=1;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); %输出段内码 end
code=reshape(code',1,8*n); %reshape代表从新塑形 code
subplot(3,1,3);
stem(code,'.');axis([1 64 0 1]); %这里我们先取前面八个点编码输出, 输出时候有64个点
title('编码信号'); grid on
2.3 误码率
误码率用matlab 做实际上也就是套公式,最常用的也就是利用信号噪声功
率,信噪比来计算得出,在这里我简单的用matlab 画出几个常见的传输系统的性噪比误码率:
clear all;a=0.001 %信号幅度
SNR_dB=-6:0.3:20; %信噪比范围(单位分贝) SNR=10.^(SNR_dB./10); %信噪比(由分贝转化而来 10lg(SNR)=SNR_dB) SNR2=a.^2./(2*SNR); %信号幅度为a 时的噪声功率 for i=1:length(SNR_dB)
ask_pe0=0.5*erfc(sqrt(a.^2./(8*SNR2))); %ASK相干解调时的误码率(给定信号幅度a 和噪声方差σ^2时的信噪比r=a^2/2*σ^2,而这里的噪声功率是SNR2)
ask_pe1=0.25*erfc(sqrt(a.^2./(8*SNR2)))+0.5*exp(-a.^2./(8*SNR2)); %ASK非相干解调时的误码率
fsk_pe0=0.5*erfc(sqrt(a.^2./(4*SNR2))); %FSK相干解调时的误码率 fsk_pe1=0.5*exp(-0.25*a.^2./SNR2); %FSK非相干解调时的误码率
psk_pe=0.5*erfc(sqrt(0.5*a.^2./SNR2)); %PSK解调时的误码率
dpsk_pe0=erfc(sqrt(a.^2./(2*SNR2))); dpsk_pe1=0.5*exp(-0.5*a.^2./SNR2);
end
semilogy(SNR_dB,ask_pe0,'r'); hold on;
semilogy(SNR_dB,ask_pe1); hold on;
semilogy(SNR_dB,fsk_pe0,'*r'); hold on;
semilogy(SNR_dB,fsk_pe1,'*'); hold on;
semilogy(SNR_dB,psk_pe,'om'); hold on;
semilogy(SNR_dB,dpsk_pe0,':r'); hold on;
semilogy(SNR_dB,dpsk_pe1,':');
legend(' 相干2ASK',' · 非相干2ASK',' 相干2FSK',' · 非相干2FSK','2PSK',' 相干2DPSK',' 非相干2DPSK'); axis([-6,20,1/1e7,1]);
xlabel('SNR_dB'); %确定横坐标 ylabel('Pe'); %确定纵坐标
2.4整个程序设计流程如图
图1-4 程序设计大致流程
输入要进行编码的正弦信号,
因为正弦信号的幅度是变化的所以定义了一个变量用于存放幅度,通过每次的循环来改变幅度。由于幅度的的值最大为1,因此要对产生的正弦信号进行标准化。
t = 0:0.01:10;
m1 = -60:1:0; %输入的正弦信号幅度不同 m = 10.^(m1/20); figure(1)
for i = 1:length(m) for j = 1:2
x1 = m(i)*sin(2*pi*t+2*pi*rand(1)); v = 1;
x = x1/v;%normalize sxx = floor(x*4096);
将采样后得到sxx 进行A 律PCM 编码,
y = pcm_encode(sxx);
pcm_encode函数是按照附表A 律PCM 编码进行编程的。在话音信号的数字化同际标准G .7ll 中,采用了折叠码编码。表7—1是G .711建议的语音信号的4律编码规则。输入的语音信号经过抽样、量化后,每个抽样值编码成8个比特的二进制码组。量化时,A 律中的每个区间义被均勺量化成16个量化电平,其编码规则为: 其中:
·b0为极性码,b0=0时对应输入为负。b0=1时对应输入为正。 ·b1b2b3为段落码,分别对应x 的8个区间;
·b4b5b6b7为段内码,对应x 区间中的l 6个量化电平值 将经过PCM 编码的信号送入信道
题目要求的信道没有误码,所以将编码后的序列送入信道没有什么改变只是传输,没有产生误码。
再将经过信道的信号y 进行PCM 解码
y2 = pcm_decode(y,v);
pcm_decode函数实际上是pcm_encode的逆过程。
画出经过A 律PCM 编码、译码后得到的信号波形与未编码的信号波形。
subplot(211) plot(t,x1);
title('未编码信号波形'); subplot(212) plot(t,y2)
title('编译码后得到的信号波形');
画出不同幅度A c 情况下,PCM 译码后得到的信号量化信噪比曲线。 对于一定A c 的情况下,量化信噪比的计算方法如下:根据公式 SNR =得
nq(j) = sum((x1-y2).*(x1-y2))/length(x1); sq(j) = mean(y2.^2); snr(j) = (sq(j)/nq(j));
snrq(i)=10*log10(mean(snr));
对于要绘制不同A c 情况下的量化信噪比曲线,只是进行循环,每次循环的A c 从而得到不同的量化信噪比。 循环结束后,绘出量化信噪比曲线。 plot(m1,snrq);
axis([-60 0 0 60]);
title('xulie的量化信噪比') grid;
下图为simulink 搭建的PCM 编码器框图:
S
σ2
(6)
图1-5所示
测试模型和仿真结果如图所示,其中以Saturation 作为限幅器,,将输入信号幅度值限制在PCM 编码的定义范围内,Relay 模块的门限设置为0,其输出既可作为PCM 编码出去的最高位——极性码。阳值取绝对值后,以Look-Up Table 模块进行13折线压缩,并用增益模块将样值范围放大到0~127,然后用间距为1的Quantizer 进行四舍五入的取整,最后将整数编码为7位二进制序列,作为PCM 编码的低7
第三章 结论及其分析
3.1抽样定理的验证
产生原始信号的函数生成的信号波形如下图所示:
3.2 量化与编码分析
下面给出由量化编码程序输出的编码序列(由于数据较多,这里只显示前80位数据) :
code =
Columns 1 through 16
1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 Columns 17 through 32
0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 1 Columns 33 through 48
1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 Columns 49 through 64
1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0
3.3误码率分析
先给出误码率的matlab 仿真图:
上图显示的是误码率与信号的信噪比之间的关系,由图可见,当信噪比很小
时,误码率相对来说比较高,而且可以看出,不管是通过什么解调,其误码率都是处在一个相同或者相近的位置;当信噪比较高时,误码率就比较小了,而且啊,不同的解调,所产生的信噪比都是相差比较大的。我们还可以看出非相干解调相同的信噪比下所产生的误码率最高,在相同的 误码率下产生的信噪比也是最大的。PSK 解调是这集中解调中稍微比较好的了。
3.4 A律PCM 编码译码后波形与输入波形
图1-6 A 律PCM 编码译码后波形与输入波形
图1-7 A 律PCM 编码译码后波形与输入波形的对比示意图
3.5未编码的正弦信号经A 律PCM 编译码后的量化信噪比
图1-8 未编码的正弦信号经A 律PCM 编译码后的量化
信噪比
st =128
将图1-8的量化信噪比与原理中的图3对比,发现两个图形大致一样,图8中的曲线也有6个起伏,7个波峰,说明程序得到的量化信噪比曲线是正确的。因为题目中是对正弦信号进行A 律PCM 编码、译码后得到的量化信噪比曲线。而在原理部分图3正是加入正弦信号,通过A 律13折线近似后得到的SNR 曲线。出现这样曲线是因为在每段折线起始部分,量化间隔成倍增加,量化噪声功率增加很快,而信号功率并没有很快增加,造成量化信噪比有所下降。但虽图1-6与图1-3的波形基本吻合,却存在一定的不同。曲线的起伏和波峰没有理论上的曲线的起伏明显。
3.6仿真实现增量调制的过程和并理解噪声产生的原理。
Ts=1e-3; t=0:Ts:20*Ts;
x=sin(2*pi*60*t)+0.5*sin(2*pi*150*t); delta=0.4;D(1+length(t))=0;
for k=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([0 20*Ts,-2 2]);
hold on; subplot(3,1,2);stairs(t,codeout); axis([0 20*Ts,-2 2]); Dr(1+length(t))=0; for k=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);
hold on; subplot(3,1,3);plot(t,x);
六、运行程序过程中产生的问题及采取的措施
面对A 率本来无从下手,后来同学点播,终于明白了该如何操作,谢谢老师同学的帮忙,也学会了如何使用百度文库。
七、总结和展望
通过此次课程设计,使我更加扎实的掌握了有关模拟信号数字化PCM 编码设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。 在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上披荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦 !
在这一周的课程设计中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说是苦多于甜,但是可以学到很多很多的东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
八.参考文献
1. 《通信原理》樊昌信 曹丽娜 国防工业出版社
2. 《现代通信系统分析与仿真——matlab 通信工具箱》李建新 刘乃安 西安电子科技大学出版社
3. 《数字信号处理教程——matlab 释义与实现》陈怀琛 电子工业出版社 4. 《现代通信系统——使用matlab 》约翰-G-普罗克斯 西安交通大学出版社 5. 《MATLAB 通信工程仿真》张德丰 机械工业出版社
6. 《MATLAB/SIMULINK通信系统建模与仿真实例分析》邵玉斌 清华大学出版社