Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.sci.electronics > #220822 > unrolled thread

FIR-Koeffizienten per Hand ermitteln

Started byPeter Thoms <dl6lat@darc.de>
First post2017-01-14 14:02 +0100
Last post2017-02-03 17:42 +0100
Articles 15 — 6 participants

Back to article view | Back to de.sci.electronics


Contents

  FIR-Koeffizienten per Hand ermitteln Peter Thoms <dl6lat@darc.de> - 2017-01-14 14:02 +0100
    Re: FIR-Koeffizienten per Hand ermitteln Leo Baumann <charly020664@yahoo.de> - 2017-01-14 15:31 +0100
    Re: FIR-Koeffizienten per Hand ermitteln Rafael Deliano <rafael_deliano@arcor.de> - 2017-01-14 16:04 +0100
      Re: FIR-Koeffizienten per Hand ermitteln Peter Thoms <dl6lat@darc.de> - 2017-01-14 18:59 +0100
        Re: FIR-Koeffizienten per Hand ermitteln Rafael Deliano <rafael_deliano@arcor.de> - 2017-01-14 19:21 +0100
          Re: FIR-Koeffizienten per Hand ermitteln Peter Thoms <dl6lat@darc.de> - 2017-01-15 00:53 +0100
            Re: FIR-Koeffizienten per Hand ermitteln Rafael Deliano <rafael_deliano@arcor.de> - 2017-01-15 08:20 +0100
              Re: FIR-Koeffizienten per Hand ermitteln Peter Thoms <dl6lat@darc.de> - 2017-01-15 10:19 +0100
              Re: FIR-Koeffizienten per Hand ermitteln Peter Thoms <dl6lat@darc.de> - 2017-01-15 10:45 +0100
                Re: FIR-Koeffizienten per Hand ermitteln "horst.d.winzler" <horst.d.winzler@web.de> - 2017-01-15 11:00 +0100
                  Re: FIR-Koeffizienten per Hand ermitteln Rolf Bombach <rolfnospambombach@invalid.invalid> - 2017-01-16 22:14 +0100
                  Re: FIR-Koeffizienten per Hand ermitteln Hartmut Kraus <hartmut.melina@web.de> - 2017-02-03 19:03 +0100
          Re: FIR-Koeffizienten per Hand ermitteln Peter Thoms <dl6lat@darc.de> - 2017-01-16 20:39 +0100
          Re: FIR-Koeffizienten per Hand ermitteln Peter Thoms <dl6lat@darc.de> - 2017-02-03 16:45 +0100
            Re: FIR-Koeffizienten per Hand ermitteln Rafael Deliano <rafael_deliano@arcor.de> - 2017-02-03 17:42 +0100

#220822 — FIR-Koeffizienten per Hand ermitteln

FromPeter Thoms <dl6lat@darc.de>
Date2017-01-14 14:02 +0100
SubjectFIR-Koeffizienten per Hand ermitteln
Message-ID<o5d7hg$cui$1@news.albasani.net>
Hallo,

gerade versuche ich ein fir-Filter zu stricken und komme nicht auf das 
Ergebnis vom Rechenbeispiel in Art of Electr.
a0= 0,497
a1= 0,274
a2= 0
a3=-0,0226
a4= 0

Wo und in welcher rechnung könnte der Fehler stecken?
Meine Tabelle:					                normalisieren:	
a	N	k	sin(x)/x	*Hamming	H'summe/1,21	
--------------------------------------------------------------------
a0	8	0	 1	         1	         0,8260	
a1	8	1	 0,3926	         0,3069	         0,2535	
a2	8	2	 0	         0               0	
a3	8	3	-1,178	        -0,096	        -0,0796	
a4	8	4	 0	         0	         0	
			  Hammingsumme→	 1,21	         1 Kontrollsumme

Meine Rechnung bezieht sich auf AOE dritte Ausgabe, S.421 kurz unter 
Formel 6.20 fürs Hamming-Fenster:
"The recipe, then, ist to choose ...

Ich hoffe jetzt auch noch inständig, daß mein Schriftformat nicht die 
Tabelle verschiebt.


peter

[toc] | [next] | [standalone]


#220836

FromLeo Baumann <charly020664@yahoo.de>
Date2017-01-14 15:31 +0100
Message-ID<o5dcog$ji6$1@solani.org>
In reply to#220822
Am 14.01.2017 um 14:02 schrieb Peter Thoms:
> Hallo,
>
> gerade versuche ich ein fir-Filter zu stricken und komme nicht auf das
> Ergebnis vom Rechenbeispiel in Art of Electr.
> a0= 0,497
> a1= 0,274
> a2= 0
> a3=-0,0226
> a4= 0
>
> Wo und in welcher rechnung könnte der Fehler stecken?
> Meine Tabelle:                                    normalisieren:
> a    N    k    sin(x)/x    *Hamming    H'summe/1,21
> --------------------------------------------------------------------
> a0    8    0     1             1             0,8260
> a1    8    1     0,3926             0,3069             0,2535
> a2    8    2     0             0               0
> a3    8    3    -1,178            -0,096            -0,0796
> a4    8    4     0             0             0
>               Hammingsumme→     1,21             1 Kontrollsumme
>
> Meine Rechnung bezieht sich auf AOE dritte Ausgabe, S.421 kurz unter
> Formel 6.20 fürs Hamming-Fenster:
> "The recipe, then, ist to choose ...
>
> Ich hoffe jetzt auch noch inständig, daß mein Schriftformat nicht die
> Tabelle verschiebt.
>
>
> peter

Ich nehme an es handelt sich um ein TP-Filter? -
Gib' mir 'mal die normierte Grenzfrequenz F=fg/fAbtast und die 
Filterordnung.

Ich habe vor langer Zeit ein Programm geschrieben für FIR-Filter.

Gruß Leo

[toc] | [prev] | [next] | [standalone]


#220838

FromRafael Deliano <rafael_deliano@arcor.de>
Date2017-01-14 16:04 +0100
Message-ID<o5deij$r7q$1@dont-email.me>
In reply to#220822
Mich durch die AoE Formeln wursteln mag ich nicht.
Das ist der Ablauf "per Hand" in mathcad:
http://www.embeddedFORTH.de/temp/x.pdf

Die Skalierung horizontale der Achse wurde halbwillkürlich
so gewählt daß bei 0,100,200,300,400 die Koeffizienten
liegen.
Blau ist das Hamming-Fenster, es ist fix skaliert,
denn es würde >400 wieder im Wert ansteigen, was nicht
sinnvoll ist.
Das rote ist sinx/x, das kann ich mit dem Faktor k
von Hand skalieren
Grün ist das gefensterte sinx/x.
Der Wert k wurde von Hand so angepaßt das die beiden
Koeffizienten die Null sein sollen, Null wurden.

Nächster Schritt war die Summe mit Faktor t
auf 1,0 skalieren. Auch einfach t so von Hand geändert
daß es wurde.

Wäre anschaulicher wenn man interaktiver mit solchem
Programm Werte ändert und sieht was die Plots tun.
Ist auch weniger fehlerträchtig.

Man kann die Filterkurve anhand der Koeffizienten
auch per Formel plotten:
http://www.embeddedFORTH.de/temp/y.pdf

MfG  JRD

[toc] | [prev] | [next] | [standalone]


#220843

FromPeter Thoms <dl6lat@darc.de>
Date2017-01-14 18:59 +0100
Message-ID<o5doto$1sm$1@news.albasani.net>
In reply to#220838
Am 14.01.2017 um 16:04 schrieb Rafael Deliano:
> Mich durch die AoE Formeln wursteln mag ich nicht.
> Das ist der Ablauf "per Hand" in mathcad:
> http://www.embeddedFORTH.de/temp/x.pdf
>
> Die Skalierung horizontale der Achse wurde halbwillkürlich
> so gewählt daß bei 0,100,200,300,400 die Koeffizienten
> liegen.
> Blau ist das Hamming-Fenster, es ist fix skaliert,
> denn es würde >400 wieder im Wert ansteigen, was nicht
> sinnvoll ist.
> Das rote ist sinx/x, das kann ich mit dem Faktor k
> von Hand skalieren
> Grün ist das gefensterte sinx/x.
> Der Wert k wurde von Hand so angepaßt das die beiden
> Koeffizienten die Null sein sollen, Null wurden.
>
> Nächster Schritt war die Summe mit Faktor t
> auf 1,0 skalieren. Auch einfach t so von Hand geändert
> daß es wurde.
>
> Wäre anschaulicher wenn man interaktiver mit solchem
> Programm Werte ändert und sieht was die Plots tun.
> Ist auch weniger fehlerträchtig.
>
> Man kann die Filterkurve anhand der Koeffizienten
> auch per Formel plotten:
> http://www.embeddedFORTH.de/temp/y.pdf
Hallo,

vielen Dank.

a) meine eintackerte Formel für s(x)/x hatte einen Schuß und
b) zum Normalisieren ist nur der |Betrag| von V100 und V200 zugelassen, ok.

Wie kommst du auf die Formel [(|V100|+|V300|)*2+V0]*t=1?
Insbesonders verwundert mich der Faktor 2 am Abschnitt (|V100|+|V300|)*2

Im AoE lese ich nur folgende Formel aus dem Text: (V100+V300+V0)/t=1
Mache ich einen weiteren Fehler, oder muß ich besser AoE etwas ergänzen?


peter

[toc] | [prev] | [next] | [standalone]


#220847

FromRafael Deliano <rafael_deliano@arcor.de>
Date2017-01-14 19:21 +0100
Message-ID<o5dq3s$6c4$1@dont-email.me>
In reply to#220843
> Wie kommst du auf die Formel [(|V100|+|V300|)*2+V0]*t=1?

Ich habe keinen Betrag.
Eigentlich ist es nur schnell hingetippt
die Summe aller (aktiven) 9 Koeffizienten.
Und auch nur Kosmetik: das Tiefpaß-Filter soll halt
Gain=1 haben.

> AoE

Ist kein Buch über digitale Signalverarbeitung.
   Würde als Einführung immer noch Bellanger empfehlen.
3. edition habe ich noch nicht gelesen,
die alte 2. die ich habe ist billig zu haben:
https://www.amazon.de/gp/offer-listing/0471921017/ref=sr_1_1_olp?ie=UTF8&qid=1484417921&sr=8-1&keywords=bellanger+signal+processing

MfG JRD

[toc] | [prev] | [next] | [standalone]


#220894

FromPeter Thoms <dl6lat@darc.de>
Date2017-01-15 00:53 +0100
Message-ID<o5edli$98l$1@news.albasani.net>
In reply to#220847
Am 14.01.2017 um 19:21 schrieb Rafael Deliano:
>> Wie kommst du auf die Formel [(|V100|+|V300|)*2+V0]*t=1?
>
> Ich habe keinen Betrag.
> Eigentlich ist es nur schnell hingetippt
> die Summe aller (aktiven) 9 Koeffizienten.
> Und auch nur Kosmetik: das Tiefpaß-Filter soll halt
> Gain=1 haben.
>
>> AoE
>
> Ist kein Buch über digitale Signalverarbeitung.
>   Würde als Einführung immer noch Bellanger empfehlen.
> 3. edition habe ich noch nicht gelesen,
> die alte 2. die ich habe ist billig zu haben:
> https://www.amazon.de/gp/offer-listing/0471921017/ref=sr_1_1_olp?ie=UTF8&qid=1484417921&sr=8-1&keywords=bellanger+signal+processing
Hallo,

komisch.
Ich murks gerade auf Taschenrechner und Libreoffice rum und beide sind 
sich zumindest einig.
Offensichtlich muß ich irgendwie systematisch etwas falsch backen.

Im Moment steht bei mir in seltsamer Weise
V(0):   ax=wx=1 => vx=1*t
V(100): ax=0,6366 und wx=0,7816 => vx=0,4975*t
V(300): ax=-0,2122 und wx=0,0818 => vx=-0,01736*t

Nach meinen Zahlen wäre t = 0,5101 = 1 / ( 1 + 2 * ( 0,4975 - 0,01736 ))
und ich stehe damit etwas abseits deiner Zahlen aus x.PDF:

vx(0)=   0,4973; 0,5101
vx(100)= 0,274; 0,2538
vx(300)=-0,023; -0,0417
Ich begreife den Unterschied einfach nicht, das Ergebnis ist aber ähnlich.
Das kann kein Rundungsfehler sein.


peter

[toc] | [prev] | [next] | [standalone]


#220910

FromRafael Deliano <rafael_deliano@arcor.de>
Date2017-01-15 08:20 +0100
Message-ID<o5f7p9$a5r$1@dont-email.me>
In reply to#220894
> Offensichtlich muß ich irgendwie systematisch etwas falsch backen.

Auf meinem Taschenrechner stolperts sichs gerne bei den
Sinusfunktionen darüber was eingestellt: deg / rad / gra.
Deshalb wurstele ich auch lieber mit Mathcad weil man mit
den Plots bessere Übersicht hat.

MfG  JRD



[toc] | [prev] | [next] | [standalone]


#220916

FromPeter Thoms <dl6lat@darc.de>
Date2017-01-15 10:19 +0100
Message-ID<o5fer3$ucv$1@news.albasani.net>
In reply to#220910
Am 15.01.2017 um 08:20 schrieb Rafael Deliano:
>> Offensichtlich muß ich irgendwie systematisch etwas falsch backen.
>
> Auf meinem Taschenrechner stolperts sichs gerne bei den
> Sinusfunktionen darüber was eingestellt: deg / rad / gra.
> Deshalb wurstele ich auch lieber mit Mathcad weil man mit
> den Plots bessere Übersicht hat.
Hallo,

das hatte ich schon am Anfang kontrolliert, aber jetzt hab ichs:
sin(90) ist im LibreOffice 0,894
<patsch>
Ja, vielen Dank!


Peter

[toc] | [prev] | [next] | [standalone]


#220917

FromPeter Thoms <dl6lat@darc.de>
Date2017-01-15 10:45 +0100
Message-ID<o5fgb1$ov4$1@news.albasani.net>
In reply to#220910
Am 15.01.2017 um 08:20 schrieb Rafael Deliano:
>> Offensichtlich muß ich irgendwie systematisch etwas falsch backen.
>
> Auf meinem Taschenrechner stolperts sichs gerne bei den
> Sinusfunktionen darüber was eingestellt: deg / rad / gra.
> Deshalb wurstele ich auch lieber mit Mathcad weil man mit
> den Plots bessere Übersicht hat.
Hallo,

kontrolliert hatte ich es am Anfang.
Jetzt fand ich in der Hamming-Formel 360 Grad für einen Vollkreis und
in sin(x)/x 2*PI() -zu blöd-
Hoffentlich ist das der letzte Fehler


peter

[toc] | [prev] | [next] | [standalone]


#220922

From"horst.d.winzler" <horst.d.winzler@web.de>
Date2017-01-15 11:00 +0100
Message-ID<ee0vhtFpiarU2@mid.individual.net>
In reply to#220917
Am 15.01.2017 um 10:45 schrieb Peter Thoms:
> Am 15.01.2017 um 08:20 schrieb Rafael Deliano:
>>> Offensichtlich muß ich irgendwie systematisch etwas falsch backen.

> Hoffentlich ist das der letzte Fehler

Falsch, jeder Fehler den man beseitigt, ist ein Meilenstein zum Erfolg. 
Nur, wer brauch schon so viele Meilensteine? ;-)

-- 
---hdw---

[toc] | [prev] | [next] | [standalone]


#221035

FromRolf Bombach <rolfnospambombach@invalid.invalid>
Date2017-01-16 22:14 +0100
Message-ID<o5jcvv$e1t$1@dont-email.me>
In reply to#220922
horst.d.winzler schrieb:
> Am 15.01.2017 um 10:45 schrieb Peter Thoms:
>> Am 15.01.2017 um 08:20 schrieb Rafael Deliano:
>>>> Offensichtlich muß ich irgendwie systematisch etwas falsch backen.
>
>> Hoffentlich ist das der letzte Fehler
>
> Falsch, jeder Fehler den man beseitigt, ist ein Meilenstein zum Erfolg. Nur, wer brauch schon so viele Meilensteine? ;-)

Je mehr Milestones ein Projektplan hat, desto besser.

-- 
mfg Rolf Bombach

[toc] | [prev] | [next] | [standalone]


#222424

FromHartmut Kraus <hartmut.melina@web.de>
Date2017-02-03 19:03 +0100
Message-ID<o72gp5$ck2$1@news.albasani.net>
In reply to#220922
Am 15.01.2017 um 11:00 schrieb horst.d.winzler:
> Am 15.01.2017 um 10:45 schrieb Peter Thoms:
>> Am 15.01.2017 um 08:20 schrieb Rafael Deliano:
>>>> Offensichtlich muß ich irgendwie systematisch etwas falsch backen.
>
>> Hoffentlich ist das der letzte Fehler
>
> Falsch, jeder Fehler den man beseitigt, ist ein Meilenstein zum Erfolg.
> Nur, wer brauch schon so viele Meilensteine? ;-)

Gute Frage. Welche Fehler muss ich also noch beseitigen?

-- 
http://www.hkraus.eu/

[toc] | [prev] | [next] | [standalone]


#221028

FromPeter Thoms <dl6lat@darc.de>
Date2017-01-16 20:39 +0100
Message-ID<o5j7hq$bbd$1@news.albasani.net>
In reply to#220847
Am 14.01.2017 um 19:21 schrieb Rafael Deliano:
>> Wie kommst du auf die Formel [(|V100|+|V300|)*2+V0]*t=1?
>
> Ich habe keinen Betrag.
> Eigentlich ist es nur schnell hingetippt
> die Summe aller (aktiven) 9 Koeffizienten.
> Und auch nur Kosmetik: das Tiefpaß-Filter soll halt
> Gain=1 haben.
>
>> AoE
>
> Ist kein Buch über digitale Signalverarbeitung.
>   Würde als Einführung immer noch Bellanger empfehlen.
> 3. edition habe ich noch nicht gelesen,
> die alte 2. die ich habe ist billig zu haben:
> https://www.amazon.de/gp/offer-listing/0471921017/ref=sr_1_1_olp?ie=UTF8&qid=1484417921&sr=8-1&keywords=bellanger+signal+processing
Hallo,

prima!
Mit der Formel zur Normalisierung für
Gain = t (v0 + 2 ( v1 +v2 + v3 + v4 ) ] kann ich jetzt
meine Abhängigkeit vollumfassend verschleiern.

Aus float t=0,54087432662038504000 direkt aus sin(x)/x (ohne Hamming) 
wird bei signed int eine "69".

/**************************************************************
WinFilter version 0.8
http://www.winfilter.20m.com
akundert@hotmail.com

Filter type: Low Pass
Filter model: Rectangular Window
Sampling Frequency: 4 Hz
Cut Frequency: 1.000000 Hz
Coefficents Quantization: 8-bit
***************************************************************/
#define Ntap 9

#define DCgain 128

__int8 fir(__int8 NewSample) {
     __int8 FIRCoef[Ntap] = {
             0,
           -14,
             0,
            44,
            69,
            44,
             0,
           -14,
             0
     };

     static __int8 x[Ntap]; //input samples
     __int16 y=0;            //output sample
     int n;

     //shift the old samples
     for(n=Ntap-1; n>0; n--)
        x[n] = x[n-1];

     //Calculate the new output
     x[0] = NewSample;
     for(n=0; n<Ntap; n++)
         y += FIRCoef[n] * x[n];

     return y / DCgain;
}

Herzlichen Dank
peter

[toc] | [prev] | [next] | [standalone]


#222407

FromPeter Thoms <dl6lat@darc.de>
Date2017-02-03 16:45 +0100
Message-ID<o728jj$dfj$1@news.albasani.net>
In reply to#220847
Am 14.01.2017 um 19:21 schrieb Rafael Deliano:
...
>
>> AoE
>
> Ist kein Buch über digitale Signalverarbeitung.
>   Würde als Einführung immer noch Bellanger empfehlen.
> 3. edition habe ich noch nicht gelesen,
> die alte 2. die ich habe ist billig zu haben:
> https://www.amazon.de/gp/offer-listing/0471921017/ref=sr_1_1_olp?ie=UTF8&qid=1484417921&sr=8-1&keywords=bellanger+signal+processing
Hallo,

sowas habe ich jetzt.

Mein Problem ist jetzt, dass ich mich daran schwer gewöhnen muß bzw. nur 
schwer gewöhnen kann. Naja, puhh ...

Meine zusammengestoppelten Gedankenstützen werde ich für das Buch wohl 
reichlich erweitern müssen: adaptive Filter klingt zu interessant.


peter

[toc] | [prev] | [next] | [standalone]


#222422

FromRafael Deliano <rafael_deliano@arcor.de>
Date2017-02-03 17:42 +0100
Message-ID<o72bqi$abn$1@dont-email.me>
In reply to#222407
>> die alte 2. die ich habe ist billig zu haben:
>> https://www.amazon.de/gp/offer-listing/0471921017/ref=sr_1_1_olp?ie=UTF8&qid=1484417921&sr=8-1&keywords=bellanger+signal+processing

> sowas habe ich jetzt.

Wenn man viel Zeit hat sind die Interviews recht amüsant:
http://ethw.org/Oral-History:Maurice_Bellanger

http://ethw.org/Oral-History:List_of_all_Oral_Histories

MfG JRD

[toc] | [prev] | [standalone]


Back to top | Article view | de.sci.electronics


csiph-web