首页 > 其他分享 >m基于A律13折线法与μ律15折线的信号压缩MATLAB仿真

m基于A律13折线法与μ律15折线的信号压缩MATLAB仿真

时间:2022-12-23 12:44:06浏览次数:43  
标签:13 15 压缩 折线 信号 量化

1.算法概述

        在通信中,由于信号量噪比的不恒定而影响通信质量。为了对不同的信号强度保持信号量噪比恒定,在理论上要求压缩特性为对数特性。为了使信号量噪比保持恒定,引入A压缩律与μ压缩律以及相应的近似算法-13折线法和15折线法。  对A律13折线法与μ律15折线法进行理论研究,然后利用MATLAB实现仿真,对A律13折线法与μ律15折线法进行性能分析。最后得到一般来说,U律的15折线比A律的13折线,各个段落的斜率都相差2倍,所以小信号的信号量噪比也比A律大一倍,但是对于大信号来说,u律比a律差。   

 

A律压扩

 

其特性可表示为:

 

 

 

 

其中x表示为归一化的压缩器输入电压;y为归一化的压缩器输出电压,A为压扩参数,表示压缩程度。

 

很明显,小信号时为线性特性,大信号时近似为对数特性。这种压扩特性常把压缩、量化和编码合为一体。A律可用13段折线逼近(相当于A=87.6),便于用数字电路实现。

 

13段折线的压缩特性如下图。过程为:

 

第一步:把x(x>0 部分)划分为不均匀的8段。第一分点取在V/2处,然后每段都是剩下部分的1/2。依次取第八段为V~V/2,第七段为V/2~V/4;第一段为V/128~0。

 

第二步:把每段均匀划分为16等份,每一份表示一个量化级,显然8段共16x8=128= 个量化级,需要二进制7位编码表示。可以看出每个量化级是不均匀的。在小信号的量化台阶很小,使小信号时量化噪声减小。如果按均匀量化计算,以最小台阶 为单位,最大信号需用L=128X16=2048=个量化级表示,既需要11位编码。这样非均匀编码使小信号量化台阶缩小了16倍,相当于小信号信噪比改善了20dB。

 

第三步:把y轴均匀划分为8段,每段均匀分为16分。这样y也分为128个量化级,与x轴的128个量化级对应。因此,压扩特性各段的斜率

 

是不同的。第一段斜率

 

其他段为:

 

 

 

以上分段为x取正值时的情况。而x取负值时,压扩特性与x取正值成奇对称。在正8段和负8段中,正1,2段和负1,2段斜率相同,合为一段。所以原来的16段折线变为13段折线。

 

U律压扩

 

    μ律压扩的数学解析式:

 

 

 

 

其中:x为输入信号的归一化值;y为压扩后的信号。对话音信号编码,常采用μ=255,这样适量化信噪比改善约24dB。由于上式的是一个近似的对数关系,因此也称为近似对数压缩律,其15折线:近似m律:

 

 

 

 

 

 

  μ律(m-Law)压扩主要用在北美和日本等地区的数字电话通信中。m为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比,通常取100≤m≤500。由于m律压扩的输入和输出关系是对数关系,所以这种编码又称为对数PCM。

 

2.仿真效果预览

matlab2022a仿真

 

 

 

3.MATLAB部分代码预览

 

function ypcm=unmulaw(name)
%本函数针对国际通用的PCM量化mu律15特性近似编码进行解码
 
% %从文件读入压缩编码
% fid=fopen([name,'.u'],'rb');
% x=fread(fid,'int8');
x=name;
s=sign(x);
x=abs(x);
%归一化
x=x/128;
ypcm=zeros(length(x),1);
 
%基于15折线的分段解码映射
for i=1:length(x)
    if x(i)<1/8           %序列值位于第1折线
        ypcm(i)=8/255*x(i);
    elseif x(i)<2/8           %序列值位于第2折线
        ypcm(i)=16/255*(x(i)-1/16);
    elseif x(i)<3/8      %序列值位于第3折线
        ypcm(i)=32/255*(x(i)-5/32);
    elseif x(i)<4/8      %序列值位于第4折线
        ypcm(i)=64/255*(x(i)-17/64);
    elseif x(i)<5/8     %序列值位于第5折线
        ypcm(i)=128/255*(x(i)-49/128);
    elseif x(i)<6/8     %序列值位于第6折线
        ypcm(i)=256/255*(x(i)-129/256);
    elseif x(i)<7/8    %序列值位于第7折线
        ypcm(i)=512/255*(x(i)-321/512);
    else               %序列值位于第8折线
        ypcm(i)=1024/255*(x(i)-769/1024);
    end
end
%还原符号
ypcm=ypcm.*s;
A01-17M

 

  

 

标签:13,15,压缩,折线,信号,量化
From: https://www.cnblogs.com/51matlab/p/17000440.html

相关文章

  • 153-Illegal mix of collations for operation 'UNION'
    使用unionall查询,报错:Illegalmixofcollationsforoperation'UNION'相同字段的编码为utf8_general_ci与utf8_unicode_ci,就会报Illegalmixofcollationsfor......
  • docker 安装 postgres 15.1
    docker拉取镜像:dockerpullpostgres:15.1创建文件夹,以及启动images创建文件夹:mkdir-p/opt/docker/postgresdockerrun--namepostgres\-ePOSTGRES_PASS......
  • 洛谷 P2679 [NOIP2015 提高组]子串
    \(70pts\):记\(sub_A(i)\)表示\(A\)的前\(i\)个字符构成的子串,相应地,\(sub_B(i)\)为\(B\)的前\(i\)个字符构成的子串。设\(f(i,j,k)\)表示在\(sub_A(i......
  • P1507 NASA的食物计划
    P1507NASA的食物计划:航天飞机的体积有限,当然如果载过重的物品,燃料会浪费很多钱,每件食品都有各自的体积、质量以及所含卡路里。在告诉你体积和质量的最大值的情况下,请输......
  • 200015 计算柱的箍筋根数已知长高和加密区非加密区
    点击查看代码<?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';$tit='......
  • Educational Codeforces Round 139 D. Lucky Chains
    LuckyChains题面翻译给定两个数·a,b,(a,b给到了1e7)执行如下语句:while(gcd(a,b)==1)a++,b++,cnt++;求出cnt的值。样例#1样例输入#145151337891......
  • 全志A133 Android10 Display框架实践
    一、Sunxi平台图形开发术语全志A133采用的DISP2的框架,即DE2.0版本。对应kernel的配置:CONFIG_DISP2_SUNXI=y   1、硬件术语1)layer:一个图层处理单元,可以处理一张......
  • CMU15-445:Homework #1 - SQL
    Homework#1-SQL本文是对CMU15-445课程第1个作业文档的一个粗略翻译和完成。仅供个人(M1kanN)学习使用。1.Overview第一个作业要我们构建一组SQL查询,用于分析给定......
  • Aphche 换行解析漏洞(CVE-2017-15715)
    一:原理apache-CVE-2017-15715的出现是由于apache在修复第一个后缀名解析漏洞时,使用正则表达式匹配后缀,在解析php时xxx.php\x0A将被php后缀进行解析,导致绕过一些服务器......
  • 20221215 2. k8s 介绍
    kubernetes与dockerswarm对比DockerSwarmKubernetes开发者Docker公司谷歌发布年份20132014ControllerManagerMasterStorageVolumesPers......