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

Zero Padding - Wer zum Henker hat Recht??

 

elcachon
Forum-Century

Forum-Century


Beiträge: 190
Anmeldedatum: 03.05.11
Wohnort: ---
Version: 7.6.0(R2008a), 7.8.0(R2009a)
     Beitrag Verfasst am: 27.09.2011, 08:57     Titel: Zero Padding - Wer zum Henker hat Recht??
  Antworten mit Zitat      
Hallo!
Ja ich weiß, dass dieses Thema schon x - mal durchgekaut wurde, aber leider behauptet jeder (auch in diesem Forum) etwas anderes?

Mir ist klar, dass eine Haupaufgabe des paddings ist, die aktive FFT Länge auf eine 2er Potenz anzugleichen, macht ja auch sinn!

Aber wird jetzt die Frequenzauflösung erhöht ja oder nein??
Manche sagen ja, andere wiederrum sagen nein, da um eine höhere Aulösung zu erhalten mehr Signalinformation benötigt wird!

Was ist also richtig?????

Und ist Zero-Padding dann überhaupt sinnvoll, wenn ich z.B mein Signal (evtl. durch Fensterung) gleich von vornherein auf einer 2er Potenz festlege??
Wenn sich die Frequezauflösung erhöhen würde, dann macht es Sinn, oder bin ich da auf dem Holzweg???

Vielen Dank schonmal für eure Antworten!!

Lg elcachon!
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: 27.09.2011, 09:44     Titel:
  Antworten mit Zitat      
Das lässt sich doch relativ einfach überprüfen. Die Frequenzauflösung oder diskrete Schrittweite des Spektrums ist:

df = fa/N mit fa = Abtastfrequenz und N = Anzahl Messwerte

Wenn N größer wird, wird df kleiner...also ist die Frequenzauflösung höher. Wenn die Signallänge ohnehin schon eine 2er Potenz ist, braucht man es nicht mehr. Will man dennoch eine höhere Auflösung haben, sollte man eher die Messzeit und damit die Anzahl an realen Messwerten erhöhen, als dass durch Zeropadding zu realisieren. Denn durch die Nullen gibt es ja keine neue Informationen.
Private Nachricht senden Benutzer-Profile anzeigen
 
elcachon
Themenstarter

Forum-Century

Forum-Century


Beiträge: 190
Anmeldedatum: 03.05.11
Wohnort: ---
Version: 7.6.0(R2008a), 7.8.0(R2009a)
     Beitrag Verfasst am: 27.09.2011, 10:07     Titel:
  Antworten mit Zitat      
Hallo DSP,

ich glaub mittlerweile hast du 97% meiner Fragen beantwortet!! Wink

Also das hört sich ziemlich logisch an, danke schon mal! Dacht mir schon, dass es sinnvoller ist mehr messwerte auzunehmen anstatt nullen anzuhängen!!

Neue Frage:(hoffe des geht in Ordnung?)

Wie ist es wenn ich ein bereits diskretisiertes Signal habe und die darin vorkommende höchstmögliche Frequenz kenne, stell ich ja meine abtastfrequenz bezüglich dieser höchsten Frequenz ein, richtig oder?

Wie aber kann ich z.B meine Fensterbreit einstellen, um den Leakage Effekt vermeiden zu können?
Bezieh ich mich da wieder auf die höchste Frequenz oder wie ist das zu realisieren??

lg elcachon
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: 27.09.2011, 10:28     Titel:
  Antworten mit Zitat      
Zitat:
Wie ist es wenn ich ein bereits diskretisiertes Signal habe und die darin vorkommende höchstmögliche Frequenz kenne, stell ich ja meine abtastfrequenz bezüglich dieser höchsten Frequenz ein, richtig oder?


Falsch...das Signal wurde mit einer FESTEN Abtastfrequenz diskretisiert. Dabei muss man das Abtasttheorem beachten, dass besagt:

Die Abtastfrequenz fa muss mindestens doppel so hoch sein, wie die maximale Frequenz f in dem Signal selbst. fa >= 2 * f

Wenn du die Abtastfrequenz ändern willst, geht das nur durch down- oder upsampling. Dadurch ändert sich ja auch die Anzahl der Messwerte N. Um Leakage zu vermeiden, kann man also nur das N variieren, da fa ja fest ist. Leakage tritt dann auf, wenn die Signalfrequenzen kein vielfaches von df sind. Oder im Zeitbereich...das Messfenster enthält keine vollen Perioden des Signals. Wenn man nur eine Frequenz hat, wäre das ja einfach. So bald es aber viele Überlaguerungen gibt, kann man nicht mehr sagen, ob ich im Messfenster volle Perioden habe. Deshalb nimmt man dann eine Fensterfunktion um Leakage zu minimieren. Die Fensterlänge wählt man dann entsprächend der Messzeit, bzw. der Anzahl von Messwerten.
Private Nachricht senden Benutzer-Profile anzeigen
 
elcachon
Themenstarter

Forum-Century

Forum-Century


Beiträge: 190
Anmeldedatum: 03.05.11
Wohnort: ---
Version: 7.6.0(R2008a), 7.8.0(R2009a)
     Beitrag Verfasst am: 27.09.2011, 11:03     Titel:
  Antworten mit Zitat      
Zitat:

das Signal wurde mit einer FESTEN Abtastfrequenz diskretisiert


Genau das ist eben nicht so! Bei meinen Signalen ist meistens die Abtastfrequenz VARIABEL von einem Simulator gewählt worden!
In den Bereichen, in denen sich das Signal ändert wird mehr abgetastet, an den anderen Stellen weniger!!

Aber ich weiß trotzdem, dass meine Frequenzen in dem diskretisierten Signal in einem Bereich von z.B 150k - 30MHz liegen.

Dann pass ich doch beim resampling meine neue, in diesem Fall jetzt FESTE Abtastfrequenz bezüglich der 30MHz an oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
elcachon
Themenstarter

Forum-Century

Forum-Century


Beiträge: 190
Anmeldedatum: 03.05.11
Wohnort: ---
Version: 7.6.0(R2008a), 7.8.0(R2009a)
     Beitrag Verfasst am: 27.09.2011, 11:25     Titel:
  Antworten mit Zitat      
Hey DSP,
noch kurz was anderes!

Hab folgendes Beispiel für ein Blackman Fenster gefunden!
Code:

% Add a "Blackman window"
N = 64;
zpf = 100;                       % Zero- padding - factor
w = blackman(N)'; % w zu Zeilenvektor, da blackman algorithmus spaltenvektor ausgibt
% w = .42-.5*cos(2*pi*(0:N-1)/(N-1))+.08*cos(4*pi*(0:N-1)/(N-1)); if you
% don´t have the signal processing toolbox

%% Plot of the Blackman Window
figure(3);
subplot(3,1,1); plot(w,'*'); title('The Blackman Window');
xlabel('Time (samples)'); ylabel('Amplitude');
text(-8,1,'a)');

% Also show the window transform -->
xw = [w,zeros(1,(zpf-1)*N)]; % zero-padded window (col vector)
Xw = fft(xw);                 % Blackman window transform
nfft = zpf * N;               % Anzahl der anzängenden Nullen
spec = 20*log10(abs(Xw));     % Spectral magnitude in dB
spec = spec - max(spec);      % Usually we normalize to 0 db max
spec = max(spec,-100*ones(1,nfft)); % clip to -100 dB
fni = 0:1.0/nfft:1-1.0/nfft;        % Normalized frequency axis!
subplot(3,1,2); plot(fni,spec,'-'); axis([0,1,-100,10]); grid;
xlabel('Normalized Frequency (cycles per sample))');
ylabel('Magnitude (dB)');
text(-.12,20,'b)');

% Replot interpreting upper bin numbers as negative frequencies:
nh = nfft/2;
specnf = [spec(nh+1:nfft),spec(1:nh)];  % see also Matlab's fftshift()
fninf = fni - 0.5;
subplot(3,1,3);
plot(fninf,specnf,'-'); axis([-0.5,0.5,-100,10]); grid;
xlabel('Normalized Frequency (cycles per sample))');
ylabel('Magnitude (dB)');
text(-.6,20,'c)')


was machen den genau diese zwei zeilen??
Zitat:
Code:

spec = spec - max(spec);      % Usually we normalize to 0 db max
spec = max(spec,-100*ones(1,nfft)); % clip to -100 dB
 


Und wie wichtig sind sie für weitere Anwendungen??
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: 27.09.2011, 11:27     Titel:
  Antworten mit Zitat      
Aha...ok. Das hättest du ja mal dazuschreiben können. Die variable Simulationschritteweite hat aber nichts mit der Abtastfrequenz zu tun Wink.
Dennoch gilt immer noch das Abtasttheorem. Wenn das Signal also richtig rekonstruiert werden soll, muss fa >= 2*fmax sein. fmax ist hier 30 MHz.

Edit: zu der anderen Frage: Das Signal wird einfach auf 1 (= 0 dB) skaliert und auf -100 dB begrenzt. Da es ja nur eine Skalierung ist, kann man es auch weglassen.
Private Nachricht senden Benutzer-Profile anzeigen
 
elcachon
Themenstarter

Forum-Century

Forum-Century


Beiträge: 190
Anmeldedatum: 03.05.11
Wohnort: ---
Version: 7.6.0(R2008a), 7.8.0(R2009a)
     Beitrag Verfasst am: 27.09.2011, 12:08     Titel:
  Antworten mit Zitat      
ja ich weiß, sorry!
meistens fallen dir halt die wichtigen Sachen immer zum Schluss ein!

Danke dir, denk ich habs verstanden!
Private Nachricht senden Benutzer-Profile anzeigen
 
Dr. Knopf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2011, 16:28     Titel:
  Antworten mit Zitat      
Natürlich erhöht Zeropadding die Frequenzauflösung!

Und es ist nicht immer sinnvoll die Messdauer zu erhöhen, das bringt ja etwa bei einem periodischen Signal auch keinen Informationsgewinn.

Die Redundanz die dann im Spektrum steckt stört ja nicht, aber häufig wird ja eine Darstellung im Spektralbereich verwendet um eine Eigenfrequenz oder eine harmonische Erregung zu Messen und dann hilft Zeropadding eben sehr; etwa ist die Netzfrequenz mittags wenn gekocht wird etwas unter 50 Hz, ich habe so 49,97 Hz gemessen, nachmittags liegt sie dann über 50 Hz, im Mittel müssen es aber exakt 50 Hz sein. 49,97 Hz lassen sich eigentlich nur mit Zeropadding oder einem anderen Verfahren das mir die Frequenzauflösung erhöht sinnvoll messen.

Ich würde ja dann als cut off Frequenz 100 Hz einstellen --> f_sample=200Hz. Als Auflösung mindestens delta_f=0.01 Hz, womit mein Datenblock 20000 Werte enthält. D.h. 100 s warten für die Messung. Das geht mit Zeropadding schneller!
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 12.10.2011, 16:50     Titel:
  Antworten mit Zitat      
Dr. Knopf hat Folgendes geschrieben:
Natürlich erhöht Zeropadding die Frequenzauflösung!


Die erhöhte Frequenzauflösung bedeutet aber nicht automatisch Informationsgewinn.

Dr. Knopf hat Folgendes geschrieben:

Und es ist nicht immer sinnvoll die Messdauer zu erhöhen, das bringt ja etwa bei einem periodischen Signal auch keinen Informationsgewinn.


Da wir von realen Signalen ausgehen bringt im Sinne einer Mittelung die längere Aufnahmezeit eben doch einen Informationsgewinn. Man wird eine Eigenfrequenz nicht durch Zeropadding "genauer" bestimmen können.
_________________

>> why
The computer did it.
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: 12.10.2011, 16:59     Titel:
  Antworten mit Zitat      
Wenn es um die genauere Bestimmung einzelner lokaler Maxima geht, stimme ich dir zu. Was ist aber, wenn man eben nicht nur die Netzfrequenz ermitteln möchte, sondern das Spektrum/Verhalten eines Systems bei unterschiedlichsten Anregungen untersuchen will. Man interpoliert zwar durch die Nullen weitere Stützstellen, was aber nicht unbedingt einen Informationsgewinn über die Systemeigenschaften bringen muss. Da gilt dann eher...größeres Messfenster, genauere Informationen Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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.