Gesloten. Deze vraag is off-topic . Het accepteert momenteel geen antwoorden.

Opmerkingen

  • Welke software gebruikt u? Of moet u dit met de hand doen? Houd er rekening mee dat uw specificaties erg algemeen zijn en dat daarom veel methoden mogelijk zijn.
  • Matlab gebruiken maar niet alleen in functies
  • U kunt dus geen enkele functie van de Signaalverwerkingstoolbox gebruiken?
  • Nee, ik kan geen enkele functie uit de toolbox voor signaalverwerking gebruiken.

Antwoord

Je filter is sterk ondergespecificeerd, dus ik neem aan dat je ontwerp erg basic zou moeten zijn. Een zeer basismethode zou zijn om simpelweg de impulsresponsie van een ideaal laagdoorlaatfilter met afsnijfrequentie $ \ omega_c = 2 \ pi f_c / f_s = 0.4 \ pi $ af te kappen en te verschuiven (waarbij $ f_s $ de bemonsteringsfrequentie is):

$$ h_ {ideal} (n) = \ frac {\ sin (\ omega_c n)} {\ pi n} $$

Merk op dat aangezien uw filter oorzakelijk moet zijn, u moet de ideale impulsresponsie verschuiven en afkappen zodat deze symmetrisch is ten opzichte van zijn maximum:

$$ h (n) = \ frac {\ sin (\ omega_c (n-10))} { \ pi (n-10)}, \ quad n = 0,1, \ ldots, 20 \ tag {1} $$

Vergelijking (1) geeft je de 21 filtercoëfficiënten $ h (n) $ van een causaal FIR-filter dat een ideale laagdoorlaatfilterrespons benadert. Merk op dat de filtervolgorde 20 is.

Een eenvoudige Matlab / Octave-code zou er als volgt uit kunnen zien:

n = -10:10; omc = 0.4*pi; % normalized cut-off frequency in rad h = sin(omc*n)./(pi*n); % impulse response h(11) = omc/pi; % correct NaN value at n=0 H = fft(h,1024); % complex frequency response f = 1000/1024*(0:512); % FFT frequency grid up to fs/2 plot(f,abs(H(1:513))); % plot magnitude of frequency response 

Reacties

  • @farhan: je bent ' welkom! Als u denkt dat uw vraag naar tevredenheid is beantwoord, kunt u deze accepteren door op de knop ' accept ' naast het antwoord te drukken.
  • er zijn opties van actief en oudste geen optie om ergens te accepteren
  • kun je me helpen als ik een filter wil tekenen met een rechthoekig venster?
  • @farhan : Er is ' een vinkje linksboven in het antwoord. Wat bedoel je precies met " teken een filter met een rechthoekig venster "? Maak een plot van zijn frequentierespons?
  • Ja, ik wil die code echt

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *