Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Studierende:
Praktikant Toolentwicklung Matlab (m/w)
Branche: Beratung, Expertise, Fahrzeugtechnik, Fahrzeugteile, Technische Dienstleistungen
MBtech Group GmbH & Co. KGaA - Fellbach

Abschlussarbeit / Praktikum: Entwicklung Matlab (m/w)
Branche: Informationstechnologie, Elektrotechnik, Elektronik
GIGATRONIK Technologies GmbH - Ulm

Studentische Mitarbeit - Fahrzeugmessungen
Branche: mehrere
IAV GmbH - Ingenieurgesellschaft Auto und Verkehr - Berlin

Werkstudent (m/w) High End GNSS Simulation mit modernsten Signalgeneratoren
Branche: Mess-, Regel-, Automatisierungstechnik, Telekommunikation, Nachrichtentechnik
ROHDE & SCHWARZ GmbH & Co. KG - München

Praktikant Testsystemaufbau (m/w)
Branche: Beratung, Expertise, Fahrzeugtechnik, Fahrzeugteile, Technische Dienstleistungen
MBtech Group GmbH & Co. KGaA - Sindelfingen

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

SNR wie gehts richtig?

 

funky_Phil
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 05.01.17
Wohnort: Ulm
Version: ---
     Beitrag Verfasst am: 13.02.2017, 21:42     Titel: SNR wie gehts richtig?
  Antworten mit Zitat      
Also über die Signal to Noise Ratio kann man viel lesen. Aber wie gehts richtig?

Mein Problem ist ich habe ein verrauschtes Atemsignal gemessen (siehe Anhang). Die Atmung liegt zwischen 0.01Hz bis 2Hz und Ich habe ein 50 Hz Rauschen auf dem Signal.

Ich will ein Maß haben (SNR) dass mir den Grad Rauschen zur signalhöhe ausgibt.

Ich hab mal ein bisschen rumprobiert, bin aber mit meinen Ergebnis nicht zufrieden.
Hier ist die Matlabseite zu SNR:
https://de.mathworks.com/help/signal/ref/snr.html#bt3er4n


Code:

clc
close all
clear all


load('Proband_Bauchatmung_Gefiltert_oSH_CH3_27_07_2016_16_13_48_0000')
 y = RawData(2,:);

N = length(y); % Anzahl Messwerte
fs = 256; % 256 Sampelrate


r1=snr(y,fs,N)

 

hier kommt r=-1.9611 raus.
wenn das Dezibel sind,- dann macht das vllt schon Sinn.
Also mein Verhältnis ESignal zu ERauschen ist 1,6.

Anderseits hab ich mir das auch mit einem Powerspektrum überlegt.

Code:
clc
close all
clear all

load('Proband_Bauchatmung_Gefiltert_oSH_CH3_27_07_2016_16_13_48_0000')
x = RawData(2,:);

Fi = 1; Fs = 50; N = length(x);

w = kaiser(numel(x),700);
[Pxx, F] = periodogram(x,w,numel(x),Fs);
SNR = snr(Pxx,F,'psd')
 


Hier kommt SNR=0,92 raus.
Was stimmt nun? Oder sind beide Falsch?
Kann mir bitte jemand helfen?

Proband_Bauchatmung_Gefiltert_oSH_CH3_27_07_2016_16_13_48_0000.mat
 Beschreibung:

Download
 Dateiname:  Proband_Bauchatmung_Gefiltert_oSH_CH3_27_07_2016_16_13_48_0000.mat
 Dateigröße:  825.16 KB
 Heruntergeladen:  33 mal
rohsignal.jpg
 Beschreibung:

Download
 Dateiname:  rohsignal.jpg
 Dateigröße:  434.01 KB
 Heruntergeladen:  37 mal
Private Nachricht senden Benutzer-Profile anzeigen


funky_Phil
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 05.01.17
Wohnort: Ulm
Version: ---
     Beitrag Verfasst am: 14.02.2017, 16:44     Titel:
  Antworten mit Zitat      
Ich hab mir einfach mal eine Testfunktion gebaut...
s ist ein Sinusignal und r ist das Rauschen.
Wie komme ich auf ein korrektestes SNR?
Stimmt das so?

Code:

clear all
clc
dT=0.1 %Abtastintervall
T=10 % Messfensterlänge
N=T/dT % Zahl der Abtastwerte
t=[0:dT:T-dT] %Zeitachse

%Signale:
s=sin(2*pi*1*t) % Sinus
r=(rand(1,N)-0.5)*2 %Rauschen

sr=s+r %Kombination

subplot (3,1,1)
plot (t,s)

subplot (3,1,2)
plot (t,r)
subplot (3,1,3)
plot (t,sr)

r = snr(s,r)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
funky_Phil
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 05.01.17
Wohnort: Ulm
Version: ---
     Beitrag Verfasst am: 16.02.2017, 22:46     Titel:
  Antworten mit Zitat      
hab noch eine zweite Möglichkeit entworfen...
das SNR ist deffiniert durch die mittlere Signalleistung zu mittleren Rauschleistung.

Eine mittlere Leistung ist immer deffiniert durch:
P=(1/T) *Integral über die aufgenommene Zeit von Signal^2*dt

Code:


y_rau %=Rauschsignal  ;

y_sig %= unverrauschtes Signal ;


%der jeweilige Zeitvekotr ist:
 %t1_angepasst
 
 
 % Berechnung der Quadrate:
 
 
  y_rau_quad= (y_rau.^2)
  y_sig_quad= (y_sig.^2)


 %% Trapezregel
 

 

integral_Rauschen=trapz(t1_angepasst ,y_rau_quad)
integral_Signal=trapz(t1_angepasst ,y_sig_quad)



 %Berechnung der durchschnitts-Leistung
t_end=t1_angepasst(end)
 
mittl_rausch_P=integral_Rauschen/t_end
mittl_sig_P=integral_Signal/t_end

%Darstellung
figure(15)
plot(t1_angepasst,  y_rau_quad,'r',t1_angepasst, y_sig_quad,'b')
% Berechnung der SNR
SNR2=mittl_sig_P/mittl_rausch_P
 
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2017 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.