Forum: Mikrocontroller und Digitale Elektronik Sinusfilter für abgetastetes Signal


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Max (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe mit einem Oszi eine Spannung aufgenommen (siehe Foto, nicht von 
Skala links irritieren lassen, hatte mich nur verschriebem. Das W soll 
ein V sein). Die Werte habe ich entsprechend in einer .csv Datei 
vorliegen.

Wie man auf dem Bild sehen kann, ist der Sinus zwar zu erkennen, 
allerdings gibt es doch ziemlich viele Störungen und Ausreißer.
Ich würde daher gerne einen Sinus Filter drüber legen, um die 
Grundschwingung zu erhalten.
Ich hatte ursprünglich überlegt, in Simulink ein LC-Filter zu 
implementieren. Ich bin dort allerdings stecken geblieben, weil ich 
nicht wusste, wie ich die diskreten Daten als Quelle in die Simulation 
geben kann.

Falls jemand eine Idee hat, gerne auch in eine andere Richtung als 
Simulink, wäre ich sehr dankbar!

Gruß,
Max

von Bernhard S. (gmb)


Lesenswert?

Mit Matlab oder Octave kannst du *.csv Daten einlesen und dann ein 
beliebiges Filter drüber legen.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Max schrieb:
> Ich würde daher gerne einen Sinus Filter drüber legen, um die
> Grundschwingung zu erhalten.

Ja, aeh - jetzt das Filter nur fuer deine aufgenommenen Daten oder so 
richtig in Echt als (Analog)Schaltung?

Gruss
WK

von A. Z. (donvido)


Lesenswert?

Simulink hat einen FromWorkspace Block.
Damit kann man so ziemlich am einfachsten jedes x-beliebige Signal in 
die Simulation einspeisen.

von Max A. (max_abter)


Lesenswert?

Dergute W. schrieb:
> jetzt das Filter nur fuer deine aufgenommenen Daten oder so
> richtig in Echt als (Analog)Schaltung

Im Nachhinein für bereits aufgenommene Daten

von Max A. (max_abter)


Lesenswert?

A. Z. schrieb:
> Simulink hat einen FromWorkspace Block.
> Damit kann man so ziemlich am einfachsten jedes x-beliebige Signal in
> die Simulation einspeisen.

Den FromWorkspace Block kenne ich, allerdings kann ich diesen nicht 
direkt mit dem LC-Glied verbinden. Ich benutze die L und C Glieder aus 
der Simscape/ Electrical-Bib. Der FromWorkspace Block ist ja aus der 
regulären Simulink-Bib und die lassen sich nicht direkt verbinden. Ich 
müsste dieses Signal noch über eine Spannungsquelle oder so laufen 
lassen.
Ich muss zugeben, dass ich kein großer Experte in Simulink bin, deshalb 
übersehe ich vielleicht auch was...

von A. Z. (donvido)


Lesenswert?

Du könntest auch einfach in Simulink einen "Transfer Fcn" Block oder 
einen "Discrete Transfer Fcn" Block verwenden. Dann musst du nicht den 
Umweg über Simscape machen.

Du könntest aber auch einfach in Matlab die Funktion "filter" verwenden.

Die Koeffizienten b und a müsstest du dir in beiden Fällen entweder von 
Hand oder zum Beispiel mit der Funktion "butter" (erfordert Signal 
Processing Toolbox) berechnen.

Kleines Beispiel:
1
x=1:0.01:10;
2
y=sin(4*x)+rand(size(x));
3
4
[b,a]=butter(2,0.05);
5
y_filt=filter(b,a,y);
6
7
plot(x,y);
8
hold on;
9
plot(x,y_filt);

: Bearbeitet durch User
von Klaus R. (klara)


Lesenswert?

Max schrieb:
> ich habe mit einem Oszi eine Spannung aufgenommen (siehe Foto, nicht von
> Skala links irritieren lassen, hatte mich nur verschriebem. Das W soll
> ein V sein). Die Werte habe ich entsprechend in einer .csv Datei
> vorliegen.
>
> Wie man auf dem Bild sehen kann, ist der Sinus zwar zu erkennen,
> allerdings gibt es doch ziemlich viele Störungen und Ausreißer.
> Ich würde daher gerne einen Sinus Filter drüber legen, um die
> Grundschwingung zu erhalten.

Die Grundschwingung liefert auch Dein Oszi mit einer FFT.
mfg Klaus

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.