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

Übertragungsfunktion eines Plugins als Plot ausgeben lassen

 

Mariana
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 09.11.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2018, 13:45     Titel: Übertragungsfunktion eines Plugins als Plot ausgeben lassen
  Antworten mit Zitat      
Hallo zusammen,

ich habe ein rosa Rauschen R1 und ein Rauschen R2, das durch ein Plugin spektral verändert wurde. Ich habe also demnach mein Eingangs- und mein Ausgangssignal. Nun möchte ich gerne wissen, was in dem Plugin passiert, ich suche demnach die Übertragungsfunktion dieses Plugins.

Ich habe die wav-Dateien eingelesen und dann per pwelch ein je Leistungsdichtespektrum erstellt. Diese habe ich dann durcheinander geteilt,
also (pwelch(R2))./(pwelch(R1)), um die ÜF zu finden.

Die Plots die rauskommen, sehen halbwegs plausibel aus, ich bin mir aber völlig unsicher, ob das so richtig ist. Vielleicht könnte einer von euch kurz einen Blick darauf werfen Smile

Code:

%Sampling rate
FS = 48000;

%Read audiofiles
[file] = audioread('PinkNoise.wav');
[filePlugin] = audioread('PinkNoisePlugin60.wav');

[filewelch] = pwelch(file,[],[],[],FS);
[filePluginwelch] = pwelch(filePlugin,[],[],[],FS);

%Divide spectrums to see transfer function
TFPlugin = (filePluginwelch)./(filewelch);

%Length of Plugin
L = length(TFPlugin);

%Look at only one part of two sided spectrum
P2 = abs(TFPlugin/L).^2/length(TFPlugin);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);

%create a frequency vector
f = FS*(0:(L/2))/L;

plot(f, P1)
title('Amplitude Spectrum of Plugin')
xlabel('f (Hz)')
ylabel('Magnitude')
Private Nachricht senden Benutzer-Profile anzeigen


Mariana
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 09.11.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2018, 13:51     Titel:
  Antworten mit Zitat      
Oder eher so:


Code:

[file] = audioread('PinkNoise.wav');
[filePlugin] = audioread('PinkNoisePlugin60.wav');

fs = 48000;
t = 0:1/fs:5-1/fs;

[pxx,f] = pwelch(file,500,300,500,fs);
[pxx2,f] = pwelch(filePlugin,500,300,500,fs);


Ufunktion = pxx2./pxx;

plot(f,10*log10(Ufunktion))

xlabel('Frequency (Hz)')
ylabel('Magnitude (dB)')
axis([0 FS/4 0 inf])
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.