资源描述:
《pcm抽样量化编码程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、clearall;closeall;%pcmcoding%设置输入信号dt=0.1;%取时间间隔为0.1t=0:dt:2;%时域间隔dt为间隔从0到2fc=1;%xt里最大频率xt=sin(2*pi*fc*t);%xt方程,T=1s%采样:时间连续信号变为时间离散模拟信号fs=2.5;%抽样fs>=2fc,每秒钟内的抽样点数目将等于或大于2fc个sdt=1/fs;%频域采样间隔t1=0:sdt:2;%sdt为间隔从0到2st=sin(2*pi*fc*t1);%采样信号与输入信号对应figure(1);subplot(311);plot(t,xt);title('输入信号')
2、;%绘出连续图形xlabel('t');%x轴显示时间t,y轴显示输入信号x(t)ylabel('x(t)');gridon;axis([-inf,inf,-2,2]);%inf:infinite,无穷大.-inf《x《inf,-2《y《2subplot(312);stem(t1,st,'.');%绘出杆状离散图xlabel('t');ylabel('s(t)');%y轴显示抽样信号s(t)axis([-inf,inf,-2,2]);title('抽样信号');gridon%量化n=length(st);%取st的长度为n,本题函数n为101M=max(st);%M=1c=
3、(st/M)*2048;%编码%c1(极性码),c2c3c4(段落码),c5c6c7c8(段内电平码)code=zeros(n,8);%产生n*8的零矩阵%极性码c1forn=1:n%if循环语句ifc(n)>0code(n,1)=1;%c为正值,c1=1elsecode(n,1)=0;%c为负值,c1=0end%段落码c2c3c4段落1-8,二进制表示即为0-7(000-111)ifabs(c(n))>=0&&abs(c(n))<16code(n,2)=0;code(n,3)=0;code(n,4)=0;step=1;start=0;elseif16<=abs(c(n))
4、&&abs(c(n))<32code(n,2)=0;code(n,3)=0;code(n,4)=1;step=1;start=16;elseif32<=abs(c(n))&&abs(c(n))<64code(n,2)=0;code(n,3)=1;code(n,4)=0;step=2;start=32;elseif64<=abs(c(n))&&abs(c(n))<128code(n,2)=0;code(n,3)=1;code(n,4)=1;step=4;start=64;elseif128<=abs(c(n))&&abs(c(n))<256code(n,2)=1;code(n
5、,3)=0;code(n,4)=0;step=8;start=128;elseif256<=abs(c(n))&&abs(c(n))<512code(n,2)=1;code(n,3)=0;code(n,4)=1;step=16;start=256;elseif512<=abs(c(n))&&abs(c(n))<1024code(n,2)=1;code(n,3)=1;code(n,4)=0;step=32;start=512;elseif1024<=abs(c(n))&&abs(c(n))<=2048code(n,2)=1;code(n,3)=1;code(n,4)=1;st
6、ep=64;start=1024;end%段内码c5c6c7c8B=floor((abs(c(n))-start)/step);%对十进制段内码B进行floor取整,四舍五入t=dec2bin(B,4)-48;%dec2bin定义,将B变为4位2进制码,-48改变格式code(n,5:8)=t(1:4);%输出段内码endcode=reshape(code',1,8*n);%reshape代表从新塑形codesubplot(313);%对code作杆状图stem(code,'.');axis([1n*802]);title('编码信号');gridon%添加网格线参考文献