Цитата(petrov @ Oct 28 2015, 22:04)

Иными словами, чтобы ИХ суммы фильтров равнялась задержанному дельта-импульсу. Таким свойством например обладают КИХ фильтры синтезированные методом окна с окном Кайзера.
http://electronix.ru/forum/index.php?s=&am...t&p=1376492А почему именно Кайзера? Я заменил в вашей модели Кайзера, на Блекман-Харриса - результат тотже.
Цитата(petrov @ Oct 28 2015, 22:04)

Наверное нет смысла ради нескольких фильтров быстрыми алгоритмами заморачиваться, просто в лоб фильтры делайте.
Написал пример для 4 банков:
CODE
clear all;disp('Filter bank 4 test');
%--------------------------------------------------------------------------
Len=10000;op=100;FL=64;FB=10;
%--------------------------------------------------------------------------
si=zeros(Len,1);si(op)=1;
%--------------------------------------------------------------------------
fb1=fir1(FL, 1/4 ,'low', kaiser(FL+1,10));
fb2=fir1(FL,[1/4 1/2],'bandpass',kaiser(FL+1,10));
fb3=fir1(FL,[1/2 3/4],'bandpass',kaiser(FL+1,10));
fb4=fir1(FL, 3/4 ,'high', kaiser(FL+1,10));
hfvt = fvtool(fb1,1,fb2,1,fb3,1,fb4,1);
legend(hfvt,'fb1','fb2','fb3','fb4');
%--------------------------------------------------------------------------
figure;plot(si);title('Input');
s1=filter(fb1,1,si);s1=circshift(s1,-FL/2);
s2=filter(fb2,1,si);s2=circshift(s2,-FL/2);
s3=filter(fb3,1,si);s3=circshift(s3,-FL/2);
s4=filter(fb4,1,si);s4=circshift(s4,-FL/2);
figure;hold on;plot(s1,'r');plot(s2,'g');plot(s3,'b');plot(s4,'k');
legend('fb1','fb2','fb3','fb4');title('band');hold off;
so=s1+s2+s3+s4;
figure;plot(so);title('Output');
%--------------------------------------------------------------------------
so(op)=so(op)-1;
se=20*log10(max(abs(so)));%error -110dB
%figure;plot(so);title(['max peak error = ',int2str(se),'dB']);
figure;pwelch(so);title(['max peak error = ',int2str(se),'dB']);
Погрешность получилась неплохая: -110дБ.