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

FFT mit zwei Vektoren

 

Atze
Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 11.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2012, 21:54     Titel: FFT mit zwei Vektoren
  Antworten mit Zitat      
Hallo zusammen!

Ich habe mal wieder ien Problem mit Matlab und plotten. Ich erstelle ein Signal mit Simulink und dieses möchte ich gerne analysieren. Nur leider kommt es nicht so weit. ich kann das Signal mit stem noch plotten, aber für fft reichen wohl meine Kenntnisse nicht. Wollte wie folgt an die Sache rangehen. Werte sind im Anhang für den Fall...

Erst mal stem mit folgendem Code:

Code:
t7 = Differenzdruck_diskret(:,1)';      % Zeitvektor
x7 = Differenzdruck_diskret(:,2)';      % Messdaten-Vektor


figure(1)
stem(t7, x7);
axis([2 3 -3e005 6e005]);


Soweit so gut. Dann wollte ich mit

Code:
differenzDruck=[t7 x7];

figure(2)
fourier=fft(differenzDruck);
fenster_fcn=differenzDruck(:).*hann(1000);
plot(fenster_fcn)


fortfahren. Würde also gerne über 1000 Samples eine Fensterfunktion legen. Dann bekomme ich aber die Fehlermeldungen

"times Matrix dimensions must agree." und "
Error in ==> FFT_goMatlab at 15 fenster_fcn=differenzDruck( : ).*hann(1000);"!

Würde sagen, da passt was mit "differenzDruck=[t7 x7];" irgendwas nicht zusammen, aber was?

Desweiteren würde ich gerne z. B. die FFT vom Sampel 2000 bis 3000 berechnen lassen. Ist dass vielleicht auch noch möglich, da meine Werte am Anfang der Signalfolge nicht unbedingt periodisch sind und für mich der Mittelwert pro Sekund ausschlaggebend ist.

Danke im Voraus

Differenzdruck_diskret.xls
 Beschreibung:

Download
 Dateiname:  Differenzdruck_diskret.xls
 Dateigröße:  3.35 MB
 Heruntergeladen:  667 mal
Private Nachricht senden Benutzer-Profile anzeigen


Atze
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 11.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.12.2012, 20:29     Titel:
  Antworten mit Zitat      
Hallo!

Bin ein gutes Stückchen weiter gekommen. nur hab ich mit der Fensterung (mit oder ohne Amplitudenkorrektur) noch meine Probleme. Kann mir wer verraten, wie ich y_win mit meinem x7-Vektor füttern kann?

Fehlermeldung: ??? Error using ==> mtimes Inner matrix dimensions must agree

Code:
t7 = Differenzdruck_diskret(:,1)';                       % Zeitvektor
x7 = Differenzdruck_diskret(:,2)';                       % Messdaten-Vektor


figure(1)
stem(t7, x7, 'b')



fa = 1/0.001; % Abtastfrequenz
fn = fa/2; % Nyquistfrequenz
N = 1000; % gewünschte FFT-Länge (N=2^x, sonst wird der DFT-Algorithmus verwendet!)
df = fa/N; % Frequenzauflösung


% Berechnung der FFT
% ------------------
H = fft(x7, N);  % Berechnung des Amplitudengangs aus dem komplexen Frequenzvektor H:
amplH = abs(H); % Amplitudenskalierung (Normierung auf N) und verschieben der Elemente des
                % Amplitudenvektors, so dass die Darstellung des Amplitudengangs von -fn...0...fn
                % erfolgen kann:

amplitudengang = fftshift(amplH/N); % Graphische Darstellung


% Frequenzvektoren (werden bei der graphischen Darstellung benötigt):
x_fn = 0 : df : fn-df;
x_fa = 0 : df : fa-df; % max. Amplitude zur Skalierung der graphischen Darstellung feststellen:

figure(2)
stem(x_fa-fn, amplitudengang, 'b.-')
%axis([-fn fn 0 a/2*1.1])
title('Amplitudengang')
ylabel('Amplitude')
xlabel(['Auflösung: ',num2str(df),' Hz Frequenz in Hz'])
grid



% Fensterfunktion
 
win = hann(N)';
%y_win = x7.*win; % Fensterung ohne Amplitudenkorrektur
y_win = x7.*win*N/sum(win) % Fensterung mit Amplitudenkorrektur
max_y = max(abs(y_win))*1.1;

figure(3)
plot(y_win)
axis([0 N -max_y max_y])
title('Datensatz nach Fensterung mit Hann-Fenster')
ylabel('Amplitude')
xlabel('N Stützstellen')
grid


Danke sehr
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 - 2025 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.