FIR Filter Verstärkung größer 1?

Gast #2754592
Lesenswert?

Hallo,

Bin grad dabei einen FIR Filter in Octave zu modellieren.

fir.m
1
function [fw,h]=fir(M,h,fs,step)
2
%Autor: Tobias Markus
3
%FIR Filter with M koeffizients
4
%fs is the sampling frequency and 
5
%h is the koefficent vector must have the size
6
%of M. And step defines the steps between 0Hz and fs
7
n=0;
8
m=0;
9
sum =0;
10
f=[0:step:fs/2];
11
hz=[];
12
% Calculating the transfer function
13
while m < (fs/(2*step)+1)
14
while n < M
15
  sum = sum +h(n+1)*exp(-j*n*(2*pi*f(m+1))/fs);
16
n=n+1;
17
end
18
hz(m+1)= sum;
19
sum=0;
20
m=m+1;
21
n=0;
22
end
23
h=hz;
24
fw=f;
25
endfunction
Hauptprogramm:
1
h=[];
2
h(1)=-0.045;
3
h(2)=0;
4
h(3)=0.075;
5
h(4)=0.159;
6
h(5)=0.225;
7
h(6)=0.25;
8
h(7)=0.225;
9
h(8)=0.159;
10
h(9)=0.075
11
h(10)=0
12
h(11)=-0.045
13
fs=16000;
14
M=11;
15
step=10;
16
f=[];
17
w=[];
18
[f,w]=fir(M,h,fs,step);
19
plot(f,abs(w));

Wenn ich nun den Filter plotten lasse habe ich Verstärkungen größer 
eins.
Wie kann das sein hab ich einen Fehler gemacht?
Angehängte Dateien:
#2754607
Lesenswert?

Ist zwar schon eine Weile her, aber ist die Gleichspannungsverstärkung 
(also bei f(0) ) nicht die Summe der Filterkoeffizienten!?
Wenn ich mich gerade nicht verrechnet habe, dann müsste es A(0)=1,078 
sein.
Das könnte doch einigermaßen mit deinem Bild zusammenpassen.

Grüße

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren