FIR dizainas - Konvoliucija metodas

C

claudiocamera

Guest
Aš atėjau, visos šios problemos FIR konstrukcija naudojant langą ir Konvoliucija metodai.

Projekto FIR filtras Hamming langą pasiekti šias specifikacijas:

Passband 0,3-3,4 kHz
Stopband 0-0,2 e 4-8 kHz
Stopband atenuation> 25 dB
Ėminių ėmimo dažnis 32 kHz

Kadangi perėjimas juosta yra skirtingos, siekiant išspręsti problemą, būtina sukurti žemo dažnio filtras, tada Highpass filtras ir taikyti Konvoliucija jų coeficient, šią procedūrą galima rasti praeinamumo filtru.Atliekant šiuos veiksmus, aš rasiu tinkamą dydžio sklypą, tačiau keistai etapas sklypas.

Žemiau aš dabar MATLAB kodą.Būtume labai dėkingi, jei kas nors veikia jis galėtų suvokti, kas yra negerai.

Nepaisant etape rasti yra linijinė, kaip reikalaujama pagal FIR filtrais, yra grįžtamojo nuo to, ką reikia, be to, ji yra visame diapazone iki fs / 2, paprastai etapas yra linijinis tik passband, that's why I manau, kad kažkas negerai.

Tai akademinė problema turiu statyti kodas ir aš neleidžiama naudoti fir1 COMAND, nei remez, fir2 arba bet kuris kitas, aš žinau, kad gali padėti išspręsti šią problemą, naudojant fir1 komanda, bet tai ne taškas, tirpalas turi būti pateikta per du convolutioning filtro koeficientai, todėl turiu sužinoti, kas yra negerai su MATLAB kodą, kurį taip:

% bendro duomenų
Ap = 3;
As = 25;
Fs = 32000;

% Atsižvelgiant mažesnių Ripple
DP = (10 ^ (Ap/20)) -1; ds = 10 ^ (-As/20);
d = min (DP, DT);
As = -20 * log 10 (d);

% Lowpass:

fp = 3.400;
FS = 4000;% Normalizuoja dažniai

FPN = FP / FS;
FSN = fs / FS;
WCN = 2 * pi * FPN;

% Filtruoti siekiant Hamming langą
N = Stropować (3.3 / (FSN-FPN));

% Hamming langą
WD = Hamming (N-1);

% Idealus filtras
na = 1: (N-1) / 2;
Hd = 2 * FPN * sin (na. * WCN). / (na. * WCN);
HDN = [fliplr (HD) 2 * FPN hd];

% langų
Hn = HDN .* DD ";% Highpass

fp1 = 300;
fs1 = 200;

% Normalizuoja dažniai

fpn1 = fp1/Fs;
fsn1 = fs1/Fs;
wcn1 = 2 * pi * fpn1;

% Filtruoti siekiant Hamming langą
N1 = Stropować (3.3 / (fpn1-fsn1));

% Hamming langą
wd1 = Hamming (N1 kategorija);

% Idealus filtras
na1 = 1: (N1-1) / 2;
HD1 =- 2 * fpn1 * sin (na1. * wcn1). / (na1. * wcn1);
hdn1 = [fliplr (HD1) 1-2 * fpn1 HD1];

% langų
HN1 = hdn1 .* wd1 ";

% Praeinamumo filtru coeficients

H = conv (HN1, HN);

% Braižymas dažninė

freqz (H, 1.512, fs);

 

Welcome to EDABoard.com

Sponsor

Back
Top