全文预览

C语言实现PCM-A律编码、解码

上传者:hnxzy51 |  格式:doc  |  页数:2 |  大小:92KB

文档介绍
reak;Р case 3:b[1]=0;b[2]=1;b[3]=1;break;Р case 4:b[1]=1;b[2]=0;b[3]=0;break;Р case 5:b[1]=1;b[2]=0;b[3]=1;break;Р case 6:b[1]=1;b[2]=1;b[3]=0;break;Р case 7:b[1]=1;b[2]=1;b[3]=1;break;Р?}Р?if(i==0)Р?{Р n=0;Р m=2;Р?}Р?elseР?{Р n=c[i-1];Р for(j=0;j<i;j++)Р m=2*m;Р?}Р?a=(a-n)/m;Р?b[4]=a/8;Р?b[5]=(a-b[4]*8)/4;Р?b[6]=(a-b[4]*8-b[5]*4)/2;Р?b[7]=a-b[4]*8-b[5]*4-b[6]*2;Р?for(i=0;i<8;i++)Р?{Р printf("%d ",b[i]);Р?}Р?while(1);Р}Р2、C语言实现pcm_A律解码Р#include<stdio.h>Р#include<math.h>Рvoid main()Р{ int i,j,m,n=32,k,y;Р int a[8]={0};Р for(i=0;i<8;i++)Р { printf("请输入PCM编码a[%d]:",i);Р scanf("%d",&a[i]); Р }Р m=a[1]*4+a[2]*2+a[3];Р i=m;Р if(m==0) n=0;Р elseР while(--i) n=n*2;Р?k=a[4]*8+a[5]*4+a[6]*2+a[7];Р if(m<=1) y=n+k*2+1;Р elseР y=n+k*n/16+n/32;Р if(a[0]==0) y=-y;Р printf("输入编码的幅度为:%d\n",y);Р while(1);Р}

收藏

分享

举报
下载此文档