(FFT) Zeitverschiebung im Frequenzbereich matlab

Gast #3190070
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.
Gast #3190761
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren