• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: Matlab
  • 标签: PCM  

资源简介

PCM脉冲编码调制 用matlab实现信号的采集量化和编码,包括采样后的波形,量化后的波形及编码后的波形

资源截图

代码片段和文件信息


%>>>>>>>>>>PCM脉冲编码调制(抽样量化编码)>>>>>>>>>>>>>>>>>>
%其中量化和编码采用A率的近似十三折线法来实现
%模拟信号为Xa=sin(100*pi*t)
%抽样频率为fs=1/T=1000Hz

%>>>>>>>>>>>>>>>模拟信号时频波形>>>>>>>>>>>>>>>>>>>>>>>>
A=1;
w0=100*pi;
dt=0.001;
t=0:dt:pi;
Xa=A*sin(w0*t);
subplot(221)plot(tXa)
axis([00.02-1.51.5])title(‘a(1)模拟信号Xa=sin(100*pi*t)时域波形‘)
grid

%模拟信号频谱
w=0:1000;
Xaw=fft(Xalength(w));
subplot(222);plot(wabs(Xaw))
axis([01000600])title(‘a(2)模拟信号Xa=sin(100*pi*t)幅频特性‘)
grid

%>>>>>>>>>>>>>>>>>>>抽样信号时频波形>>>>>>>>>>>>>>>>>>>>>>>
T=0.001;n=0:21;
X=sin(w0*n*T);
subplot(223)stem(X‘.‘);
axis([021-22])title(‘b(1)抽样信号X=sin(w0*n*T)‘)
grid

%抽样信号频谱
wn=0:1000;
Xwn=fft(Xlength(wn));
subplot(224);plot(wnabs(Xwn))
axis([01000012])title(‘a(2)模拟信号Xa=sin(100*pi*t)幅频特性‘)
grid

%>>>>>>>>>>>>>>>>>>>>量化及编码>>>>>>>>>>>>>>>>>>>>>>>>>>
c=zeros(1176);  %量化码组
d0=1/2048;      %1/2048作为一个量化单位
X0=zeros(122); %22个抽样点X0

for n=1:22
     X0(n)=fix(X(n)/d0);  %抽样值的量化单位数(取整)
     %>>>>>>>>>>>>>>极性码>>>>>>>>>>
        if X0(n)>0
            c(1+(n-1)*8)=1;
        else
            c(1+(n-1)*8)=0;
        end
    d=1024;
    q=2;   
    I=0;    %段落码码段
    J=0;    %段内码码段
    for i=1:8               %求段落码码段I
        max=d*q;
        min=d/(q^4);
        if abs(X0(n))<=d*q && abs(X0(n))>d
            I=8-i+1;
            for j=1:16      %求段内码码段J
                if abs(X0(n))<=max && abs(X0(n))>max-min
                 J=16-j+1;
                end
                max=max-min;
            end
        end
        d=d/q;
    end

    switch I            %由段落码码段求段落码
        case 8
            c(2+(n-1)*8:4+(n-1)*8)=[111];
        case 7
            c(2+(n-1)*8:4+(n-1)*8)=[110];
        cas

评论

共有 条评论