Anzeige von Frequenzen anstelle von Abtastwerten auf X-Achse
ejc
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 02.06.2008, 16:03
Titel: Anzeige von Frequenzen anstelle von Abtastwerten auf X-Achse
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);
Zuletzt bearbeitet von cs am 03.06.2008, 12:45, insgesamt einmal bearbeitet
ejc
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 03.06.2008, 15:04
Titel:
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
Code:
%Beschriftung der X-Achse an wichtigen Punkten
set(gca,'xtick',[546109227305461109232730754614109227]);
set(gca,'XTickLabel',{'100';'200';'500';'1k';'2k';'5k';'10k';'20k'});
%Beschriftung der Y-Achse an wichtigen Punkten
set(gca,'ytick',[171319253137]);
set(gca,'yTickLabel',{'90°';'60°';'30°';'0°';'-30°';'-60°';'-90°'});
%Wertebereich der Achsen
AXIS([5001320001370.0000010.5]);
%log. Schrittweite der Achsen X und Z
set(gca,'XScale','log','ZScale','log');
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
Danke noch mal! Emannuel.
Einstellungen und Berechtigungen
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
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.