作业帮 > 综合 > 作业

求MATLAB大神指点

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/02 00:27:44
求MATLAB大神指点
clear all;
close all;
t=0:0.004:1;
f0=0.5;
f1=32;
y1=chirp(0,f0,1,f1);
y2=hilbert(y1);
y=y1+j*y2;
c=fft(y)
N=256;
nbands=8;
[hopt,H,G]=opt_filter(N,nbands);
stem(hopt,'k');grid;
     h0=H(1,:);
     h1=H(2,:);
     h2=H(3,:);
     h3=H(4,:);
     h4=H(5,:);
     h5=H(6,:);
     h6=H(7,:);
     h7=H(8,:);
stem(h0,'k.');grid;
[H0,w]=freqz(h0,1,512,1);
[H1,w]=freqz(h1,1,512,1);
[H2,w]=freqz(h2,1,512,1);
[H3,w]=freqz(h3,1,512,1);
[H4,w]=freqz(h4,1,512,1);
[H5,w]=freqz(h5,1,512,1);
[H6,w]=freqz(h6,1,512,1);
[H7,w]=freqz(h7,1,512,1);
for i=0:nbands-1;
    z=c.*H(i);
end
plot(w,z)
这是程序  

for k=1:nbands
for l=1:flen
m1=cos(pi*(2*k-1)*(2*l-1)/(4*nbands));
m2=sin(pi*(2*k-1)*(2*l-1)/(4*nbands));
H(k,l)=2.0*(real(a(k))*m1-imag(a(k))*m2)*hopt(l);
end
for l=1:flen
m1=cos(pi*(2*k-1)*(2*l-1)/(4*nbands));
m2=sin(pi*(2*k-1)*(2*l-1)/(4*nbands));
G(k,l)=2.0*(real(a(k))*m1+imag(a(k))*m2)*hopt(l);
end
end
for i=1:nbands;
z=c.*H(i);
end
MATLAB 不能从0开始,和C不一样
你补充的问题什么意思啊?
再问: 那我怎么让c和H0到H7循环相乘积呀 谢谢
再答: for i=1:7;
z=c.*H(i);
end
这样就可以
再问: 那不是少了一个h0吗
再答: H0 和 H(0)不是一个概念。。。额。。。你这里想用的是哪一个??
再问: 想用 H0 可以求个快速联系你的方式吗 这样联系好费力
再答: W= [H0,H1,H2,H3,H4,H5,H6,H7];

for i=1:nbands;
z=c.*W(i);
end