基于MATLAB的PCM的编码译码仿真

简介: 基于MATLAB的PCM的编码译码仿真

基于MATLAB的PCM的编码译码仿真

一、实验目的

1.熟悉PCM原理

2.掌握编写PCM程序的要点

3.掌握使用MATLAB调制仿真的要点

二、实验内容

(1)根据PCM (脉冲编码调制)原理,设计源程序代码。

(2)通过MATLAB软件仿真给定模拟信号编码后的波形。

(3)对比原始信号波形和译码后的波形。

三、实验原理

1.脉冲编码调制

脉冲编码调制在通信系统中是一种对模拟信 号数字化的取样技术,将模拟信号变换为数字信号的编码方式。PCM的实现主要包括三个步骤完成:抽样、量化、编码。分别为时间上离散、幅度上离散及量化信号的二进制表示。根据CCITT的建议,为改善小信号量化性能,采用压扩非均匀量化,有两种建议方式,分别为A律和μ律方式,本设计采用了A律方式。由于A律压缩实现复杂,常使用13折线法编码,采用非均匀量化PCM编码

2.抽样

在一系列离散点上,对信号捕取样值称为抽样。

四、实验代码

T=0.002;
t=-0.1:T:0.1;
xt=cos(2*pi*30*t)+sin(2*pi*65*t);
fs=500;
sdt=1/fs;
t1=-0.1:sdt:0.1;
st=cos(2*pi*30*t)+sin(2*pi*65*t);
figure(1);
subplot(3,1,1);
plot(t,xt);title('原始信号');
grid on
subplot(3,1,2);
stem(t1,st,'.');
title('量化信号');
title('抽样信号');
grid on
n=length(st);
M=max(st);
C=(st/M)*2048;
code=zeros(1,8);
for i=1:n
    if C(i)>=0
        code(i,1)=1;
    else
        code(i,1)=0;
end
 if abs(C(i))>=0&&abs(C(i))<16
     code(i,2)=0;code(i,3)=0;code(i,4)=0;step=1;start=0;
 else if 16<=abs(C(i))&&abs(C(i))<32
      code(i,2)=0;code(i,3)=0;code(i,4)=1;step=1;start=16;
 else if 32<=abs(C(i))&&abs(C(i))<64
      code(i,2)=0;code(i,3)=1;code(i,4)=0;step=2;start=32;
 else if 64<=abs(C(i))&&abs(C(i))<128
      code(i,2)=0;code(i,3)=1;code(i,4)=1;step=4;start=64;
 else if 128<=abs(C(i))&&abs(C(i))<256
      code(i,2)=1;code(i,3)=0;code(i,4)=0;step=8;start=128;
 else if 256<=abs(C(i))&&abs(C(i))<512
      code(i,2)=1;code(i,3)=0;code(i,4)=1;step=16;start=256;
 else if 512<=abs(C(i))&&abs(C(i))<1024
      code(i,2)=1;code(i,3)=1;code(i,4)=0;step=32;start=512;
 else if 1024<=abs(C(i))&&abs(C(i))<2048
      code(i,2)=1;code(i,3)=1;code(i,4)=1;step=64;start=1024;
end
end
end
end 
end
end 
end
end
  B=floor((abs(C(i))-start)/step);
  t=dec2bin(B,4)-48;
  code(i,5:8)=t(1:4);
end
code=reshape(code',1,8*n);
subplot(313);
stem(code,'.');
axis([1 64 0 1]);
title('编码信号');
grid on 
y=awgn(code,5);
figure(2);
stem(y,'.');axis([1 64 0 3]);
title('叠加加性高斯信号的信号');
n=length(code);
code=reshape(code',8,n/8)';
slot(1)=0;slot(2)=32;
slot(3)=64;slot(4)=128;
slot(5)=256;slot(6)=512;
slot(7)=1024;slot(8)=2048;
step(1)=2;step(2)=2;step(3)=4;step(4)=8;
step(5)=16;step(6)=32;step(7)=64;step(8)=128;
for i=1:n/8
   ss=2*code(i,1)-1;
   tmp=code(i,2)*4+code(i,3)*2+code(i,4)+1;
   st=slot(tmp);
   dt=(code(i,5)*8+code(i,6)*4+code(i,7)*2+code(i,8))*step(tmp)+0.5*step(tmp);
   v=1;
   r(i)=ss*(st+dt)/4096*v;
end
T=0.002;
t=-0.1:T:0.1;
figure(3);
subplot(111);
plot(t,r);
title('译码后的原始信号');
grid on

五、实验结果

相关文章
|
5天前
|
算法 数据安全/隐私保护
基于AutoEncode自编码器的端到端无线通信系统matlab误码率仿真
本项目基于MATLAB 2022a实现自编码器在无线通信系统中的应用,仿真结果无水印。自编码器由编码器和解码器组成,通过最小化重构误差(如MSE)进行训练,采用Adam等优化算法。核心程序包括训练、编码、解码及误码率计算,并通过端到端训练提升系统性能,适应复杂无线环境。
102 65
|
4天前
|
算法
基于排队理论的客户结账等待时间MATLAB模拟仿真
本程序基于排队理论,使用MATLAB2022A模拟客户结账等待时间,分析平均队长、等待时长、不能结账概率、损失顾客数等关键指标。核心算法采用泊松分布和指数分布模型,研究顾客到达和服务过程对系统性能的影响,适用于银行、超市等多个领域。通过仿真,优化服务效率,减少顾客等待时间。
|
2天前
|
算法
基于小波变换和峰值搜索的光谱检测matlab仿真,带GUI界面
本程序基于小波变换和峰值搜索技术,实现光谱检测的MATLAB仿真,带有GUI界面。它能够对CO2、SO2、CO和CH4四种成分的比例进行分析和提取。程序在MATLAB 2022A版本下运行,通过小波分解、特征提取和峰值检测等步骤,有效识别光谱中的关键特征点。核心代码展示了光谱数据的处理流程,包括绘制原始光谱、导数光谱及标注峰值位置,并保存结果。该方法结合了小波变换的时频分析能力和峰值检测的敏锐性,适用于复杂信号的非平稳特性分析。
|
3天前
|
算法
基于SOA海鸥优化算法的三维曲面最高点搜索matlab仿真
本程序基于海鸥优化算法(SOA)进行三维曲面最高点搜索的MATLAB仿真,输出收敛曲线和搜索结果。使用MATLAB2022A版本运行,核心代码实现种群初始化、适应度计算、交叉变异等操作。SOA模拟海鸥觅食行为,通过搜索飞行、跟随飞行和掠食飞行三种策略高效探索解空间,找到全局最优解。
|
1天前
|
传感器 算法
基于GA遗传算法的多机无源定位系统GDOP优化matlab仿真
本项目基于遗传算法(GA)优化多机无源定位系统的GDOP,使用MATLAB2022A进行仿真。通过遗传算法的选择、交叉和变异操作,迭代优化传感器配置,最小化GDOP值,提高定位精度。仿真输出包括GDOP优化结果、遗传算法收敛曲线及三维空间坐标点分布图。核心程序实现了染色体编码、适应度评估、遗传操作等关键步骤,最终展示优化后的传感器布局及其性能。
|
3天前
|
算法 数据可视化 数据安全/隐私保护
一级倒立摆平衡控制系统MATLAB仿真,可显示倒立摆平衡动画,对比极点配置,线性二次型,PID,PI及PD五种算法
本课题基于MATLAB对一级倒立摆控制系统进行升级仿真,增加了PI、PD控制器,并对比了极点配置、线性二次型、PID、PI及PD五种算法的控制效果。通过GUI界面显示倒立摆动画和控制输出曲线,展示了不同控制器在偏转角和小车位移变化上的性能差异。理论部分介绍了倒立摆系统的力学模型,包括小车和杆的动力学方程。核心程序实现了不同控制算法的选择与仿真结果的可视化。
31 15
|
1天前
|
监控 算法 数据安全/隐私保护
基于扩频解扩+turbo译码的QPSK图传通信系统matlab误码率仿真,扩频参数可设置
本项目基于MATLAB 2022a实现图像传输通信系统的仿真,涵盖QPSK调制解调、扩频技术和Turbo译码。系统适用于无人机图像传输等高要求场景,确保图像质量和传输稳定性。通过仿真,验证了系统在不同信噪比下的性能,展示了图像的接收与恢复效果。核心代码实现了二进制数据到RGB图像的转换与显示,并保存不同条件下的结果。
16 6
|
2天前
|
机器学习/深度学习 算法 安全
基于深度学习的路面裂缝检测算法matlab仿真
本项目基于YOLOv2算法实现高效的路面裂缝检测,使用Matlab 2022a开发。完整程序运行效果无水印,核心代码配有详细中文注释及操作视频。通过深度学习技术,将目标检测转化为回归问题,直接预测裂缝位置和类别,大幅提升检测效率与准确性。适用于实时检测任务,确保道路安全维护。 简介涵盖了算法理论、数据集准备、网络训练及检测过程,采用Darknet-19卷积神经网络结构,结合随机梯度下降算法进行训练。
|
5天前
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a,展示了时间序列预测算法的运行效果(无水印)。核心程序包含详细中文注释和操作视频。算法采用CNN-GRU-SAM网络,结合灰狼优化(GWO),通过卷积层提取局部特征、GRU处理长期依赖、自注意力机制捕捉全局特征,最终实现复杂非线性时间序列的高效预测。
|
6月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
272 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码

热门文章

最新文章