us Text-File von Lt_spice in Matlab FFT

OP #5668087
Hallo,

Ich nehme eine periodische Zeitsignal von LT_Spice als Text-File und 
möchte ich mit Matlab extern die Interpolation und FFT mache, um die 
Ergebnisse zu vergleichen.
Die Hilfe von Matlab über FFT und vq = interp1(x,v,xq) habe ich gelesen 
und habe ich versucht in Matlab FFT mache, leider konnte ich nicht zu 
Recht kommen.

Kann jemand mir bitte sagen, wie ich aus Text-File von Lt_spice in 
Matlab FFT machen kann?

Für Hilfe wäre ich sehr dankbar.

Viele Grüße
Angehängte Dateien:
Gast #5669283
Erst mal die Ausgabe von LTSpice prüfen. Dazu versuche die Datei in 
Office einzulesen und als csv abzuspeichern. Wenn dabei vernünftige 
Zahlenreihen vorliegen, erst dann macht es Sinn sich mit Matlab zu 
befassen.
OP #5669334
Hallo Roboto-Klon
vielen Dank für die Antwort.
die Text-Datei kann in Matlab gepoltet werden und ich habe mit Funktion 
vq1 = interp1(x,v,xq) das Signal interpoltiert und möchte ich von diesem 
interpoltierten Signal FFT machen Signal.

Im Anhang befindet sich das geplotete Signal.


Gruß
Angehängte Dateien:
#5670732
Hier ein Beispiel

% FFT with Matlab
fileid = fopen("test_t.txt",'r'); % open file for read
% h_text = textscan(fileid,'%s',2) % read the two word header from 
LTspice-exported file
[a n]=fscanf(fileid,"%e");      % a data, n size of a
fclose(fileid);
x = a(1:2:n-1);                 % x-values
y = a(2:2:n);                   % y values
n_fft = 16384;                  % size for the FFT
tmax = 10e-6;                   % time 0 to tmax
t = linspace(0,tmax,n_fft+1);   % time vector 0 to 10us
z = interp1(x,y,t(1:n_fft));    % interpolate y-values
zfft = fft(z,n_fft)/(n_fft/2);  % FFT
zfftabs = abs(zfft(1:(n_fft/2))); % absolute values
zfftabs(1) = zfftabs(1)/2;      %  value at DC-value, f=0Hz
f0 = 1/tmax;                    % base frequency
f = f0*linspace(0,n_fft/2-1,n_fft/2);  % frequency vector, f = 0 to 
f0*(n_fft/2-1)
zfftabsdB = 20*log10(zfftabs);  % absolute values in dB
% plot(f,zfftabs)
% plot(f(1:10),zfftabsdB(1:10),'*') % '+' '-' '.'
% line(f(1:10),zfftabsdB(1:10))     '

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.