BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #3598同步于 2008/5/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

【求助】谁来帮我看看这段代码的问题 感激不尽啊

lavender
2008/5/9镜像同步1 回复
%读入音频文件 fid=fopen('F:\Mp3\test2.wav','r'); %前44字节为头信息 %status=fseek(fid,44,'bof'); a=fread(fid,'uint8');%读入所有字节 n=length(a); per=input('Input percent:\n'); m=ceil(n*per); d = randsrc(1, m, [0 1]);%产生随机序列即水印 for i=1:m b(i)=a(i); b(i)=bitset(b(i),1,d(i));%进行LSB嵌入水印 end for j=m+1:n c(j)=a(j); end e=[b,c] wavwrite(e,'music_LSB_embeded.wav'); 怎么运行都不出结果 也没什么错误啊[em9]
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
southfly机器人#1 · 2008/5/9
用C来保存未修改的比特不对 C的维数是n 得到的e是m+n维的! 帮c(j) = a(j) 改为b(j) = a(j) 就行了 不用两个向量来区分保存! e行向量要转置,才能和a的“形状”一样! 上面改了之后就能实现最低比特位嵌入了 这样就能输出了 但是最后的输出格式不知怎么弄! 输出的音频不对!呵呵 请教达人! %读入音频文件 fid=fopen('F:\Mp3\test2.wav','r'); %前44字节为头信息 %status=fseek(fid,44,'bof'); a=fread(fid,'uint8');%读入所有字节 n=length(a); per=input('Input percent:\n'); m=ceil(n*per); d = randsrc(1, m, [0 1]);%产生随机序列即水印 for i=1:m b(i)=a(i); b(i)=bitset(b(i),1,d(i));%进行LSB嵌入水印 end for j=m+1:n b(j)=a(j); end e = b'; wavwrite(e,'F:\Mp3\music_LSB_embeded.wav');