MATLAB实现将pcm抽样后得到的值用13折线转换成对应的值

源代码:

function zhexian()
t=0:0.1:6*pi;
x=sin(t);             %模拟信源
subplot(2,1,1);
plot(t,x);
title ( '原始模拟信号' );
t1=0:2*pi/32:6*pi;            %按每周期取32个点抽样
x1=sin(t1);
subplot(2,1,2);
plot(t1,x1);
stem(t1,x1);
title ( '抽样信号' );
z=zhexian_(x1);%13折线 
x1                      %每个点抽样值
z                       %对应十三折线的值

function y=zhexian_(x)    %十三折线换算
x=x/max(x);         
z=sign(x);            
x=abs(x);             %取绝对值
for i=1:length(x)             %取长度
    if((x(i)>0)&&(x(i)<1/64))
        y(i)=16*x(i);
    else if((x(i)>=1/64)&&(x(i)<1/32))
            y(i)=x(i)*8+1/8;
        else if((x(i)>=1/32)&&(x(i)<1/16))
                y(i)=4*x(i)+2/8;
            else if((x(i)>=1/16)&&(x(i)<1/8))
                y(i)=2*x(i)+3/8;
                else if((x(i)>=1/8)&&(x(i)<1/4))
                        y(i)=x(i)+1/2;
                    else if((x(i)>=1/4)&&(x(i)<1/2)) 
                            y(i)=1/2*x(i)+5/8;
                        else if((x(i)>=1/2)&&(x(i)<=1))
                                y(i)=1/4*x(i)+3/4;
                            end;
                        end;
                    end;
                end;
            end;
        end;
    end;
end;
y=z.*y;

运行结果:
(1)原始信号和抽样信号:
在这里插入图片描述
(2)每个点抽样值和对应十三折线值:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值