Schönen guten Morgen!
Ich habe heute Nacht einige Fingerübungen mit Matlab versucht und bin
auch einen Knoten im Hirn gestoßen, der mich im Grunde schon immer
verfolgt.
Von daher ist das Problem konkret aus Matlab entstanden, aber es grinst
mich bei allen Arten von Diskretisierungen an. Zeitlich, bildlich oder
gar Messbereiche....
1 | T = 1/f_sample;
|
2 |
|
3 | %t_scale = 0:T:duration; %Version a
|
4 | t_scale = T:T:duration; %Version b
|
5 |
|
6 | N=length(t_scale);
|
7 |
|
8 | f_scale = f1:(f2-f1)/(N-1):f2;
|
9 | %f_scale = f1:(f2-f1)/N:f2-(f2-f1)/N;
|
10 |
|
11 | s = sin(2*pi*f_scale.*t_scale);
|
Es soll ein Sinussweep erzeugt werden von f1 bis f2. Der hat eine
bestimmte Zeitdauer "Duration" in Sekunden bei einer Abtastfrequenz
"f_sample" in Hz.
Wenn ich mal Duration auf 10 s und f_sample auf 1 Hz stelle (das kann
man leichter fassen) hat t_scale einmal die Länge 10 und einmal halt die
Länge 11.
Beide male ist der erste Eintrag in f_scale f1 und der letzte f2.
Ich habe bei meiner Recherche sogar ein Codebeispiel gefunden, da
Version c gemacht. Das kommt mir aber falsch vor, denn f2 wird ja gar
nicht direkt erreicht als Eintrag.
Welche Länge bzw welche Vorgehensweise ist denn nun richtig? Wie geht
das korrekt?