Clear Filters
Clear Filters

Two Dimensional Filter Design From One Dimensional Prototype Filter Rotation

1 view (last 30 days)
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');
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')
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.

Answers (0)

Categories

Find more on Filter Banks in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!