基于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

五、实验结果

相关文章
|
6天前
|
传感器 算法 vr&ar
六自由度Stewart控制系统matlab仿真,带GUI界面
六自由度Stewart平台控制系统是一种高精度、高稳定性的运动模拟装置,广泛应用于飞行模拟、汽车驾驶模拟、虚拟现实等领域。该系统通过六个独立的线性致动器连接固定基座与移动平台,实现对负载在三维空间内的六个自由度(三维平移X、Y、Z和三维旋转-roll、pitch、yaw)的精确控制。系统使用MATLAB2022a进行仿真和控制算法开发,核心程序包括滑块回调函数和创建函数,用于实时调整平台的位置和姿态。
|
1天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
2天前
|
存储 算法 决策智能
基于免疫算法的TSP问题求解matlab仿真
旅行商问题(TSP)是一个经典的组合优化问题,目标是寻找经过每个城市恰好一次并返回起点的最短回路。本文介绍了一种基于免疫算法(IA)的解决方案,该算法模拟生物免疫系统的运作机制,通过克隆选择、变异和免疫记忆等步骤,有效解决了TSP问题。程序使用MATLAB 2022a版本运行,展示了良好的优化效果。
|
1天前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
|
1天前
|
机器学习/深度学习 算法 5G
基于MIMO系统的SDR-AltMin混合预编码算法matlab性能仿真
基于MIMO系统的SDR-AltMin混合预编码算法通过结合半定松弛和交替最小化技术,优化大规模MIMO系统的预编码矩阵,提高信号质量。Matlab 2022a仿真结果显示,该算法能有效提升系统性能并降低计算复杂度。核心程序包括预编码和接收矩阵的设计,以及不同信噪比下的性能评估。
10 3
|
6天前
|
机器学习/深度学习 算法 调度
基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
基于ACO蚁群优化的VRPSD问题求解MATLAB仿真,输出ACO优化的收敛曲线、规划路径结果及每条路径的满载率。在MATLAB2022a版本中运行,展示了优化过程和最终路径规划结果。核心程序通过迭代搜索最优路径,更新信息素矩阵,确保找到满足客户需求且总行程成本最小的车辆调度方案。
|
12天前
|
人工智能 算法 数据安全/隐私保护
基于遗传优化的SVD水印嵌入提取算法matlab仿真
该算法基于遗传优化的SVD水印嵌入与提取技术,通过遗传算法优化水印嵌入参数,提高水印的鲁棒性和隐蔽性。在MATLAB2022a环境下测试,展示了优化前后的性能对比及不同干扰下的水印提取效果。核心程序实现了SVD分解、遗传算法流程及其参数优化,有效提升了水印技术的应用价值。
|
13天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
5天前
|
机器学习/深度学习 存储 算法
基于Actor-Critic(A2C)强化学习的四旋翼无人机飞行控制系统matlab仿真
基于Actor-Critic强化学习的四旋翼无人机飞行控制系统,通过构建策略网络和价值网络学习最优控制策略。MATLAB 2022a仿真结果显示,该方法在复杂环境中表现出色。核心代码包括加载训练好的模型、设置仿真参数、运行仿真并绘制结果图表。仿真操作步骤可参考配套视频。
16 0
|
6天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA-PSO-SVM算法的混沌背景下微弱信号检测matlab仿真
本项目基于MATLAB 2022a,展示了SVM、PSO、GA-PSO-SVM在混沌背景下微弱信号检测中的性能对比。核心程序包含详细中文注释和操作步骤视频。GA-PSO-SVM算法通过遗传算法和粒子群优化算法优化SVM参数,提高信号检测的准确性和鲁棒性,尤其适用于低信噪比环境。

热门文章

最新文章