ich habe es durch L ersetzt! So läuft es, aber ich muss noch was probieren und vllt nochmal nachfragen, vielen dank!
Was mich noch verwirrt ist, dass zwischen den Spalten(Zahlen) ja nicht nur eine Leerstelle ist, sondern unterschiedlich viele. Woher weiss das matlab?
mfg
wenn du bei
Code:
textscan, für den option delimiter white space gibst, was ja der default value ist, dann werden wiederholte white spaces als eine betrachtet.
habe ich gestern in doc gelesen ;)
wegen der abtastfrequenz fs,
deswegen wollen wir als zeit achse nicht: 1,2,3,4....
sondern: 1Ts, 2Ts, 3Ts, 4Ts.... (bzw T heisst es in deinem Beispiel...)
fa = 8000; % Abtastfrequenz
fn = fa/2; % Nyquistfrequenz
N = 1024; % gewünschte FFT-Länge (N=2^x, sonst wird der DFT-Algorithmus verwendet!)
df = fa/N; % Frequenzauflösung % Erzeugung eines Datensatzes mit N Abtastwerten % ----------------------------------------------
t = 0 : 1/fa : (N-1)/fa; % x-Vektor % Frequenzvorgabe in Hz als ganzzahlig Vielfaches der Frequenzauflösung der DFT/FFT:
f1 = df*100; % bei fa = 8000 Hz und N = 1024 beträgt df = 7,8125 Hz und % f1 damit 781,25 Hz
f1 = 784;
f1 = df;
phase = pi/2;
a1 = 1; % Amplitudenvorgabe
y = a1*sin(2*pi*f1*t); % y-Vektor
y = [y(1:N/2)zeros(1, N/2)];
% Graphische Darstellung % ---------------------- % max. Amplitude zur Skalierung der graphischen Darstellung feststellen:
max_y = max(abs(y))*1.1;
fig = figure(1);
plot(y) axis([0 N -max_y max_y]) title('Datensatz') ylabel('Amplitude') xlabel('N Stützstellen') grid
fa = 8000; % Abtastfrequenz
fn = fa/2; % Nyquistfrequenz
N = length(Inhalt{1}); % gewünschte FFT-Länge (N=2^x, sonst wird der DFT-Algorithmus verwendet!)
df = fa/N; % Frequenzauflösung % Erzeugung eines Datensatzes mit N Abtastwerten % ----------------------------------------------
t = 0 : 1/fa : (N-1)/fa; % x-Vektor % Frequenzvorgabe in Hz als ganzzahlig Vielfaches der Frequenzauflösung der DFT/FFT:
f1 = df*100; % bei fa = 8000 Hz und N = 1024 beträgt df = 7,8125 Hz und % f1 damit 781,25 Hz
f1 = 784;
f1 = df;
phase = pi/2;
also das mit der Genauigkeit, wenn du als erstes im command window format long eintippst dann siehst du dass dein y genau ist, es ist eine frage wie es dargestellt ist.
meine frage ist : was macht dieses g in deinem code hat anscheinend keine aufgabe.
und das mit dem ausschlag bei 0, ich finde es macht schon sinn da y(1) auch der grösste wert ist.
was meinst du mit wie es dargestellt wird? Also ich würde gerne, dass 8 Stellen nach dem Komma genommen werden. Wenn ich das ausgeben lasse, dann rundet er immer auf 4.
Wie meinst du das mit größtem Wert bei y(1)? Es geht ja um die Frequnzen und nicht den größten Wert der Daten!?
was meinst du mit wie es dargestellt wird? Also ich würde gerne, dass 8 Stellen nach dem Komma genommen werden. Wenn ich das ausgeben lasse, dann rundet er immer auf 4.
Wie meinst du das mit größtem Wert bei y(1)? Es geht ja um die Frequnzen und nicht den größten Wert der Daten!?
mfg
tippe im command window : format long
dann starte deine funktion und guck dir y an
stimmt, bin mir fast sicher dass es mit längeren werten gerechnet wird,
aber das mit dem peak bei 0Hz, ich will dir keine falsche antwort geben
aber ich nehme an wenn y(1) grösser ist als die anderen, dann könnte auch
Y(1) grösser sein, aber ich bin mir überhaupt nicht sicher, ich werde mich ab morgen richtig mit fft beschäftigen.
fa = 8000; % Abtastfrequenz
fn = fa/2; % Nyquistfrequenz
N = 1024; % gewünschte FFT-Länge (N=2^x, sonst wird der DFT-Algorithmus verwendet!)
df = fa/N; % Frequenzauflösung % Erzeugung eines Datensatzes mit N Abtastwerten % ----------------------------------------------
t = 0 : 1/fa : (N-1)/fa; % x-Vektor % Frequenzvorgabe in Hz als ganzzahlig Vielfaches der Frequenzauflösung der DFT/FFT:
f1 = df*100; % bei fa = 8000 Hz und N = 1024 beträgt df = 7,8125 Hz und % f1 damit 781,25 Hz
f1 = 784;
f1 = df;
phase = pi/2;
a1 = 1; % Amplitudenvorgabe
y = a1*sin(2*pi*f1*t); % y-Vektor
y = [y(1:N/2)zeros(1, N/2)];
% Graphische Darstellung % ---------------------- % max. Amplitude zur Skalierung der graphischen Darstellung feststellen:
max_y = max(abs(y))*1.1;
fig = figure(1);
plot(y) axis([0 N -max_y max_y]) title('Datensatz') ylabel('Amplitude') xlabel('N Stützstellen') grid
fa = 8000; % Abtastfrequenz
fn = fa/2; % Nyquistfrequenz
N = length(Inhalt{1}); % gewünschte FFT-Länge (N=2^x, sonst wird der DFT-Algorithmus verwendet!)
df = fa/N; % Frequenzauflösung % Erzeugung eines Datensatzes mit N Abtastwerten % ----------------------------------------------
t = 0 : 1/fa : (N-1)/fa; % x-Vektor % Frequenzvorgabe in Hz als ganzzahlig Vielfaches der Frequenzauflösung der DFT/FFT:
f1 = df*100; % bei fa = 8000 Hz und N = 1024 beträgt df = 7,8125 Hz und % f1 damit 781,25 Hz
f1 = 784;
f1 = df;
phase = pi/2;
Vllt wäre es ja noch ganz interessant eine Rücktransformation zu machen, um zu gucken, ob das alte Ergebnis herauskommt. Das werde ich mal versuchen oder bringt mich das nicht weiter?
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.