Kommentarer
- Hvilken programvare bruker du? Eller trenger du å gjøre dette for hånd? Vær oppmerksom på at spesifikasjonene dine er veldig generelle, og av denne grunn er mange metoder mulige.
- bruk av matlab, men ikke men i funksjoner
- Så du kan ikke bruke noen funksjoner i Signal Processing Toolbox?
- Nei, jeg kan ikke bruke noen av funksjonene fra verktøykassen for signalbehandling.
Svar
Filteret ditt er svært lite spesifisert, så jeg antar at designet skal være veldig grunnleggende. En veldig grunnleggende metode ville være å bare trunke og forskyve impulsresponsen til et ideelt lavpasfilter med avskjæringsfrekvens $ \ omega_c = 2 \ pi f_c / f_s = 0.4 \ pi $ (hvor $ f_s $ er samplingsfrekvensen):
$$ h_ {ideal} (n) = \ frac {\ sin (\ omega_c n)} {\ pi n} $$
Merk at siden filteret ditt må være årsakssammenheng må skifte og avkutte den ideelle impulsresponsen slik at den er symmetrisk med hensyn til maksimum:
$$ h (n) = \ frac {\ sin (\ omega_c (n-10))} { \ pi (n-10)}, \ quad n = 0,1, \ ldots, 20 \ tag {1} $$
Ligning (1) gir deg de 21 filterkoeffisientene $ h (n) $ av et årsaks FIR-filter som tilnærmer en ideell lavpassfilterrespons. Merk at filterrekkefølgen er 20.
En enkel Matlab / Octave-kode kan se slik ut:
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
Kommentarer
- @farhan: Du ' er velkommen! Hvis du føler at spørsmålet ditt har blitt besvart tilfredsstillende, kan du godta det ved å trykke på ' godta ' -knappen ved siden av svaret.
- det er muligheter for aktiv og eldst ingen mulighet til å godta noe der
- kan du hjelpe meg hvis jeg ønsket å tegne et filter ved hjelp av et rektangulært vindu?
- @farhan : Det er ' et hake øverst til venstre i svaret. Hva mener du nøyaktig med " tegne et filter ved hjelp av rektangulært vindu "? Lage et frekvensrespons?
- Ja, jeg vil virkelig ha den koden