Two Dimensional Filter Design From One Dimensional Prototype Filter Rotation
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I designed an one dimensional filter and it's coefficients (c_estimated) are below.
c_estimated=[-0.0122879538101070,-0.00936229970020011,-0.00533047175279384,-0.000879240291169325,0.00442937840660125,0.0100103547115524,0.0154584938349991,0.0167766116340094,0.0191819943698554,0.0176610078539290,0.0134142321969706,0.00738896103686041,4.78621117449734e-06,-0.00772157595624712,-0.0154347847351846,-0.0197808870552875,-0.0263928918670513,-0.0273375787436225,-0.0233470415500297,-0.0170161782790395,-0.00754797342458864,0.00285659633541593,0.0147348228320903,0.0242369753090141,0.0368617303382725,0.0434986249766230,0.0434671612024621,0.0382913985317041,0.0288908273136430,0.0150280740481253,-0.00283379591508635,-0.0227413540011186,-0.0483224283910802,-0.0701072149732580,-0.0884040352627693,-0.103554572311423,-0.113759407155347,-0.118674284825946,-0.117305705133992,-0.112030561859145,-0.0985998030610725,-0.0848482759616751,-0.0690582961602349,-0.0516352181816368,-0.0351498851798397,-0.0204613014255703,-0.0100583312660474,-0.000275550678307800,0.00339070217939305];
[h,w]=freqz(c_estimated,1,1024);
w=w/pi;
h=abs(h);
figure,plot(w,h);
title('Frequency Response of Prototype Filter');
figure,plot(w,mag2db(h));
title('Frequency Response in dB of Prototype Filter');
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/803664/image.jpeg)
After that I modulated this filter coeffients with below code and create a 4 channel filter bank;
wp=0.1250; %pass band normalized frequency
M=4; %filter bank channel number
N=49; %coefficient size
x_coeff(1,:)=c_estimated.*exp(j*2*(wp/2)*pi*(1:N));
x1_coeff(1,:)=x_coeff;
[hxx(:,1),wxx(:,1)]=freqz(x_coeff,1,1024);
for i=1:M-1
x1_coeff(i+1,:)=x_coeff.*exp(j*2*wp*i*pi*(1:N));
[hxx(:,i+1),wxx(:,i+1)]=freqz(x1_coeff(i+1,:),1,1024);
end
wxx=wxx/pi;
hxx=abs(hxx);
figure,plot(wxx,hxx);
title('Frequency Response')
figure,plot(wxx,mag2db(hxx));
title('Frequency Response in dB')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/803669/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/803674/image.jpeg)
Now I want to rotate this filter channels seperately around vertical axis and get a 2 dimensional circularly symmetric filter frequency responses. As a result I want to get circularly symmetric low pass from channel 1, circularly symmetric band pass filters from channel 2 and 3, circularly symmetric high pass filter from channel 4. But I'm stuck and do not know what to do. What am I supposed to do? Thanks for all your help.
Regards.
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Filter Banks dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!