[Matlab] Fase uit een FFT transformatie halen

Pagina: 1
Acties:
  • 139 views sinds 30-01-2008
  • Reageer

  • vanThijs
  • Registratie: Juni 2003
  • Laatst online: 28-12-2025
Eerst en vooral, ik weet niet of programmeren in matlab hier thuis hoort, indien niet, trash het dan aub niet, maar verplaats het of laat het mij weten,dan start ik het draadje wel op de juiste plaats.


Mijn probleem:
Voor een eindwerk moet ik in de eerste plaats een studie maken naar de frequentiecomponenten (Harmonischen) die optreden bij het digitaal genereren van een analoog signaal(in het eerste geval een sinus), of bij het kwantiseren van een analoog signaal. Dit gebeurt aan de hand van een DFT, uitgevoerd door een FFT functie.
Ook moet ik de momentele fase en error van elke sample bekomen.
Tot zover geen probleem, hier is de code die ik gebruik voor de fase:
code:
1
2
3
%Phase calculation
phase=unwrap(angle(fftResampledSin));  
timebase=(0:length(fftResampledSin)-1*100/length(fftResampledSin));

De 'fftResampledSin' zijn de reële componenten en de imaginaire, welke voortkomen uit de fft van een sinus.
Het echte probleem is echter de normalisatie van de waarden.
Nu zieh het er zo uit (let op de waardes bij de phase: 1-5*10e5):
Afbeeldingslocatie: http://users.pandora.be/vanthijs/eindwerk/fase.jpg
Ik zou graag een fase krijgen die van -pi tot +pi gaat (of van 0 tot 2pi), maar ik zie niet in hoe ik dit kan bereiken. (de angle functie geeft waardes uit in rad, als alles goed is)

Verwijderd

Waarom 'unwrap' je de fase? Deze functie zorgt er nu juist voor dat je fase van 0 tot 5e4 loopt.

  • vanThijs
  • Registratie: Juni 2003
  • Laatst online: 28-12-2025
Ik heb even 2 graphjes gemaakt, 1 nog steeds gewrapped, 1 geunwrapped.
Afbeeldingslocatie: http://users.pandora.be/vanthijs/eindwerk/Unwrapped.jpg
Afbeeldingslocatie: http://users.pandora.be/vanthijs/eindwerk/Wrapped.jpg
Deze zijn natuurlijk beide genomen met dezelfde waardes.
Ik heb de angle waarde*180/pi gedaan om graden te bekomen.

De unwrap functie gebruik ik dus om het resultaat een beetje begrijpbaar te maken(anders heb je bij een hogere sample waarde een dikke blauwe balk :9 ).Het zal dus niet mogelijk zijn met de unwrap, spijtig.

Ik begrijp niet waarom de nog gewrapte waarde niet het volledige bereik (-pi tot pi) aandoet, want het 2e deel van de plot kan je normaal laten vallen, dit is een redundant deel, dat ontstaat door de FFT transformatie.

[ Voor 64% gewijzigd door vanThijs op 25-05-2006 14:54 ]