<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Signal - Peak Werte mit C Algorithmus ermitteln!?]]></title><description><![CDATA[<p>Ich habe ein Signal (in einem float array) gespeichert. Dieses hat im Idealfall (der aber so gut wie nie vorkommt) sinusförmigen Charakter.</p>
<p>Gibt es einen ( c ) Alogrithmus der mir die peaks berechnet? Ich bin mir nicht so sicher ob es mir möglich ist einen halbwegs effizienten Algorithmus selber zu erstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154987/signal-peak-werte-mit-c-algorithmus-ermitteln</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 04:23:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154987.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Aug 2006 14:43:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Signal - Peak Werte mit C Algorithmus ermitteln!? on Tue, 01 Aug 2006 14:43:44 GMT]]></title><description><![CDATA[<p>Ich habe ein Signal (in einem float array) gespeichert. Dieses hat im Idealfall (der aber so gut wie nie vorkommt) sinusförmigen Charakter.</p>
<p>Gibt es einen ( c ) Alogrithmus der mir die peaks berechnet? Ich bin mir nicht so sicher ob es mir möglich ist einen halbwegs effizienten Algorithmus selber zu erstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108615</guid><dc:creator><![CDATA[dsp]]></dc:creator><pubDate>Tue, 01 Aug 2006 14:43:44 GMT</pubDate></item><item><title><![CDATA[Reply to Signal - Peak Werte mit C Algorithmus ermitteln!? on Tue, 01 Aug 2006 15:38:22 GMT]]></title><description><![CDATA[<p>DIE Peaks? Wieso DIE? Meinst Du nicht DEN Peak?</p>
<p>Üblicherweise ist der Peak definiert als max(array(1...n)). Es gibt also nur einen Peakwert. Außer Du verwendest eine eigene Definition dafür.</p>
<p>Grundsätzlich bleibt Dir nur die Möglichkeit, mit einer Schleife durch das Array zu rauschen und jeden Wert zu prüfen, ob er max ist. Am Ende bleibt dann der max-Wert erhalten.</p>
<p>[Aus Performancegründen bietet es sich vielleicht an, diesen Vergleich bereits beim Befüllen des Arrays zu machen, und nicht hinterher, vor allem wenn es sich um einen Ringpuffer o.ä. handelt. Aber diese Frage lässt sich basierend auf den von Dir gegebenen Informationen nicht beantworten.]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108669</guid><dc:creator><![CDATA[Marc++us]]></dc:creator><pubDate>Tue, 01 Aug 2006 15:38:22 GMT</pubDate></item><item><title><![CDATA[Reply to Signal - Peak Werte mit C Algorithmus ermitteln!? on Tue, 01 Aug 2006 17:07:35 GMT]]></title><description><![CDATA[<p>Nein, Mehrzahl passt schon, ich hab mich anscheinend etwas ungünstig ausgedrückt.</p>
<p>Ich suche nicht das absolute maxima (obwohl es dann dabei ist) sondern alle relativen Maxima.</p>
<p>Nur die definition ist nicht so toll deswegen hab ich das sinus bsp herbeigezogen.<br />
Ich suche quasi die Stellen wo das Signal seine max. Amplitude erreicht. Nur leider ist das nicht (wie beim sinus) immer die gleiche sondern sie ändert sich.</p>
<p>(Die Hüllkurve dieser relative maxima ähnelt der Ladekurve eines Kondensators - Nur eine Bemerkung das man sich da was vorstellen kann)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108731</guid><dc:creator><![CDATA[dsp]]></dc:creator><pubDate>Tue, 01 Aug 2006 17:07:35 GMT</pubDate></item><item><title><![CDATA[Reply to Signal - Peak Werte mit C Algorithmus ermitteln!? on Tue, 01 Aug 2006 17:40:07 GMT]]></title><description><![CDATA[<p>Grundsätzlich lassen sich die relativen Maxima definieren durch folgende Bedingung:</p>
<p>x(n-1) &lt;= x(n) &gt; x(n+1)</p>
<p>(Ob diese Bedingung für Dein Signal nachher gut genug ist, muß sich noch zeigen, was bei Rauschen passiert... vermutlich wird ein Größer/Kleiner-Vergleich zu scharf sein und Du mußt einen Vergleich mit Totzone durchführen.)</p>
<p>Also, 2. Array für die Peaks anlegen.</p>
<pre><code>// Pseudo
peakcounter = 0;
peakvalue = daten[0]
for (i = 1; i &lt; N; i++)
{
   if (daten[i] &lt; peakvalue)
   {  // sind gerade über ein Maximum gerauscht
      peaks[peakcounter] = i - 1;
      peakcounter++;
   }
   peakvalue = daten[i];
}
</code></pre>
<p>Achtung: peaks[] enthält jeweils den Index der Peak-Datenwerte, nicht die Werte selbst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108748</guid><dc:creator><![CDATA[Marc++us]]></dc:creator><pubDate>Tue, 01 Aug 2006 17:40:07 GMT</pubDate></item><item><title><![CDATA[Reply to Signal - Peak Werte mit C Algorithmus ermitteln!? on Thu, 03 Aug 2006 08:35:04 GMT]]></title><description><![CDATA[<p>Je nach Anwendung kann sowas aber auch zu instabil sein. Zum Beispiel bei Börsenkursen, die zucken ja ständig hoch und runter. Trotzdem gibt es sowas wie höchste und tiefste Punkte auf der Kurve.</p>
<p>Ein andere Möglichkeit wäre die Kurve (stückweise) zu interpolieren. Zum Beispiel mit einem Cosinus und dann dessen Höchst/Tiefstpunkte auszugeben. Oder, wenn es wirklich extrem viele Daten sind: Fourier-Trafo und dann hohe Frequenzen wegschneiden, das glättet auch.</p>
<p>MfG Jester</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1109691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109691</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Thu, 03 Aug 2006 08:35:04 GMT</pubDate></item><item><title><![CDATA[Reply to Signal - Peak Werte mit C Algorithmus ermitteln!? on Thu, 03 Aug 2006 11:54:32 GMT]]></title><description><![CDATA[<p>Wen du locale maxima finden willst auf ein kurve die noch ziemlich verauscht ist, kann man die kurve Tiefpass filtern (glaetten), die Filterfrequenz haengt von der gewuenschten Aufloesung fuer die localen maximas ab. (floating average Filter sind am einfachsten, rekursiv filter besser, aber komplizierten zu erstellen, leichter instabil)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1109849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109849</guid><dc:creator><![CDATA[Flow_cplus_off]]></dc:creator><pubDate>Thu, 03 Aug 2006 11:54:32 GMT</pubDate></item></channel></rss>