《matlab--PCM编码1.pdf》由会员分享,可在线阅读,更多相关《matlab--PCM编码1.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、PCMPCM编码编码:clear all;clear all;close all;close all;%建立原信号建立原信号dt=;dt=;%取时间间隔为取时间间隔为t=0:dt:10;t=0:dt:10;%时域间隔时域间隔dtdt为间隔从为间隔从0 0到到1010画图画图fc=1fc=1%xt%xt里最大频率里最大频率xt=sin(2*pi*fc*t)+cos(2*pi*fc*t);xt=sin(2*pi*fc*t)+cos(2*pi*fc*t);%xt%xt方程方程%采样:时间连续信号采样:时间连续信号变为变为时间离散模拟信号时间离散模拟信号fs=10;fs=10;%抽样抽样fs=2fcf
2、s=2fc,每秒钟内的抽样点数目将等于或大于,每秒钟内的抽样点数目将等于或大于2fc2fc个个sdt=1sdt=1/fs;/fs;%频域采样间隔频域采样间隔t1=0:sdt:10;t1=0:sdt:10;%以以sdtsdt为间隔从为间隔从0 0到到1010画图画图st=sin(2*pi*fc*t1)+cos(2*pi*fc*t1);st=sin(2*pi*fc*t1)+cos(2*pi*fc*t1);%coswt=cos2pift,2pif=w%coswt=cos2pift,2pif=wfigure(1);figure(1);subplot(311);subplot(311);plot(t,x
3、t);title(plot(t,xt);title(原始信号原始信号););%条状图,连续图条状图,连续图grid ongrid on%画背景画背景subplot(312);subplot(312);stem(t1,st,.);stem(t1,st,.);%杆状图杆状图,离散图,离散图title(title(抽样信号抽样信号););grid ongrid on%画背景画背景%量化编码一步完成量化编码一步完成n=length(st);n=length(st);%取取st st的长度为的长度为n n,本题函数,本题函数n n为为101101M=max(st);M=max(st);A=(st/M)*
4、2048;A=(st/M)*2048;%a1(%a1(极性码极性码)a2a3a4)a2a3a4(段落码)(段落码)a5a6a7a8a5a6a7a8(段内电平码)(段内电平码)code=zeros(i,8);code=zeros(i,8);%产生产生i*8i*8的零矩阵的零矩阵%极性码极性码a1a1for i=1:nfor i=1:n%if%if循环语句循环语句if A(i)=0if A(i)=0code(i,1)=1;code(i,1)=1;%代表正值代表正值elseelsecode(i,1)=0;code(i,1)=0;%代表负值代表负值endend%段内码段内码a2a3a4a2a3a4if
5、 abs(A(i)=0&abs(A(i)=0&abs(A(i)16code(i,2)=0;code(i,3)=0;code(i,4)=0;step=1;start=0;code(i,2)=0;code(i,3)=0;code(i,4)=0;step=1;start=0;elseif 16=abs(A(i)&abs(A(i)32elseif 16=abs(A(i)&abs(A(i)32code(i,2)=0;code(i,3)=0;code(i,4)=1;step=1;start=16;code(i,2)=0;code(i,3)=0;code(i,4)=1;step=1;start=16;els
6、eif 32=abs(A(i)&abs(A(i)64elseif 32=abs(A(i)&abs(A(i)64code(i,2)=0;code(i,3)=1;code(i,4)=0;step=2;start=32;code(i,2)=0;code(i,3)=1;code(i,4)=0;step=2;start=32;elseif 64=abs(A(i)&abs(A(i)128elseif 64=abs(A(i)&abs(A(i)128code(i,2)=0;code(i,3)=1;code(i,4)=1;step=4;start=64;code(i,2)=0;code(i,3)=1;code(
7、i,4)=1;step=4;start=64;elseif 128=abs(A(i)&abs(A(i)256elseif 128=abs(A(i)&abs(A(i)256code(i,2)=1;code(i,3)=0;code(i,4)=0;step=8;start=128;code(i,2)=1;code(i,3)=0;code(i,4)=0;step=8;start=128;elseif 256=abs(A(i)&abs(A(i)512elseif 256=abs(A(i)&abs(A(i)512code(i,2)=1;code(i,3)=0;code(i,4)=1;step=16;sta
8、rt=256;code(i,2)=1;code(i,3)=0;code(i,4)=1;step=16;start=256;elseif 512=abs(A(i)&abs(A(i)1024elseif 512=abs(A(i)&abs(A(i)1024code(i,2)=1;code(i,3)=1;code(i,4)=0;step=32;start=512;code(i,2)=1;code(i,3)=1;code(i,4)=0;step=32;start=512;elseif 1024=abs(A(i)&abs(A(i)2048elseif 1024=abs(A(i)&abs(A(i)=0 A(
9、i)=0code(i,1)=1;code(i,1)=1;elseelsecode(i,1)=0;code(i,1)=0;endendif if abs(A(i)=0&abs(A(i)=0&abs(A(i)16code(i,2)=0;code(i,3)=0;code(i,4)=0;step=1;start=0;code(i,2)=0;code(i,3)=0;code(i,4)=0;step=1;start=0;elseifelseif 16=abs(A(i)&abs(A(i)32 16=abs(A(i)&abs(A(i)32code(i,2)=0;code(i,3)=0;code(i,4)=1;
10、step=1;start=16;code(i,2)=0;code(i,3)=0;code(i,4)=1;step=1;start=16;elseifelseif 32=abs(A(i)&abs(A(i)64 32=abs(A(i)&abs(A(i)64code(i,2)=0;code(i,3)=1;code(i,4)=0;step=2;start=32;code(i,2)=0;code(i,3)=1;code(i,4)=0;step=2;start=32;elseifelseif 64=abs(A(i)&abs(A(i)128 64=abs(A(i)&abs(A(i)128code(i,2)=
11、0;code(i,3)=1;code(i,4)=1;step=4;start=64;code(i,2)=0;code(i,3)=1;code(i,4)=1;step=4;start=64;elseifelseif 128=abs(A(i)&abs(A(i)256 128=abs(A(i)&abs(A(i)256code(i,2)=1;code(i,3)=0;code(i,4)=0;step=8;start=128;code(i,2)=1;code(i,3)=0;code(i,4)=0;step=8;start=128;elseifelseif 256=abs(A(i)&abs(A(i)512
12、256=abs(A(i)&abs(A(i)512code(i,2)=1;code(i,3)=0;code(i,4)=1;step=16;start=256;code(i,2)=1;code(i,3)=0;code(i,4)=1;step=16;start=256;elseifelseif 512=abs(A(i)&abs(A(i)1024 512=abs(A(i)&abs(A(i)1024code(i,2)=1;code(i,3)=1;code(i,4)=0;step=32;start=512;code(i,2)=1;code(i,3)=1;code(i,4)=0;step=32;start=
13、512;elseifelseif 1024=abs(A(i)&abs(A(i)2048 1024=abs(A(i)&abs(A(i)2048code(i,2)=1;code(i,3)=1;code(i,4)=1;step=64;start=1024;code(i,2)=1;code(i,3)=1;code(i,4)=1;step=64;start=1024;endendB=floor(abs(A(i)-start)/step);B=floor(abs(A(i)-start)/step);t=dec2bin(B,4)-48;t=dec2bin(B,4)-48;code(i,5:8)=t(1:4);code(i,5:8)=t(1:4);endendcode=reshape(code,1,8*n);code=reshape(code,1,8*n);codecodesubplot(212);subplot(212);stem(code,stem(code,.);axis(1 100 0 1););axis(1 100 0 1);title(title(编码信号编码信号););gridgrid onon
限制150内