MATLAB ifft < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Hallo,
ich glaube ich habe den VOLLEN denkfehler und hoffe ihr könnt mir helfen:
ich möchte im MATLAB ein "Spektrum" vorgeben und mit IFFT auf die Schwingung zurückrechnen.. Dazu lege ich mir einen Null-Vektor mit 2048 Nullen an und setze 2 (um die Mitte symm.) Werte auf 10 (beliebig). Ich kümmere mich NICHT um die PHASE!
Und nun mache ich die ifft und bekomme einen schönen COS in einer Einhüllenden die wiederum eine Schwinugung ist.
Meine Theorie: da ich nur 2 PEAKS gesetzt habe, rechenet MATLAB (logischerweise) eine SINC-Funktion in den "zeitbereich".
Kann mir wer sagen, wie ich trotzdem einen schönen COS über die gesamte Abtastperiode kriege?
DANKE,DANKE,DANKE!!!
Martin
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt
|
|
|
|
ich schätzte mal dein prolem liegt darin das du das ganze um die mitte symetrisch aufziehst. bei der fft ist die nullfrequenz auf eins dann geht es weiter mit den positiven freuquenzen bis zur nyquist frequenz und dann wieder runter.
versuch mal den code
x=cos((0:2047)/2047*40*pi);
plot(1:2048,ifft(abs(fft(x))),1:2048,x)
ein wenig trivial aber liefert im prinzip genau das was du haben willst.
kannst ja mal bei abs(fft(x)) schauen wo du die frequenzen setzten müsstes. eine andere option ist es den befehl fft shift zu benutzen. der wandelt ein mittig zentriertes frequenzbild in eins eines diskreten um und umgekehrt. kleiner tipp noch versuches doch erstmal mit 128 punkten zum testen.
grüße physikus
|
|
|
|