登录论坛

查看完整版本 : [MATLAB基础] PCM编码及解码


xiyelover
2009-07-02, 19:57
基本要求:
 产生长度为1000的标准正态分布的随机信号,画出时域波形及频谱;
 采用u=255的非均匀PCM编码,每符号为8bit,画输入-输出关系图;
 计算信号量化噪声比(SQNR);
 信道误码率为10-3;
 解码,并画出u律反变换后的信号时域波形及频谱。

拜托各位师兄师姐帮帮忙哈,。课程设计哈,。
QQ 120051690 请教。感激不尽、

silas_xue
2009-07-02, 22:41
lz 关于PCM的原理 你可以有关“信息论与编码”的教材及樊昌信的《通信原理》 另外你可以在matlab中使用PCM或者quantization为关键字进行查找 有进一步的说明供你参考 希望可以对你有所帮助

Thx for reading.
PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。
通过点击本人帖子旁边的ID 可以使用“发送悄悄话给silas_xue”与我进行联系
个人观点 仅供参考 多多交流 相互学习

xiyelover
2009-07-03, 10:08
在哪里搜啊。我没搜到啊。我有个关于PCM的程序。但是有错误啊。我不知道错在哪里。你帮我看看。function [out]=pcm_encode(x)
n=length(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;
elseif 32<=abs(x(i))&abs(x(i))<64;
out(i,2)=0;out(i,3)=0;out(i,4)=1;step=2;st=32;
elseif 64<=abs(x(i))&abs(x(i))<128;
out(i,2)=0;out(i,3)=1;out(i,4)=0;step=4;st=64;
elseif 128<=abs(x(i))&abs(x(i))<256;
out(i,2)=0;out(i,3)=1;out(i,4)=1;step=8;st=128;
elseif 256<=abs(x(i))&abs(x(i))<512;
out(i,2)=1;out(i,3)=0;out(i,4)=0;step=16;st=256;
elseif 512<=abs(x(i))&abs(x(i))<1024;
out(i,2)=1;out(i,3)=0;out(i,4)=1;step=32;st=512;
elseif 1024<=abs(x(i))&abs(x(i))<2048;
out(i,2)=1;out(i,3)=1;out(i,4)=0;step=64;st=1024;
elseif 2048<=abs(x(i))&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;
out(i,5:8)=t(1:4);
end
end
out=reshape(out',1,8*n);

silas_xue
2009-07-04, 21:48
lz 实在不好意思 我的失误
"在matlab的help中使用PCM或者quantization为关键字进行查找 有进一步的说明供你参考"

xiyelover
2009-07-05, 00:44
quantization只能搜到这个。但是就两个图。这个是个什么图啊。。。PCM搜不到哈。一个都没有