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

Samplerate eines Bildes ermitteln

 

joanna
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 26.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.06.2010, 12:29     Titel: Samplerate eines Bildes ermitteln
  Antworten mit Zitat      
Hallo,

weiß zufällig jemand, wie ich von einem digitalisiertem Graustufenbild bzw. einem vorher ausgewähltem Vektor aus der Bildmatrix die Samplerate bekomme?
Möchte über den Vektor eine FFT-Analyse laufen lassen und dazu brauch ich ja die Abtastrate des Bildes; hauptsächlich um die "Frequenz-Achse" schön zu skalieren.

Ich hab ein paar Vermutungen, aber ich weiß nicht so recht was da richtig sein könnte, weil ich leider auch keine Idee hab, was ich als Ergebniss bekommen sollte.
Also einmal gibts unter dem Befehl
Code:

ja die Angaben: BitsPerSample und SamplesPerPixel. Hat das was mit der Samplerate zu tun? Oder muss ich die Auflösung oder die Größe des Bildes(also meiner Matrix) mit einbeziehen?

Ich hoffe jemand hat ne Idee dazu.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen


joanna
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 26.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2010, 08:40     Titel:
  Antworten mit Zitat      
Guten Morgen,

also mit dem Wert bei "BitsPerSample" schaut mein Ergebnis denk ich am Besten aus... Aber sicher bin ich mir nicht, vielleicht muss es ja ganz anders aussehen. Und mit Aussehen mein ich meine Skalierung, der Graph an sich schaut ja mit allen Werte gleich aus, nur die Skalierung ändert sich dem entsprechend.

Vielleicht hier erstmal mein Code:
Code:

L = length(vek);
np = 2^nextpow2(L);

vekF = fft(vek, np)/L;
vekF = abs(vekF);
FS = 16  %Wert bei BitsPerSample
f = FS/2*linspace(0, 1, np/2+1);

axes(handles.Fourier);
plot(f, 2*vekF(1:np/2+1));
xlabel('1/cm'); ylabel('Werte, relativ');
grid on;
 


Vielleicht kann mir doch noch jemand einen Tipp geben.
Danke schon mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2010, 09:45     Titel:
  Antworten mit Zitat      
Ist die Abtastrate eines Bildes nicht einfach der Abstand zwischen zwei Pixeln? Und ist das nicht letztendlich der Kehrwert der Auflösung (in dpi), also 1/Auflösung (in dpi) = Abtastrate (in inch per dot)?
Und die Auflösung ist im Prinzip ja frei wählbar, außer man will eine 1:1-Ausgabe und hat einen festen Maßstab vorgegeben. Dann muss man die Auflösung natürlich so wählen, dass der Maßstab stimmt.

Bin nicht so richtig damit bewandert, aber zumindest erscheint es mir logisch ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
joanna
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 26.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 10:32     Titel:
  Antworten mit Zitat      
Hallo,

danke Epfi für deine Antwort.
Das hab ich mir auch schon irgendwie gedacht...
Nur dann stimmt, wie du schon anmerkst, meine Skalierung nicht mehr. Und da der Graph wohl immer gleich ausschaut, egal welche SampleRate ich angebe, und sich nur die Skalierung ändert, wende ich das auf genau mein Problem an.
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 11:24     Titel:
  Antworten mit Zitat      
Richtig, das Ergebnis muss unabhängig von der Samplingrate immer gleich aussehen. Lediglich die Achsenskalierung des FFT-transformierten Signals sollte sich ändern. Der maximale Skalenwert der FFT ist immer 0,5*1/samplingrate oder auch 0,5*samplingfrequenz.
Private Nachricht senden Benutzer-Profile anzeigen
 
joanna
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 26.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 11:56     Titel:
  Antworten mit Zitat      
Genau das stimmt Smile
Wär mir wohl so gar nicht aufgefallen.
Wobei sich doch der FFT-Graph nach der Hälfte sozusagen spiegeln würde, oder?
Is jetzt zwar nicht Matlab-spezifisch, aber ich hab doch noch ein paar Schwierigkeiten was die Mathematik und besonders Fourier angeht...
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 11:59     Titel:
  Antworten mit Zitat      
Richtig, die FFT-Transformierte ist in der Mitte gespiegelt. Mit der Funktion fftshift kannst Du das Ergebnis der FFT so hinschieben, dass die Spiegelachse bei 0 liegt. Das ist dann auch die übliche Darstellungsform.
Private Nachricht senden Benutzer-Profile anzeigen
 
joanna
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 26.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 12:04     Titel:
  Antworten mit Zitat      
Das mit der üblichen Darstellungsform über fftshift hab ich auch schon oft gelesen. Hat das dann einen Grund zwecks Weiterverarbeitung oder so?
Mir persönlich gefällt diese Darstellungsform nämlich nicht so gut, als wenn ich den Graphen so plotten lasse ohne fftshift.
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 13:16     Titel:
  Antworten mit Zitat      
Naja, ist halt eingängiger, weil ohne fftshift die niedrigen Frequenzen in den Randbereichen sind. Nach fftshift hat man die niedrigen Frequenzen in der Mitte und nach rechts und links fallen sie ab. Wie es in normalen Koordinatensystemen eben so ist.
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.