登录论坛

查看完整版本 : [MATLAB混合编程] 速求高手解答matlab程序


xibala
2010-06-02, 11:31
这俩个都是书上的例子,为什么运行不出来
例1:clear;
fid=fopen('normalecg.txt','r');
x=fscanf(fid,'%f %f %f',[600 3]);
fclose=(fid);
N=length(x);
for i=0:N/3-1
t(i+1)=x(3*i+1);
sig1(i+1)=x(3*i+2);
sig2(i+1)=x(3*i+3);
end
s=sig1+0.5*randn(1,length(sig1));
figure(1);
subplot(2,1,1);plot(t,s,'LineWidth',2);
ylabel('电压 V/mV');
title('含噪的ECG信号');
wavelet='db5';
level=4;
alpha=1.5;
sorh='h';
[c,l]=wavedec(s,level,wavelet);
[thr,nkeep]=wdcbm(c,l,alpha);
[xc,cxc,lxc,perf0,perfl2]=wdencmp('lvd',c,l,wavelet,level,thr,sorh);
subplot(2,1,2);plot(t,s,'LineWidth',2);
xlabel('时间 t/s');
ylabel('电压 V/mV');
title('重构的ECG信号');
cC=encode(cxc);
tC=cC;
tL=length(tC);
pzeros=perf0
pnormen=perfl2
compratio=length(s)/length(tC)
例2:idwt函数
randn('seed',531316785)
s=2+kron(ones(1,8),[1 -1])...+((1:16).^2)/32+0.2*randn(1,16);
[ca1,cd1]=dwt(s,'db2');
subplot(3,1,1);plot(ca1);
title('db2 低频系数');
subplot(3,1,2);plot(cd1);
title('db2 高频系数');
ss = idwt(ca1,cd1,'db2');
err = norm(s-ss);
subplot(3,1,3);plot([s;ss]);
title('原始信号和重构信号');
xlabel(['误差的2范数为=',num2str(err)])
[Lo_R,Hi_R] = wfilters('db2','r');
ss = idwt(ca1,cd1,Lo_R,Hi_R);
应该是省略号那里有问题,不知道该怎么弄。
求高手解答