Forum: Digitale Signalverarbeitung / DSP / Machine Learning (FFT) Zeitverschiebung im Frequenzbereich matlab


von Jan (Gast)


Lesenswert?

Hallo Signalverarbeiter und Matlabfreunde

folgendes Anliegen. Ich möchte ein weißes Rauschen mit 1024 Werten was 
ich mit randn erzeuge im Frequenzbereich mit der Multiplikation von 
e^-(j*wi*t0) mit i0....i1024 im Zeitbereich um t0 verschieben.

Weißes Rauschen hat sozusagen ein Rechteckspektrum und somit müsste man 
auch 1024 Frequenzzellen alle mit e^-(j*wi*t0) multiplizieren um eine 
entsprechende Verschiebung um t0 im Zeitbereich zu erreichen.

Mir fehlt bei der Umsetzung irgendwie der Ansatz vielleicht könnte mir 
jemand Hilfestellung geben.

von Dogbert (Gast)


Lesenswert?

Ganz grundlegend multipliziert man jede komplexe Zahl aus der fft so:

t0 ist normiert auf die Anzahl fft samples.
1
for (sample=0; sample<samples; sample++)
2
{
3
  freq[sample].real*=cos(sample*t0*2.0*M_PI/samples);
4
  freq[sample].imag*=sin(sample*t0*2.0*M_PI/samples);
5
}
Ist in matlab aber wohl kompakter und eleganter zu formulieren, oder 
auch wenn man in C complex typen verwendet.

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.