Du gehst deinen ersten Sinus bis zum Ende (-> bis er wieder bei 0 ankommt) und startes dann den nächsten auch wieder bei 0. Dadurch hast du natürlich immer zwei Werte hintereinander die 0 sind, dadurch der Knick. Abhilfe schafft hier, den Sinus nicht ganz bis zum Ende auszuwerten.
Alternativ kannst du naütrlich auch den nächsten erst bei 1/fs starten lassen.
Einen kleinen Knick wirst du auch hier sehen, das lässt sich nicht vermeiden wenn zwei Funktionen mit unterschiedlichem Anstieg aneinandergereiht werden.
% AMPLITUDE
ampspec = (2.*abs(yfft))/length(input); % Amplitude falsche, muss length(y) sein!!
ampspec(1,1) = ampspec(1,1) / 2; % weil bei Null die Spektrallinieen zusammengelegt werden und somit /2
ampgang = fftshift(ampspec); % Verschieben der Elemente des Amplitudenvektors, % so dass die Darstellung des Amplitudengangs % von -fn...0...fn erfolgen kann:
Versuche mal die Samplefrequenz zu erhöhen, dann sollte das Ergebnis der FFT wesentlich besser aussehen. Du darfst aber auch nicht vergessen, dass die FFT gundsätzlich für periodische und unendlich lange Signale gedacht ist. Dein Signale ist durch die sich veränderlichen Amplituden und Frequenzen alles andere als periodisch. Für transiente Signale bietet sich die Short-Time-Fourier-Transformation (stft()), oder besser, die Continous Wavelet Transformation (cwt()) an. Als output gibt es hier ein Spektrogramm, damit lassen sich die Frequenzanteile und deren Amplitude über den gesamten Zeitverlauf des Signals auswerten.
Edit: Ich betone besser nochmal, dass deine FFT nicht das Resultat eines "unsauberen" Zusammenfügens der Sinusfunktionen ist, sauberer kann man sie nicht mehr zusammenfügen. Die FFT ist einfach für gewisse Signale nicht geeignet.
ich werde mir das ganze nochmal genauer anschauen und probieren!
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.