Kommentarer
- Hvilken software bruger du? Eller har du brug for at gøre dette i hånden? Bemærk, at dine specifikationer er meget generelle, og af denne grund er mange metoder mulige.
- ved hjælp af matlab, men ikke men i funktioner
- Så du kan ikke bruge nogen funktioner i værktøjet til signalbehandling?
- Nej, jeg kan ikke bruge nogen af funktionerne fra værktøjskassen til signalbehandling.
Svar
Dit filter er meget underspecificeret, så jeg antager, at dit design formodes at være meget grundlæggende. En meget grundlæggende metode ville være at simpelthen trunke og skifte impulsresponsen af et ideelt lavpasfilter med afskæ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} $$
Bemærk at da dit filter skal være årsagssammenhængende skal skifte og afkorte det ideelle impulsrespons, så det er symmetrisk med hensyn til dets maksimale:
$$ h (n) = \ frac {\ sin (\ omega_c (n-10))} { \ pi (n-10)}, \ quad n = 0,1, \ ldots, 20 \ tag {1} $$
Ligning (1) giver dig de 21 filterkoefficienter $ h (n) $ af et kausalt FIR-filter, der tilnærmer sig et ideelt lavpasfilterrespons. Bemærk, at filterordren er 20.
En simpel Matlab / Octave-kode kan se sådan ud:
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 dit spørgsmål er blevet besvaret tilfredsstillende, kan du acceptere det ved at trykke på ' accept ' knappen ved siden af svaret.
- der er muligheder for aktiv og ældst ingen mulighed for at acceptere nogen hvor
- kan du hjælpe mig, hvis jeg ville tegne et filter ved hjælp af et rektangulært vindue?
- @farhan : Der er ' et flueben øverst til venstre i svaret. Hvad mener du nøjagtigt ved at " tegne et filter ved hjælp af et rektangulært vindue "? Lav et plot af dets frekvensrespons?
- Ja, jeg vil virkelig have den kode