problēma ar filterbank

O

omidi_sbu

Guest
Šis MATLAB programma, lai iegūtu piemērotu vilnītis kodols
Tas izriet zemu caurlaides filtru ar paraugu ņemšanu no analogās izvirzīts kosinuss funkciju frekvenču jomā, un ņemot ifft no šo funkciju, lai iegūtu impulsu reakciju.(Citi filtri iegūst, izmantojot taisnleņķa attiecības).

Vispirms es gribu zināt, ja filtra konstrukcija metode ir kādas problēmas?
Filtrs ir 2 parametri frekvenču jomā Fs un B. Fs ir paraugu skaits, kas tiks garums filtra un B, kas kontrolē asumu līknes frekvenču jomā.

Šie filtri ir diezgan lieli atjaunošanas kļūda.pat tad, ja filtra garums ir liels (Fs = 32 un B =. 15)
Kad es veikt FFT šo filtru ar daudz FFT punktiem (FFT (TZ, 8000)), rezultāti rāda mazu ripples ar stopband.I pārbauda pati db filtri un šie filtri nav šīs ripples.

Es esmu sajaukusi!======================================= M-failu
% Programmas pieņemšanas piemērota kodola, lai coder
skaidrs visiem;
tuvu visiem;

Fs = 16% paraugu ņemšanas frequncy no analogās filtra T (f)
% B =. 1505;% ievades parametrs
B =. 15;
r = 1 / 2;% r (otrais parametrs)
k = Fs / 2;

par f = 1: k 1% paraugu no analog filtra frekvenču jomā

ja (f-1) <= (RB) * k
T (f) = 1;
elseif (f-1) <= (r B) * k
T (f) = cos (pī / (4 * B) * ((f-1) / k-R B));
elseif (f-1) <= k
T (f) = 0;
beigās;

beigās;
x = (0: k) / Fs;
gabals (x, T);
par f = (k 2): Fs%, padarot otrajā pusē paraugu
T (f) = T (Fs 2- f) apakšpunktā;
beigās;

T1 = reālā (ifft (T));% oriģināls FIR filtrs

kur i = 1: k% TL ir gadījuma filtrs
TL (i k) = T1 (i);
beigās;

kur i = 1: k
TL (i) = T1 (k i);
beigās;
TX = TL;

%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$%%

[Y, FS] = wavread (taha.wav ');% iegūt ieejas signālu (16KHz wav fails)

gabals (y);
virsraksts ("Original");
ievade = y ';
%------------------------------------------------- -------------------------
kur i = 1: garums (tx)% ziņošanas paraugu filtru (kodola)
(I) = fprintf (% 0,16 F ', TX (i));
beigās;

[Lod, slēpa, Lor, Hir] = orthfilt (tx);%, padarot citiem filtriem

QL = filterx1 (ievade, Lod);% analizēt ieejas ieejas signāla
QH = filterx1 (ievade, HID);

Qld = d_convrt (QL);% uz leju konvertējošā
qhd = d_convrt (QH);

qldu = u_convrt (Qld);% vairāk konvertēšanu
qhdu = u_convrt (qhd);

outl = filterx1 (qldu, Lor);% sintēzes filtrēšana
outh = filterx1 (qhdu, Hir);

final_out = outl outh;% summējot produkcijas sintēzes filtru
turiet;
% Gabals (final_out, "G");
gabals (final_out (Fs: Fs-1 garums (ievade)), "g");% ziņojumu kopsavilkums
virsraksts ("rekonstrukcija un Oriģinālais Signal");
% Pauze;
skaitlis;
gabals (final_out (Fs: Fs-1 garums (ievade))-ievadi, 'g');
virsraksts ("Error");
ye = final_out (Fs: Fs-1 garums (ievade)) ievades;
L = garums (ye);
E = SQRTn (1 / L * summu (yE. ^ 2))

 

Welcome to EDABoard.com

Sponsor

Back
Top