手机版

程序源代码(2)

时间:2025-07-14   来源:未知    
字号:

);}
out2.close();

ofstream out5("G723.1编码提零压缩后的相对关系bit.wav",ios::binary);//存放最终转换好的比特流文件
if(!out5)
{printf("Cannot open output file.\n!");
return 1;}
offset=0;
out5.seekp(offset,ios::beg);
for(t=0;t<=k-1;t++)
{out5.write((char *)&bit[t],1);}
out5.close();
return 0;
}


(二)BIT流展开和LSB嵌入程序代码
#include"iostream.h"
#include"math.h"
#include"stdlib.h"
#include"time.h"
#include"stdio.h"
#include"fstream.h"
#include"io.h"
char getword(FILE *fp)
{int *s;
int i;
s=&i;
s[0]=getc(fp);
s[1]=getc(fp);
return (i);}//读入一个字
int main()
{ static unsigned char alawbyte[5000000];//存放A率压缩后的样值
int channel=0,samplespersec=0,bitpersample=0;
static int data[5000000];
long offset=0;
static int head[44];
int i;
int j=0;
int k=0;
long samples=0;
static int bitstream[5000000];
static int bitstream1[5000000];
int l=0;
int bit=0;
static int group[8];
ifstream in("f8000-1alaw.wav",ios::binary);
if(!in)
{cout<<"Cannot open input file.\n";
return 1;}
offset=0;
in.seekg(offset,ios::beg);
for(i=0;i<=28;i++)
in.read((char *)&head[i],2);//将头文件读入HEAD数组中
offset=54;
in.seekg(offset,ios::beg);
in.read((char *)&samples,4);
offset=58;
in.seekg(offset,ios::beg);
for(i=0;i<=samples-1;i++)
{in.read((char *)&data[i],1);}//首先将数据全部读入data数组中
in.close();
FILE *fp;//此段程序读入G723.1编码压缩的密文比特流文件
if((fp=fopen("G723.1编码去零压缩后的m8000-1out_high.wav","rb"))==NULL)
{cout<<"cannot open file"<<endl;
exit(0);}
i=0;
while(!feof(fp))
{bitstream[i]=getword(fp);
i++;}
cout<<i-1<<endl;
fclose(fp);
l=0;
k=0;
while(k<i-1)
{for(j=0;j<8;j++)
{bit=bitstream[k]&0x0080;
if(bit==0)
{bitstream1[l]=0;
l++;}
else
{bitstream1[l]=1;
l++;}
bitstream[k]<<=1;}
k++;}//此段程序将bit流散开
for(i=0;i<l;i++)
{cout<<bitstream1[i]<<' ';}
for(i=0;i<=(l-1);i++)
{if(bitstream1[i]==1)//bitstream1[i]=1;
{if(data[i]%2==0)
data[i]=data[i]+1;
else
data[i]=data[i];}
else if(bitstream1[i]==0)//bitstream1[i]=0;
{if(data[i]%2==0)
data[i]=data[i];
else
data[i]=data[i]-1;}}//进行LSB位的替换
ofstream out1("LSB替换后的加密语音alaw.wav",ios::binary);
if(!out1)
{cout<<"Cannot open output file.\n!";
return 1;}
offset=0;
out1.seekp(offset,ios::beg);
for(i=0;i<=28;i++)
{out1.write((char *)&head[i],2);}
offset=58;
out1.seekp(offset,ios::beg);
for(i=0;i<=samples-1;i++)
{out1.write((char *)&data[i],1);}
out1.close();
return 0;
}

(三)提取程序代码
#include"iostream.h"
#include"math.h"
#include"stdlib.h"
#include"time.h"
#include&
quot;stdio.h"
#include"fstream.h"
#include"io.h"
int multiply(int k)
{
int temp=1;
for(int i=0;i<k;i++)
temp

…… 此处隐藏:340字,全部文档内容请下载后查看。喜欢就下载吧 ……
程序源代码(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)