Kannst du das vielleicht etwas genauer erklären? Ich weiß gerade nicht was du mit lineares Verhältnis und wandeln meinst.
Ich bin ja schon von [Pa] in [dB] gegangen.
Ja für meine Arbeit eine der hilfreichsten Seiten die ich bisher gefunden habe. Da habe ich die Rechnung hergenommen um vom Schalldruck auf den Schalldruckpegel zu kommen.
Soll ich also:
1. zurück zum Schalldruck
2. Spektrum berechnen
3. Filterung vornehmen
4. ifft
5. Umwandlung in Schalldruckpegel
Ich finde, dass das eine ziemlich umständliche Umrechnung ist und ich glaube dabei werden mir wieder die niedrigeren Frequenzen wegfallen aber ich werde es antesten!
subplot(3,1,3);
plot(f11,H11A,'b');
xlabel('Frequenz [Hz]'); title('Vergleich der Spektren');
grid on, hold on,
legend('Spektrum','Spektrum A-Bewertet',0);
subplot(4,1,3);
plot(time1,soundpressurelevel1a,'k');
xlabel('Zeit [s]'); ylabel('Schalldruck [Pa]'); title('Rohsignal aus Spektrum mit A-Bewertung');
grid on; hold on;
subplot(4,1,4);
plot(time1,soundpressurelevel1a,'k');
xlabel('Zeit [s]'); ylabel('Schalldruck [Pa]'); title('Vergleich der Signale');
grid on; hold on;
z=legend('Rohdaten','Rohdaten A-Bewertet','Rohdaten A-Bewertet aus Spektrum',1);
Das war nur eine Idee, da du ja beschrieben hast, dass nach der Filterung nur noch ganz kleine Pegel vorliegen. Die Umwandlung kann aber auch falsch sein...
Ich habe sowas selbst noch nie gemacht, weiß somit auch nicht, was rauskommen soll Evtl. sind die kleinen Pegel bei deinem gegebenen Signal ja auch richtig. Was heiß denn bei dir auch klein? Hast du nicht ein Bsp zum Vergleichen?
1. Wenn du die Amplitude hier skalierst, musst du das auch bei der ifft beachten. Lass sie für die Filterung weg und benutze das nur für den Plot.
2. Die FFT() liefert dir ein Amplitudenspektrum von -fs11/2...+fs11/2. Du rechnest Ra aber nur für positive Frequenzen aus, und multiplizierst dann mit dem Amplitudenspektrum, was auch den negativen Teil enthält. Das kann doch nicht gehen.
Code:
H11_pos0 = 2*abs(H11(1:(N/2)+1)); % Amplitudenspektrum von 0...+fs11/2
f11=(0:fs11:(length(H11_pos0)-1)*fs11); % f = 0...+fs11/2
Also da kann aber auch was nicht stimmen. Die Frequenzen gehen dann ja bis 2,5*10^9 da scheint die Rechnung doch auch nen kleinen Fehler zu haben oder nicht. Ich kann doch bei einer Frequenz von 16000Hz nur bis 8000Hz die FFT machen und dann wird quasi gespiegelt!
Oder muss ich jetzt wirklich nochmal von 0 bei der FFt anfangen?
Das war auch immer noch falsch ...so ist das halt, wenn man mal schnell nebenbei antwortet und mit den Gedanken bei was ganz anderem ist. Ich sollte es besser wissen...in so fern kann ich mich schon entschuldigen, wenn ich falsche Antworten gebe auf Grund von mangelnder Konzentration.
So ist es jetzt aber richtig:
Code:
% das hast du schon...
T11=diff(t11(1:2));
fs11=1/T11;
N11=length(x11);
Allerdings tritt jetzt noch ein Problem auf. Du berechnest ja den Betrag (abs...), hast also Polarkoordinaten. Die ifft() braucht aber karthesische Koordinaten, also Real- und Imaginärteil. Da du ja keine Phase des Filters hast, bin mir jetzt nicht sicher ob die Rücktransformation überhaupt so geht. Da muss ich erstmal drüber nachdenken...
Naja also funktionieren tut das schon allerdings bin ich mittlerweile so durcheinander, dass ich nichts mehr verstehe. Meine FFT hat vorher ja auch funktioniert und im Grunde kamen die selben Werte raus.
Ich glaube, dass mit der A-Filterung auch irgendwas nicht stimmt. Es kann ja nicht ganz richtig sein, dass alle Frequenzen so extrem wegfallen.
Ich werde es erstmal für heute auf sich beruhen lassen und bei ein paar Firmen anfragen, wie die das machen.
Ich dank dir fürs Erste und ich werde mal meine Ergebnisse berichten wenn ich da was herausbekommen sollte. Ich glaube fast, dass man das mit anderen Filtern realisiert oder man nur die Frequenzen berechnet und dann alles im Zeitbereich benutzt. Naja ich werde es posten vielleicht benötigt irgendjemand sowas mal!
Aber über die FFT werde ich nochmal grübeln. Anscheinend hab ich das doch nicht so verinnerlicht wie ich es gedacht habe!
Ich denke schon, dass die angegebene Gewichtsfunktion aus dem Link richtig ist. Es ist wohl aber nur zur Betrachtung im Frequenzbereich. Bist du dir denn sicher, dass du das Signal im Zeitbereich brauchst? Wenn es nur um Analyse geht, ist die Betrachtung im Frequenzbereich doch ohnehin besser, da der hörbare Bereich ja ebenfalls auf die Frequenz bezogen wird.
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.