一样的问题 希望能对你有所提示
我作的处理是 先把一个大wav文件读取,再滤波,滤波后再合成一个新的wav文件 代码如下
clear all
close all
Fsize=4096;
Fs=192000;
Wn=30000;
bl=fir1(Fsize,Wn/(Fs/2),'low');
[wnamem,pnamem] = uigetfile('.wav','変調用可聴用音源');
wnamem = strrep(wnamem,'.wav','');
fnamem = strcat(pnamem,wnamem);
m2=0;
m4=0;
d=138;
div=2.0;
Ndiv=d/div;
for idiv=1:Ndiv;
if idiv==1;
N1m=1;
N2m=idiv*Fs*div+Fsize;
[Y,Fs,bit]=wavread(fnamem,[N1m N2m]);
disp('1ok');
ZeroDmy=zeros(Fsize,2);
Y=[ZeroDmy' Y']';
else
N1m=1+(idiv-1)*Fs*div-Fsize;
N2m=idiv*Fs*div+ Fsize;
[Y,Fs,bit]=wavread(fnamem,[N1m N2m]);
disp('2ok');
end
ncall=round(Fs*d);
x4 =filter(bl,1,Y);
x41=x4(Fsize+1:Fsize+Fs*div,1);
x42=x4(Fsize+1:Fsize+Fs*div,2);
Sx=zeros(2,Fs*div);
Sx(1,:)=x41';
Sx(2,:)=x42';
if idiv==1;
fndr=num2str(d);
fnFs=num2str(Fs);
sf = Fs;
mkdir('WAVDATA');
mkdir('WAVFIG');
fname = strcat(wnamem,'_fs',fnFs,'fc',num2str(Wn),'-',num2str(m2),...
'lownew',num2str(m4),'24bitST');
fid=fopen(strcat('WAVDATA\',fname,'.wav'),'wb');
bit=24;
fmtbyte=16;
byte=bit/8;
[ch,dl]=size(Sx);
fwrite(fid,hex2dec('52'),'uchar');
fwrite(fid,hex2dec('49'),'uchar');
fwrite(fid,hex2dec('46'),'uchar');
fwrite(fid,hex2dec('46'),'uchar');
fwrite(fid,ncall*ch*byte+36,'ulong');
fwrite(fid,hex2dec('57'),'uchar');
fwrite(fid,hex2dec('41'),'uchar');
fwrite(fid,hex2dec('56'),'uchar');
fwrite(fid,hex2dec('45'),'uchar');
fwrite(fid,hex2dec('66'),'uchar');
fwrite(fid,hex2dec('6D'),'uchar');
fwrite(fid,hex2dec('74'),'uchar');
fwrite(fid,hex2dec('20'),'uchar');
fwrite(fid,fmtbyte,'ulong');
fwrite(fid,1,'ushort');
fwrite(fid,ch,'ushort');
fwrite(fid,sf,'ulong');
fwrite(fid,sf*ch*byte,'ulong');
fwrite(fid,ch*byte,'ushort');
fwrite(fid,bit,'ushort');
fwrite(fid,hex2dec('64'),'uchar');
fwrite(fid,hex2dec('61'),'uchar');
fwrite(fid,hex2dec('74'),'uchar');
fwrite(fid,hex2dec('61'),'uchar');
fwrite(fid,ncall*ch*byte,'ulong');
end
max(abs(Sx(:)));
S=Sx*((2^bit)-2^(bit-1));
S=int32(S);
for y=1:dl;
for x=1:ch;
count = fwrite(fid,S(x,y),'bit24');
if y==dl;
disp(['書き込み',num2str(idiv),'回目OK']);
disp(['count=',num2str(count)]);
end
end
end
if idiv == Ndiv;
fclose(fid);
end
hold on;
newplot
text(20,-50,['Filename = ',fname],'FontSize',8);
text(20,-60,['Date = ',datestr(now,0)],'FontSize',8);
hold off;
set(gcf,'PaperPositionMode','auto')
set(gcf,'PaperType','A4')
bmppath = strcat('WAVFIG\',[fname,num2str(idiv)],'.png');
print('-dpng','-zbuffer',bmppath);
end