通信原理实验报告2

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《通信原理》实验报告

姓名:王梓骅学号:PB16001824

实验题目:模拟信号的数字传输

实验目的:

1.掌握低通信号抽样定理

2.理解 13 折线 A 率逐次比较型 PCM 编码仿真的思想

实验原理:

1.低通信号的抽样定理

2.PCM 编码的基本原理

3.逐次比较型编码的编码方法

实验内容:

1.利用 MATLAB 软件验证低通抽样定理,若低通信号为

x(t)=0.1cos(0.15πt) +0.5cos(4πt)

①画出该低通信号的波形;

②画出抽样速率为 fs = 4 Hz 的抽样序列,画出抽样后的信号波形;

②画出经低通滤波器恢复的波形。

2.设输入一个样值x∈[-2048,+2048],对 x 进行 A 律 PCM 编码。要求编写成函数,该函数输入变量为样值,输出变量为 A 律 13 折线逐次比较的八位 PCM 编码,设码元宽度为 1,画出其波形。

实验数据:

1. 验证低通抽样定理

编程思想:输入x(t),用plot函数即得该低通信号的波形;fs=4Hz得到它的抽样后的波形st。恢复波形时,先用sigexpand函数在序列后补0,即在一个采样点后补M-1个0得到M个点,一共N个采样点就可以用replace 得到一个M*N的矩阵。补0后的序列和sinc函数做卷积得到抽样信号复原后的波形。

思考:若采样频率低于Nyquist采样频率,如fs=2Hz,得到以下波形:不难发现,fs=2Hz时无法恢复原波形。故低通抽样定理得证。

2.PCM 编码

编程思想:M1用if语句判断输入值的正负,并对其取绝对值。把输入的数的绝对值转换为二进制,在11位二进制码中,最开始为零的个数设为k ,把7-k转换为二进制码即为M2M3M4。取二进制码第二位到第五位即为M5M6M7M8。用stairs函数画出码宽为1的波形。

如,输入+1230和-1230分别得到左右两图:

用这种优化的方法应该比实验指导书上面的方法运行速度快且占用内存少。

附录:MATLAB代码

1.sigexpand(序列补0函数)

function [out]=sigexpand(d,M)

out=zeros(M,N);

out(1,:)=d;

out=reshape(out,1,M*N);

end

2.T2F(信号的傅里叶变换)

function [f,sf]=T2F(t,st)

dt=t(2)-t(1) ;

T=t(end) ;

df=1/T ;

N=length(st) ;

f=-N/2*df :df :N/2*df-df;

sf=fft(st);

sf=T/N*fftshift(sf);

end

3.验证低通抽样定理

clear all;

close all;

dt=0.01;

t=0:dt:10;

xt= 0.1*cos(0.15*pi*t) + 0.5*cos(4*pi*t);

[f,xf]=T2F(t,xt);

fs=4;

sdt=1/fs;

t1=0:sdt:10;

st=0.1*cos(0.15*pi*t1) + 0.5*cos(4*pi*t1);

[f1,sf]=T2F(t1,st);

t2=-50:dt:50;

gt=sinc(fs*t2);

stt=sigexpand(st,sdt/dt);

xt_t=conv(stt,gt);

figure(1);

subplot(311);

plot(t,xt);

title('原始信号');

subplot(312);

plot(t1,st);

title('抽样信号 ');

subplot(313);

t3=-50:dt:60+sdt-dt;

plot(t3,xt_t);

title('抽样信号恢复');

axis([0 10 -1 1]);

4.PCM 编码

clear all

a=input('please input a number:')

b=0;

M=zeros(1,8);

A=zeros(1,10);

m=zeros(1,11);

B=zeros(1,3);

if a>0

M(1)=1;

else a=-a;

end

m= dec2bin(a);

A = double(m)-'0'; for i=1:10

if A(i)==1

b=8-i;

break;

end

end

x= dec2bin(b,3);

B = double(x)-'0'; M(2)=B(1);

M(3)=B(2);

M(4)=B(3);

M(5)=A(2);

M(6)=A(3);

M(7)=A(4);

M(8)=A(5);

t=1:8;

stairs(t,M)

disp(M)

相关文档
最新文档