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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.