该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

均匀量化编码:

function[sqnr,a_quan,code]=upcm(a,n)

amax=max(abs(a));??a、n怎样定义

a_quan=a/amax;

%抽样值归一化

b_quan=a_quan;

d=2/n;

q=d.*[0:n-1]-(n-1)/2*d;

%对归一化的输入信号序列进行量化

for i=1:n

index=find((q(i)-d/2<=a_quan)&(a_quan<=q(i)+d/2));

a_quan(index)=q(i).*ones(1,length(index));

b_quan(find(a_quan==q(i)))=(i-1).*ones(1,length(find(a_quan==q(i))))

end

a_quan=a_quan*amax;

nu=ceil(log2(n));

code=zeros(length(a),nu);

for i=1:length(a)

for j=nu:-1:0

if(fix(b_quan(i)/(2^j))==1)

code(i,nu-j)=1;

b_quan(i)=b_quan(i)-2^j;

end

end

end

sqnr=20*log10(norm(a)./norm(a-a_quan));

PCM编码:

function[out]=pcm_encode(x)

for i=1:n

if x(i)>0

out(i,1)=1;

else

out(i,1)=0

end

if abs(x(i))>0 & abs(x(i))<32

out(i,2)=0;out(i,3)=0;out(i,4)=0;step=2;st=0;??step跟st分别代表什么

elseif

abs(x(i))>=32 & abs(x(i))<64

out(i,2)=0;out(i,3)=0;out(i,4)=1;step=2;st=32;

elseif abs(x(i))>=64

& abs(x(i))<128

out(i,2)=0;out(i,3)=1;out(i,4)=0;step=4;st=64;

elseif

abs(x(i))>=128 & abs(x(i))<256

out(i,2)=0;out(i,3)=1;out(i,4)=1;step=8;st=128;

elseif

abs(x(i))>=256 & abs(x(i))<512

out(i,2)=1;out(i,3)=0;out(i,4)=0;step=16;st=256;

elseif

abs(x(i))>=512 & abs(x(i))<1024

out(i,2)=1;out(i,3)=0;out(i,4)=1;step=32;st=512;

elseif

abs(x(i))>=1024 & abs(x(i))<2048

out(i,2)=1;out(i,3)=1;out(i,4)=0;step=64;st=1024;

elseif

abs(x(i))>=2048 & abs(x(i))<4096

out(i,2)=1;out(i,3)=1;out(i,4)=1;step=128;st=2048;

else

out(i,2)=1,out(i,3)=1;out(i,4)=1;step=128;st=2048;

end

if(abs(x(i))>=4096)

out(i,2:8)=[1 1 1 1 1 1 1];????

else

tmp=floor((abs(x(i))-st)/step);

t=dec2bin(tmp,4)-48; %函数dec2bin输出的是ASCII字符串,48对应0

out(i,5:8)=t(1:4);

end

end

out=reshape(out',1,8*n);

PCM译码:

function[out]=pcm_decode(in,v)

%decode the input pcm code

%in, input the pcm code 8bits sample

%v, quantized level

n=length(in);

in=reshape (in',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*in(1,i)-1;

tmp=in(2,i)*4+in(3,i)*2+in(4,i)+1;

st=slot(tmp);

dt=(in(5,i)*8+in(6,i)*4+in(7,i)*2+in(8,i))*step(tmp)+0.5*step(tmp);

out(i)=ss*(st+dt)/4096*v;

end

主程序中:

figure(1)

for k=1:length(vm)

for m=1:2

x=vm(k)*sin(2*pi*4*t+2*pi*rand(1));

[sqnrM,zxx,zz]=upcm(x,M); %PCM均匀量化编码 ?????直接不了解哇

srm(m)=sqnrM;

v=vm(k);

xx=x/v; %normalize

sxx=floor(xx*4096);

y=pcm_encode(sxx); %PCM编码

yy=pcm_decode(y,v); %PCM解码

nq(m)=sum((x-yy).*(x-yy))/length(x); %噪声平均功率

sq(m)=mean(yy.^2); %信号平均功率

snr(m)=(sq(m)/nq(m)); %信号量化信噪比

usnrq(k)=mean(srm);

snrq(k)=10*log10(mean(snr)); %量化信噪比

end

end

matlab A律PCM编码原理框图,求大神,讲解A律PCM编码吖相关推荐

  1. 桌面上 计算机 图标打不开,突然间电脑桌面上的所有图标都打不开了,怎么回事,求大神讲解...

    突然间电脑桌面上的所有图标都打不开了,怎么回事,求大神讲解以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 突然间电脑桌面 ...

  2. pcm a律编码 c语言,求大神,讲解A律PCM编码吖

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 均匀量化编码: function[sqnr,a_quan,code]=upcm(a,n) amax=max(abs(a));??a.n怎样定义 a_qua ...

  3. matlab遗传算法 约束条件,关于MATLAB 遗传算法 加入约束条件的问题,求大神帮助!...

    小弟写的源代码如下: clc; close; clear all; tic warning off NIND=35; MAXGEN=500; NVAR=14; PRECI=15; GGAP=0.7; ...

  4. matlab弗洛伊德算法,MATLAB弗洛伊德算法结果有疑惑,求大神解答

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 结果是92*92矩阵,出现不止一个a,还有第一个结果没表示,就是矩阵 程序如下: clear;clc; n=92;a=zeros(n); a(1,75)= ...

  5. matlab 连续两个if,求大神解答一个matlab中的for循环嵌套if选择语句

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:求大神解答一个matlab中的for循环嵌套if选择语句回答:1.最后缺少一个end;2.这句输出没什么意义:disp A(i)=A ...

  6. ubuntu14.04扩展屏幕后,打开matlab就死机。求大神帮忙解决!!!万分感谢

    ubuntu14.04扩展屏幕后,打开matlab就死机.求大神帮忙解决!!!万分感谢

  7. 赫夫曼编码c语言 排序部分,c语言构造哈夫曼树输出哈夫曼编码出错 ,跪求大神帮我找错...

    c语言构造哈夫曼树输出哈夫曼编码出错 ,跪求大神帮我找错0 youxun0952016.09.07浏览120次分享举报 #include #include #include typedef struc ...

  8. 求大神帮忙,想要一元20次方程的解matlab代码,在线等,(解一元20次方程的解matlab代码)

    求大神帮忙,想要一元20次方程的解matlab代码,在线等,(解一元20次方程的解matlab代码) 已知y是一个1*101的数组如下,函数如下,想求得x 135 130 134 128 129 13 ...

  9. matlab求解复杂隐函数,MATLAB复杂隐函数求解!求大神指导!

    问题描述: MATLAB复杂隐函数求解!求大神指导! syms D1 D2 G1 G2 al E1 E2 Km w6 G1=10^(-5);G2=10^(-5); E1=2*(10^11);E2=2* ...

最新文章

  1. 中天亮剑——打击网络风暴侵袭
  2. 李开复:谷歌产品经理眼中的产品经理
  3. paip sms to blog.txt
  4. 设计师交流社区,让你的原创设计作品展示给世界
  5. 网络管理中的安全保障
  6. golang基础-WaitGroup、kafka消费者
  7. 计算当前时间往加N天后的时间,Date,SimpleDateFormat,Calendar
  8. LeetCode 106. 从中序与后序遍历序列构造二叉树(递归)
  9. 数据库五种约束以及添加方法
  10. windows7系统损坏修复_火绒安全警报:微软发布高危漏洞补丁 火绒“漏洞修复”模块已完成升级...
  11. java 正整数类型_跟我学java编程—认识java的整数类型
  12. iPhone5s 换电池、修右上角翘起的悲催过程
  13. 将照片修改成一寸大小
  14. Linux后台日志定时清理脚本
  15. Gradle - Groovy Language
  16. DSG-RealSync Oracle数据库同步复制及容灾技术简述
  17. 设置inline-block布局造成的幺蛾子事
  18. 【基于matlab的mqam调制与解调系统】
  19. Python机器视觉--OpenCV入门--鼠标事件与TrackBar控件(含小项目:OpenCV调色板)
  20. 水表读数图解_水表怎么看吨数 水表读数图解 水费异常超太多怎么办

热门文章

  1. 国家信息化计算机教育证书是国家职业资格证书吗
  2. 计算机房等电位连接,机房防静电地板等电位接地方案
  3. 计算机专业Java毕业设计题目参考【附项目+论文+源码】
  4. 线性代数笔记-3Blue1Brown:(一)
  5. 在SCDM中使用了共享在fluent mesh中仍然会报错错误的共享
  6. [语言编程] exe病毒代码实例
  7. 学校官网和后台网页及心得
  8. ora01033是什么错误linux,ora_01033错误详解
  9. linux复制jar文件,linux如何将界面上的一个JAR文件拷贝到ROOT下啊
  10. css 设置页面与屏幕同样高度