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

Anzeige von Frequenzen anstelle von Abtastwerten auf X-Achse

 

ejc

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2008, 16:03     Titel: Anzeige von Frequenzen anstelle von Abtastwerten auf X-Achse
  Antworten mit Zitat      
Hallo allerseits,

ich habe ein recht banales Problem, habe aber noch nicht rausgefunden, wie man dies geschickt lösen könnte.

Ich vergleiche über surf(P) die Amplituden-Frequenzgänge aus unterschiedlichen Mikrophonpositionen, was soweit schon mal gut funktioniert. Nun möchte ich lediglich für die Achsenbeschriftung anstelle der Samplewerte (1 bis 131073) auf der X-Achse die entsprechenden Frequenzwerte darstellen (Schrittweite ist bekannt: 0,1831Hz, da Frequenzbereich 0 bis 24000 Hz). Eine Beschriftung der X-Achse nur an der Position 100, 200, 500, 1k, 2k, 5k, 10k, 20k (Hz) wäre überdies noch ganz hübsch (log.). Ließe sich außerdem noch die Y-Achse von -90 bis +90 (Grad) beschriften wäre das grandios.

Gibt es eine einfache Möglichkeit dies alles zu realisieren?

Und, Bonusfrage: Ist es möglich, die Visualisierung erst ab einer bestimmten Frequenz darzustellen. Der Befehl XLim scheint hier nicht weiterzuhelfen (s. Bild)...

Für alle Antworten bereits vielen vielen Dank!! Bin nun mal leider nicht vom Fach..

Grüße, Emannuel.





Anbei die Befehlsliste:
fa = 131073;
df = 24000/fa;

P = [zv19;zv18;zv17;zv16;zv15;zv14;zv13;zv12;zv11;zv10;zv9;zv8;zv7;zv6;zv5;zv4;zv3;zv2;zv1;zv2;zv3;zv4;zv5;zv6;zv7;zv8;zv9;zv10;zv11;zv12;zv13;zv14;zv15;zv16;zv17;zv18;zv19];
%zv sind die Zeilenvektoren welche die jeweiligen Frequenzgänge enthalten

hold off;
surf(P);shading interp;

%Wertebereich der Achsen
AXIS([2000 131073 1 37 0.000001 0.5]);

%log. Schrittweite der Achsen X und Z
set(gca,'XScale','log','ZScale','log');

%Limit der X-Achse
set(gca,'XLim',[2000 131073]);

%Achsenbeschriftung
xlabel('Frequenz');ylabel('Abstrahlwinkel');zlabel('dB SPL');
title('3-dimensionale Darstellung der Abstrahlcharakteristik');
colorbar

%View the object from.
az = 30;
el = 40;
view(az, el);

surf.jpg
 Beschreibung:
Das ausgegebene Figure

Download
 Dateiname:  surf.jpg
 Dateigröße:  145.72 KB
 Heruntergeladen:  829 mal


cs
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 03.06.08
Wohnort: NRW
Version: ---
     Beitrag Verfasst am: 03.06.2008, 11:54     Titel:
  Antworten mit Zitat      
Hi,

versuch es mal so:

Code:

max = 131073*.1831; % ist max Frequenz
max_scale = round(log10(max))+1; % bis zu diesem Wert darstellen
a = logspace(0,round(log10(max)),max_scale);
set(gca,'xtick',a);
 


Gruß, Christian

Habe die Edit- Funktion des Forums entdeckt Wink

einfacher gehts so:
Code:
set(gca,'xtick',[100 200 500 1000 2000 5000 10000 20000]);


Zuletzt bearbeitet von cs am 03.06.2008, 12:45, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
ejc

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2008, 15:04     Titel:
  Antworten mit Zitat      
Hallo Christian!
Hab vielen Dank für die Antwort.. hab es nun anders gelöst -
wie ich schon vermutete, war nicht viel zu richten -
manchmal klemmt's einfach Wink

Code:

%Beschriftung der X-Achse an wichtigen Punkten
set(gca,'xtick',[546 1092 2730 5461 10923 27307 54614 109227]);
set(gca,'XTickLabel',{'100';'200';'500';'1k';'2k';'5k';'10k';'20k'});

%Beschriftung der Y-Achse an wichtigen Punkten
set(gca,'ytick',[1 7 13 19 25 31 37]);
set(gca,'yTickLabel',{'90°';'60°';'30°';'0°';'-30°';'-60°';'-90°'});

%Wertebereich der Achsen
AXIS([500 132000 1 37 0.000001 0.5]);

%log. Schrittweite der Achsen X und Z
set(gca,'XScale','log','ZScale','log');

%Limit der X-Achse
set(gca,'XLim',[500 132000]);



Allerdings ist da immer noch diese unschöne Überlappung der
Surface über das gesetzte Limit hinaus (s. Grafik von oben)

Bei loglog setzt der Graph ja auch erst bei der Y-Achse an. Hat
jemand vielleicht noch eine Idee... das Gerumpel in den tiefen
Frequenzen muss ich nicht unbedingt haben Wink

Danke noch mal! Emannuel.
 
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.