计算机工程系实验报告
实验项目名称: 脉冲编码调制的MATLAB仿真
班级:网络二班 姓名:尚晶晶 学号:20140903223
一、实 验 目的:
1、掌握脉冲编码调制的基本原理。
2、理解均匀PCM与非均匀PCM.
3、利用MATLAB对抽样值进行A律13折线编码。
4、利用MATLAB画出常用数字基带信号的波形图。
5、掌握无间干扰条件及频谱形状。
6、利用MATLAB画眼图。
二、实 验原理:
1、所谓编码调制,就是将模拟信号抽样、量化,然后将已量化值变换成代码。均匀PCM是指在均匀量化情况下进行的二进制编码;非均匀PCM是指在非均匀量化情况下进行的二进制编码。
2、在MATLAB中,eyediagram函数用来绘制眼图,其完整调用格式如下:
Eyediagram(x,n,period,offset,plotstring)
其中,x是信号;n是每个轨迹的抽样点数;period是指水平抽样的坐标范围,即[-period/2,period/2];offset是偏置因子,信号的第(offset+1)个抽样点之后的每个n值为一个周期,且该周期为period的整数倍,offset必须是非负整数;plotstring是绘制眼图时采用的符号、线性和颜色,其格式与plot函数相同。
三、实验要求:
1、输入信号抽样值为+1270个量化单位,按照A律13折线特性编制成8位码。
2、产生一个二进制随机方波信号,绘出该方波通过升余弦滤波器后,其高频分量被屡调后的眼图。
四、程序代码:
1、clear all
X=1270;
if x>0
out(1)=1;
else
out(1)=0;
end
if abs(x)>=0&abs(x)<16
out(2)=0;out(3)=0;out(4)=0;step=1;st=0;
elseif 16<=abs(x)&abs(x)<32
out(2)=0;out(3)=0;out(4)=1;step=1;st=16;
elseif 32<=abs(x)&abs(x)<64
out(2)=0;out(3)=1;out(4)=0;step=2;st=32;
elseif 64<=abs(x)&abs(x)<128
out(2)=0;out(3)=1;out(4)=1;step=4;st=64;
elseif 128<=abs(x)&abs(x)<256
out(2)=1;out(3)=0;out(4)=0;step=8;st=128;
elseif 256<=abs(x)&abs(x)<512
out(2)=1;out(3)=0;out(4)=1;step=16;st=256;
elseif 512<=abs(x)&abs(x)<1024
out(2)=1;out(3)=1;out(4)=0;step=32;st=512;
elseif 1024<=abs(x)&abs(x)<2048
out(2)=1;out(3)=1;out(4)=1;step=64;st=1024;
else
out(2)=1;out(3)=1;out(4)=1;step=64;st=1024;
end
if abs(x)>=2048
out(2:8)=[1 1 1 1 1 1 1 1];
else
tmp=floor((abs(x)-st)/step);
t=dec2bin(tmp,4)-48;
out(5:8)=t(1:4);
end
out=reshape(out,1,8)
2、x=randint(3000,1,2);
y=[0;rcosflt(x,1,10)];
t=1:length(y);
figure(1)
plot(t,y);
axis([1,300,-0.5,1.5])
grid on
eyediagram(y,20,4);
五、运 行 结 果 :
1、
2、
本文来源:https://www.2haoxitong.net/k/doc/e696d9e80342a8956bec0975f46527d3240ca69c.html
文档为doc格式