最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

pcm编码调制 matlab仿真

来源:动视网 责编:小OO 时间:2025-09-29 17:28:28
文档

pcm编码调制 matlab仿真

均匀pcm与非均匀pcm一。产生长度为500的零均值,单位方差的高斯随机变量序列,用均匀pcm的方法用16电平进行量化:1)求所得的SQNR,该序列的前5个值,相应的量化值和相应的码字。2)画出量化误差(定义为输入值和量化值之间的差),同时画出量化值作为输入值的函数的图。3)用128量化电平数重做2)题,比较结果。二。产生一个长度为500,按N(O,1)分布的随机变量序列,分别用16,128量化电平数和u=255的u律非线性进行量化,画出每种情况下量化器的误差和输入-输出关系,并求SQNR.三
推荐度:
导读均匀pcm与非均匀pcm一。产生长度为500的零均值,单位方差的高斯随机变量序列,用均匀pcm的方法用16电平进行量化:1)求所得的SQNR,该序列的前5个值,相应的量化值和相应的码字。2)画出量化误差(定义为输入值和量化值之间的差),同时画出量化值作为输入值的函数的图。3)用128量化电平数重做2)题,比较结果。二。产生一个长度为500,按N(O,1)分布的随机变量序列,分别用16,128量化电平数和u=255的u律非线性进行量化,画出每种情况下量化器的误差和输入-输出关系,并求SQNR.三
均匀pcm与非均匀pcm

一。产生长度为500的零均值,单位方差的高斯随机变量序列,用均匀pcm的方法用16电平进行量化:1)求所得的SQNR,该序列的前5个值,相应的量化值和相应的码字。2)画出量化误差(定义为输入值和量化值之间的差),同时 画出量化值作为输入值的函数的图。3)用128量化电平数重做2)题, 比较结果。

二。产生一个长度为500,按N(O,1)分布的随机变量序列,分别用16,128量化电平数和u=255的u律非线性进行量化,画出每种情况下量化器的误差和输入-输出关系,并求SQNR.

三。长度为500的非平稳序列a由两部分组成:前20个样本是按照均值为零和方差为400的高斯随机变量产生的,其余480个样本是根据均值和方差为1的高斯随机变量产生的,对这个序列分别用均匀pcm和非均匀pcm方法进行128电平量化,试比较两种情况下所得到的SQNR。

第一题的画出量化值作为输入值的函数不知道怎么写程序,出来的图都不太对,其他的的求SQNR,该序列前5个值,相应的量化值和相应的码字,以及量化误差都应该没错,程序为

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

%     U_PCM 一个序列均匀的PCM编码.

%    n=量化级数的数目(偶数).

%    sqnr=输入信号量化噪声比(偶数)。

%    a_quan=编码前的量化输出。

%    code=编码后的输出.

amax=max(abs(a));

a_quan=a/amax;

 b_quan=a_quan;

 d=2/n;

 q=d.*[0:n-1];

 q=q- ((n-1)/2) *d;

 for i=1:n

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

q(i).*ones(1,length(find((q(i) -d/2<=a_quan) & (a_quan<=q(i)+d/2))));

    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));

然后在写程序

echo on

a=randn(1,500);

n=16;

[sqnr,a_quan,code]=u_pcm(a,16);

pause

sqnr%求出的是量化噪声比SQNR

pause

a(1:5)%前5个输入值

pause

a_quan(1:5)%前5个量化值

pause

code(1:5,:)%前5个码字

plot(a-a_quan)%量化误差

然后——画出量化值作为输入值的函数的图不知道怎么画了。。

128量化也是只会画量化误差。。量化值作为输入值的函数的图不知道怎么画了。。

第二题先写mulaw.m  invmulaw.m  mula_pcm.m

然后打程序

signum.m

function y=signum(x) 

%SIGNUM finds the signum of a vector. 

% Y=SIGNUM(X) 

% X=input vector 

y=x; 

y(find(x>0))=ones(size(find(x>0)));

y(find(x<0))=-ones(size(find(x<0)));

y(find(x==0))=zeros(size(find(x==0))); 

mulaw.m

function[y,a]=mulaw(x,mu)

a=max(abs(x));

y=(log(1+mu*abs(x/a)) ./log(1+mu)).*signum(x);

mula_pcm

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

[y,maximum]=mulaw(a,mu);%经过压缩曲线处理 

[sqnr,y_q,code]=u_pcm(y,n);%把处理后的结果均匀量化

a_quan=invmulaw(y_q,mu);%恢复量化后的归一化序列

a_quan=maximum*a_quan;%恢复量化后的序列

sqnr=20*log10(norm(a)/norm(a-a_quan));%求量化信噪比

然后

echo on

a=randn(500);

n=16;

[dist,a_quan,code]=mula_pcm(a,16,255)

pause

sqnr

出不来结果。。不知道哪里错了,还是少了点什么。。第三题不太会。。

文档

pcm编码调制 matlab仿真

均匀pcm与非均匀pcm一。产生长度为500的零均值,单位方差的高斯随机变量序列,用均匀pcm的方法用16电平进行量化:1)求所得的SQNR,该序列的前5个值,相应的量化值和相应的码字。2)画出量化误差(定义为输入值和量化值之间的差),同时画出量化值作为输入值的函数的图。3)用128量化电平数重做2)题,比较结果。二。产生一个长度为500,按N(O,1)分布的随机变量序列,分别用16,128量化电平数和u=255的u律非线性进行量化,画出每种情况下量化器的误差和输入-输出关系,并求SQNR.三
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top