WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Signal glätten mit filter

 

t.b.
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 02.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 09:43     Titel:
  Antworten mit Zitat      
Ich habs selbst herausgefunden. Du hast in dem Code statt N-1 nur N gehabt. Es müsste also heißen:

Code:
N=64;
alpha=2.5;
for n=0:N-1
    w(n+1) = exp(-0.5 * (alpha* (n-((N-1)/2))/((N-1)/2))^2 );
end


Vielen dank trotzdem für deine Hilfe.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 30.08.2011, 09:52     Titel:
  Antworten mit Zitat      
Bei mir liegen die beiden Fenster exakt übereinander...

Code:

N=64;
alpha=2.5;
for n=0:N-1
     w(n+1) = exp(-0.5 * (alpha* (n-((N-1)/2))/(N/2))^2 );
end
v=gausswin(N,alpha)';
plot(w);hold on;plot(v,'r*')
 


Wenn ich im Nenner auch (N-1)/2 einsetze, sind sie bei mir nicht gleich Question

gausswin.JPG
 Beschreibung:

Download
 Dateiname:  gausswin.JPG
 Dateigröße:  45.38 KB
 Heruntergeladen:  768 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
t.b.
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 02.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 10:25     Titel:
  Antworten mit Zitat      
ich habe deinen Code ausgeführt, also

Code:
N=64;
alpha=2.5;
for n=0:N-1
     w(n+1) = exp(-0.5 * (alpha* (n-((N-1)/2))/(N/2))^2 );
end
v=gausswin(N,alpha)';
plot(w);hold on;plot(v,'r*')


und bekomme folgenden Plot:



Question Question Question

die sind doch nicht gleich
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 30.08.2011, 10:37     Titel:
  Antworten mit Zitat      
Sind sie nicht...aber auf meinem Bild schon. Die einzige Erklärung, die mir jetzt noch einfällt, dass in meiner alten Matlabversion das Gausswin anders berechnet wird (bei mir ist die Formel für die Koeffizienten in der Doku nämlich auch anders angegeben, als in der Doku unter mathworks). Wenn ich die Formel abändere, sind die Unterschiede bei mir gravierend und nicht nur so minimal wie bei dir.

Wenn es jetzt aber so geht, ist ja alles i.O. Man muss ja nicht immer alles verstehen.
Private Nachricht senden Benutzer-Profile anzeigen
 
t.b.
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 02.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 11:49     Titel:
  Antworten mit Zitat      
kannst du mir vielleicht sagen, welche formel in deiner hilfe steht?
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 30.08.2011, 12:01     Titel:
  Antworten mit Zitat      
Im Zähler der von dir angegeben Formel (identisch mit der Mathworks Doku) steht in dem Teil (...)^2 halt nicht nur n sondern n-N/2.

Wenn man das aber nach der Doku so programmiert und z.B. N=64 wählt, kommen am Ende 65 Werte raus. Daher muss man das etwas umformen Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
t.b.
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 02.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 13:54     Titel:
  Antworten mit Zitat      
Danke erstmal.

ich habe aber noch ne Frage zu:

Zitat:
Damit der Verstärkungsfaktor des Filters = 1 ist...ansonsten würde er das Signal verstärken.


Ich verstehe eine Sache nicht so ganz. Für mich ist der Ausdruck normaliseren nicht so ganz klar. Ein Vektor wird normalisiert, indem er mit dem dem Kehrwert seiner Norm multipliziert wird, also  ||w||=\frac{1}{ | w | }  w . Die Norm davon ist 1, also eigentlich ||  ||w||  || =1 .

Habe das auch mal ausbprobiert und die Zahlen passen. Question Question Question
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 30.08.2011, 14:14     Titel:
  Antworten mit Zitat      
Ich bin kein Mathematiker...normalisieren heißt hier, jeden Koeffizienten durch die Summe aller Koeff. teilen.

Code:

>> w = gausswin (20);
>> sum(w)

ans =

    9.9043
 


Der Verstärkungsfaktor ist damit 9.9 und nun schau dir bitte das gefilterte Signal mit und ohne Normalisierung an.
Private Nachricht senden Benutzer-Profile anzeigen
 
Studi123
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 26.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2018, 16:27     Titel:
  Antworten mit Zitat      
lilov hat Folgendes geschrieben:


Fs = 25; % sampling frequency
t = (0:1/Fs:10-1/Fs)';
f = 1; % Hz
WindowSize = 3;

y = 10*sin(2*pi*f*t); %signal
noise = 5*rand(length(y),1)-5/2; % noise
ynoisy = y+noise; %noisy signal

Yfiltered = conv(y,ones(WindowSize,1)./WindowSize,'same');

% Plots
plot(t,ynoisy)
hold on
plot(t,Yfiltered,'r')



Hi lilov, ich bin bei meinem aktuellen Problem gerade auf deinen Beitrag gestoßen und wollte mal fragen woher das Fs = 25 kommt
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.06.2018, 17:06     Titel:
  Antworten mit Zitat      
Hallo Studi123,

lilov war 2014 zum letzten Mal hier eingeloggt. Ich bezweifele, dass Deine Nachricht gelesen wird.

Die Angabe von Fs ist die Sampling-Frequenz, wie der Kommentar erklärt. Woher die kommt ist schwer zu sagen, denn sie muss halt bekannt sein. Wenn man nur einen Vektor aus Zahlen hat, kann man sie nicht im Nachhinein bestimmen. Aber man kann sie ja während der Messung notieren.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.