Forum: Mikrocontroller und Digitale Elektronik Sinusschwinung normalisieren


von Johannes (Gast)


Lesenswert?

Hi @ all

Ich habe eine Signal abgetastet. Dieses besteht aus 700 Abtastwerten. 
Das Signal  besteht aus mehreren Sinusperioden, die unterschiedliche 
Amplituden haben. Nun möchte ich das Signal normalisieren (alle 
Amplituden gleich hoch). Jedoch weiß ich nicht wie ich es anstellen 
soll.

Könnt ihr mir einige Lösungsvorschläge geben.

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Auf welcher Basis: Mikrocontroller? DSP? PC? Analoge-Schaltung wohl 
nicht...

von Timmo H. (masterfx)


Lesenswert?

Also ich würde erstmal die minimale oder die maximale Amplitude suchen 
und anschließend alle Minima bzw. Maxima auf diesen Wert bringen. Das 
Problem hierbei dürften allerdings die Zwischenschritten sein, denn 
irgendwo muss die Amplitude ja zu- oder abnehmen. Entwerder du belässt 
sie so, dann hast du allerdings einen höheren Klirrfaktor oder du 
interpolierst sie irgendwie.

Aber wenn ich mir das mal so überlege... wenn es ein sauberer Sinus ist, 
wieso dann überhaupt sowas machen, schließlich könntest du den Sinus 
dann ja selbst berechnen. Was genau ist also der Hintergrund für dein 
Vorhaben?

von Johannes (Gast)


Lesenswert?

µC oder PC

von Johannes (Gast)


Lesenswert?

Anschließend muss ich eine FFT machen. Daher wird das Signal voher 
normalisiert.

Das mit der Maximumsuche ist zu ungenau. Es muss doch bessere Verfahren 
geben

von Peter (Gast)


Lesenswert?

Hallo,
wenn es eine sauberer Sin was macht dann die FFT für einen sinn, da kann 
man ja gleich den Abstand zwischen 2 Nulldurchgängen ermitteln und gut 
ist.

von Bernd L. (berndl)


Lesenswert?

>Nun möchte ich das Signal normalisieren (alle Amplituden gleich hoch)

...

>Das mit der Maximumsuche ist zu ungenau. Es muss doch bessere Verfahren
>geben

Nein! Wenn du "alle Amplituden" gleich hoch setzen willst, ist die 
Maximumsuche und Skalierung mit den interpolierten reziproken Maxima die 
einzige Moeglichkeit und gar nicht ungenau, es findet bloss eine 
unnoetig starke Signalverzerrung statt, aber man kann nicht alles haben.

Es gibt andere, fuer die meisten Zwecke sinnvollere Definitionen der 
Normalisierung, aber die erfuellen nicht, wonach du fragst.

von Bernd L. (berndl)


Lesenswert?

>wenn es eine sauberer Sin was macht dann die FFT für einen sinn, da kann
>man ja gleich den Abstand zwischen 2 Nulldurchgängen ermitteln

Ein Signal "aus mehreren Sinusperioden, die unterschiedliche
Amplituden haben" hat nur sehr entfernte Aehnlichkeit mit einem 
monofrequenten Signal, selbst wenn Johannes Sinusperioden allesamt die 
gleiche Periodendauer haben sollten.

von Norgan (Gast)


Lesenswert?

> Nun möchte ich das Signal normalisieren (alle
> Amplituden gleich hoch)
...
> Anschließend muss ich eine FFT machen. Daher wird das Signal voher
> normalisiert.

Nein. Ich weiß, dass Leute immer anfangen zu kotzen wenn man ihnen 
nahelegt sich nochmal die Grundlagen dessen was sie tun wollen anzutun 
und gar ein Fachbuch zu lesen (das Web ist keins). Ich sag's trotzdem: 
Schau dir mal die Grundlagen der Fouriertransformation, der diskreten 
Fouriertransoformation und der FFT in einem guten Fachbuch an.

von Matthias L. (Gast)


Lesenswert?

>Anschließend muss ich eine FFT machen. Daher wird das Signal voher
>normalisiert.

Warum machst du die nicht vorher?

Da hast du doch danach deine Amplitudeninformation sauber vorliegen...

von Bernd L. (berndl)


Lesenswert?

>Warum machst du die nicht vorher?

Was'n Quatsch! Johannes will das Signal erst nichtlinear verzerren, dann 
fouriertransformieren. Die FFT kann seine Verzerrung nicht ersetzen.

>Da hast du doch danach deine Amplitudeninformation sauber vorliegen...

Noch mehr Quatsch! Johannes hat ein aperiodische Signal. Und aus dessen 
Fouriertransformierter kannst du die Amplitudeninformation -wie auch 
immer du sie im Zeitbereicht definierst- genau gar nicht erhalten, es 
sei denn du bildest die invers Fouriertransformierte der 
Fouriertransformierten. Macht das Spass?

von Johannes (Gast)


Lesenswert?

Hallo wir wollen doch alle mach sachlich bleiben. Ich suche einfach nur 
nach einer Lösung. Ob es für eine Sinn mach oder nicht ist doch egal. 
Ihr wisst doch nicht was ich mit dem Signal mache. Mein Chef mein ich 
muss zuerst die Hüllkurve bilden und diese dann dividieren. Jedoch kann 
ich mir nicht vorstellen das dies damit geht

von Bernd L. (berndl)


Lesenswert?

>Ich suche einfach nur nach einer Lösung

Wofuer? Wenn du alle lokalen Extrema auf einen normierten Wert skalieren 
willst, hast du doch schon eine Loesung vorgeschlagen.

>Mein Chef mein ich muss zuerst die Hüllkurve bilden und diese dann >dividieren. 
Jedoch kann ich mir nicht vorstellen das dies damit geht

Sag es ihm so. Er wird dir sicher gern seinen Platz anbieten, falls du 
recht behalten solltest.

von Hans W. (hans_wurst)


Lesenswert?

Also ich bind zwar nicht "DER" Fachmann auf diesem Gebiet, aber so wie 
ich es verstanden habe, ist ja sein Problem, dass sein Sinus zwar die 
gleiche Zeitdauer hat, aber eben mit unterschiedlichen 
Gleichspannungsanteilen überlagert ist.

Ist es da nicht sinnvoll (bzw. ein Möglichkeit) sich mehrere, einzelne 
Sinusabschnitte zu suchen, dieses mit der FFT zu transformieren und dann 
alle Amplituden der Spektren so anzupassen, dass sie alle eine 
gleichhohe Gleichstromamplitude haben?

Nur so als Ansatz für neue Ideen.....

von Johannes (Gast)


Lesenswert?

Ich kann nicht einfach jeden Maxwert auf einen Wert bringen. Was soll 
ich mit den anderen Abtastwerten machen. Diese muss ich doch auch 
skalieren ansonsten wird das Signal doch verzerrt

von Bernd L. (berndl)


Lesenswert?

>Ich kann nicht einfach jeden Maxwert auf einen Wert bringen. Was soll
>ich mit den anderen Abtastwerten machen. Diese muss ich doch auch
>skalieren ansonsten wird das Signal doch verzerrt

Das, wonach du fragtest, ist eine Verzerrung. Vielleicht erklaerst du 
einmal, was dein Ziel ist und nicht, wie du es erreichen willst.

Es sieht danach aus, dass du eine FFT mit begrenztem Dynamikbereich 
berechnen willst. Dafuer ist der Vorschlag deines Chefs die beste 
Loesung, aber die lehnst du ja ab.

Ich wuerde sagen, Norgan hat es oben auf den Punkt gebracht.

von Johannes (Gast)


Lesenswert?

Wieso lehne ich diese ab. Ich weiß blos kann mir das blos nicht bidlich 
vorstellen. Zudem habe ich die Probleme die Hüllkurve zu bilden.

von Bernd L. (berndl)


Lesenswert?

>Wieso lehne ich diese ab.

Ist das eine Frage? Weil du schriebst: "Jedoch kann ich mir nicht 
vorstellen das dies damit geht"

>Ich weiß blos kann mir das blos nicht bidlich vorstellen.

Du meinst "Jedoch kann ich mir nicht vorstellen wie dies damit geht"?
Es ist auch nicht moeglich, dir was bildlich zu erklaeren, weil du weder 
dein Problem annaehernd hinreichend beschrieben hast, noch einen 
Screenshot der Daten um die es geht oder aehnliches geliefert hast. Wenn 
du die Antworten oben gelesen haettest, waere die aufgefallen, dass 
manche deine abenteuerliche Beschreibung des Signals als variierende 
Offsets oder -warum auch immer- als harmonisches Sinussignal 
interpretieren.

>Zudem habe ich die Probleme die Hüllkurve zu bilden.

Warum? Laesst dich dein Chef ein Problem loesen, von dem er selbst keine 
Ahnung hat? Ist dein Algorithmus instabil? Weisst du nicht, welchen 
Algorithmus du verwenden sollst? Hast du Normans Rat befolgt? Liste mal 
auf, welche Quellen du zum Thema Huellkurve gesichtet hast. Und wenn 
mikrokontroller.net deine einzige Quelle ist, dann gehab dich wohl.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.