Forum: Digitale Signalverarbeitung / DSP / Machine Learning Problem mit Fouriertrafo rect gibt si-Funktion?


von FFT (Gast)


Lesenswert?

Hallo und sorry aber ich stehe gerade aufem Schlauch,

wenn ich von einem rect eine Fouriertransformation mache sollte ich doch 
eigentlich eine Si-Funkion erhalten.
Warum wird dann oft behauptet man erhält nur ungerade Oberwellen enthält 
(z.B. hier 
http://www.itwissen.info/definition/lexikon/Rechtecksignal-rectangular-wave.html)
Was ich jetzt mit Matlab herausgefunden habe...
Bei einem Tastverhältnis von 0.5 bekomme ich nur bestimmte Oberwellen, 
bei allen anderen Tastverhältnissen bekomme ich eine Si Funktion?

Kann mir das jemand bestätigen / erklären?
Danke

: Verschoben durch Moderator
von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Nein, du bekommst bestimmt keinen Si (Integralsinus).

http://de.wikipedia.org/wiki/Integralsinus

oder meinst du si/sinc, sinus cardinalis?

von FFT (Gast)


Lesenswert?


von Johann L. (gjlayde) Benutzerseite


Lesenswert?

...und was immer ein "rect" sein soll — eine Rechteckfunktion ist was 
anderes als die charakeristische Funktion eines Intervalls.

Und Fourier-Reihe und -Integral sind nicht das gleiche.

von Jan K. (jan_k)


Lesenswert?

Die Fouriertransformation eines Rechtecksignals (symmetrisch um die 
y-Achse) ist in der Tat ein sinc.

Machst du aber eine Fourierreihen Entwicklung (was keine Fouriertrafo 
ist!), so wirst du sehen, dass nur die ungeraden Koeffizienten ungleich 
Null sind.

f(t)=rect(t) wird meistens als ein Rechtecksignal der Breite T, mit 
f(t)=1/T (haben wir so in der Uni gemacht, da der Flächeninhalt 1 
ergibt) oder f(t)=1 für -T/2 <= t <= T/2 und f(t)=0 sonst definiert

von DS (Gast)


Lesenswert?

Hallo,

wie schon richtig gesagt wurde, gibt ein Rechteck-Signal, welches im 
Zeitbereich zwischen -T/2 und +T/2 begrenzt ist, im Frequenzbereich eine 
(kontinuierliche) sinc-Funktion.

Bei der von dir zitierten Seite von itwissen.de handelt es sich um die 
periodische Forsetzung eines solchen rect-Signals (mit abwechselndem 
Vorzeichentausch).

Im Zeitbereich würde das bedeuten, dass du ein (begrenztes) rect-Signal 
mit einem Dirac-Kamm faltest. Unter Dirac-Kamm (oder Dirac-Folge) 
verstehe ich Diracs mit gleichem Abstand (in unserem Falle beträgt der 
Abstand Periodendauer/2).

Wenn das dann in den Frequenzbereich transformiert wird (der Dirac-Kamm 
ergibt dann wiederum einen Dirac-Kamm mit Abstand 2*Periodenfrequenz), 
erhält man also eine sinc-Funktion, die mit einem Dirac-Kamm 
multipliziert (aus der Faltung wird eine Multiplikation) wird.

Das Ergebnis ist dann das gleiche, wie bei der 
Fourier-Reihenentwicklung, nämlich einzelne Spektrallinien im Abstand 
von 2*Periodenfrequenz, die mit einer sinc-Funktion gewichtet sind.

von FFT (Gast)


Lesenswert?

Hallo und vielen Dank fuer eure Antworten.

Ich glaube ich bin durch euch ein Stueck weiter gekommen und fasse mal 
zusammen:

Fourierreihenentwicklung geht nur mit periodischen Signalen.
Mache ich von einer Rechteckfunktion (Tastgrad 0.5, sich unendlich 
fortsezend) erhalte ich die im Link angegebenen Oberwellen. Mache ich 
von dem gleichen Signal eine FT sollte ich im Spektrum die gleichen 
Frequenzen und Amplituten finden wie in den sin/cos Termen der 
Fourierreihe (Auch wenn Fourierreihe und FT nicht das Gleiche ist).

Was passiert wenn ich den Tastgrad aendere?
Dann bekomme ich halt andere Frequenzanteile.

Gibt es irgendeinen Zusammenhang zwischen den Oberwellen einer 
periodischen Rechteckfunktion und der Sin(x)/x Funktion???
(irgendwie die lokalen Maxima der Sinc-fkt sind die Oberwellen)
Warum Frage ich das? Eine periodische Rechteckfunktion koennte man doch 
auch als isolierten Rechteckimpuls (f(t)=1 für -T/2 <= t <= T/2 und 
f(t)=0, siehe Jan K.) sehen und diesen mit einer Diracimpulsfolge 
falten. Dies sollte im Spektrum einen Si geben welcher mit einer 
Diracimpulsfolge multipliziert wird, dass heisst an bestimmten Stellen 
ausgewertet/abgetastet wird.


Darstellungen in Matlab. Die DTFT bzw. FFT in Matlab geht davon aus, 
dass das Sample periodisch fortgesetzt wird.
Die periodische Rechteckfunktion gibt mit mit Hilfe der FFT ein 
Spektrum, in welchem nur die Oberwellen zu sehen sind.
Moechte ich einen Si (sinc) im Spektrum sehen braeuchte ich einen 
isolierten Rechteckimpuls, was ja nicht moeglich ist.
Um einen anzunaehern muss ich den Signalauschnitt so erstellen, dass nur 
wenige Bits des Samples "1" sind und sehr viele Samples "0" sind. 
Dadurch habe ich im Zeitbereich einen isolierten Rechteckimpulse der mit 
einer Diracimpulsfolge grossem Abstandes gefaltet wird. Im Spektrum habe 
ich einen Si (Sinc) der mit einer Diracimpulsfolge multipliziert wird, 
welche im Frequenzbereich eine hohe "Frequenz" hat (Impulse liegen nahe 
beinander). Deswegen sieht mein Spektrum aus wie eine abgetastete Si 
Funktion

von Juergen J. (jungnickel)


Lesenswert?

FFT schrieb:
> Darstellungen in Matlab. Die DTFT bzw. FFT in Matlab geht davon aus,
> dass das Sample periodisch fortgesetzt wird.
> Die periodische Rechteckfunktion gibt mit mit Hilfe der FFT ein
> Spektrum, in welchem nur die Oberwellen zu sehen sind.
> Moechte ich einen Si (sinc) im Spektrum sehen braeuchte ich einen
> isolierten Rechteckimpuls, was ja nicht moeglich ist.
> Um einen anzunaehern muss ich den Signalauschnitt so erstellen, dass nur
> wenige Bits des Samples "1" sind und sehr viele Samples "0" sind.
> Dadurch habe ich im Zeitbereich einen isolierten Rechteckimpulse der mit
> einer Diracimpulsfolge grossem Abstandes gefaltet wird. Im Spektrum habe
> ich einen Si (Sinc) der mit einer Diracimpulsfolge multipliziert wird,
> welche im Frequenzbereich eine hohe "Frequenz" hat (Impulse liegen nahe
> beinander). Deswegen sieht mein Spektrum aus wie eine abgetastete Si
> Funktion

Soweit alles richtig würde ich sagen.

Ein Trick um den Sinc einfacher darzustellen ist es die ifft zu 
benutzen. Wir wissen ja dass ein Reckteckspecktrum bei der 
Transformation in den Zeitbereich einen unendlich langen Sinc-Impuls 
liefert.

Ich würde ihn so generieren:
1
  iNofSamples = 2048;
2
3
  X_f = zeros(1, iNofSamples);
4
5
  X_f(1:100) = 1;
6
  X_f(end-100:end) = 1;
7
8
  x_t = ifft( X_f );

X_f(end-100:end) = 1; stellt die periodische Wiederholung des Spektrums 
dar um somit ein reelles Zeitsignal zu erhalten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.