Borrar filtros
Borrar filtros

Problem with plotting a phase response of a time-series data FFT

3 visualizaciones (últimos 30 días)
Gustavo da Silva Lima
Gustavo da Silva Lima el 17 de Jun. de 2019
Comentada: Star Strider el 17 de Jun. de 2019
I'm trying to compare a time-series FFT to a transfer function frequency response. For this, I'm using the commands "abs" and "phase" to colect magnitude and phase, respectively, from the data and from the transfer function (using freqresp( ) command). However, when I plot the both graphs, the magnitude is ok, but phase response is not. It's returning to zero phase at the Nyquist Frequency (this frequency is the last one of my frequency vector).
See my code bellow :
Ryu_fft = fft(Ryu)/Ryu_length; %Obtainnig the FFT of my time-series data
Ryu_fft_dB = 20*log10(abs(Ryu_fft(1:NFFT/2+1))); %Evaluating the magnitude response
Ryu_fft_phase = phase(Ryu_fft(1:NFFT/2+1))*180/pi; %Evaluating Phase response in degrees
f = linspace(0,1,NFFT/2+1)
Now, see my semilogx() plot of this:
How could I fix this problem?
I suspect it is only a code problem once the magnitude is ok.

Respuestas (1)

Star Strider
Star Strider el 17 de Jun. de 2019
See if using the unwrap function on the phase vector (in radians, before transforming it to degrees) has the desired effect.
I do not recognise the phase function, since it appears only in:
C:\Program Files\MATLAB\R2019a\toolbox\ident\idobsolete\phase.m
  2 comentarios
Gustavo da Silva Lima
Gustavo da Silva Lima el 17 de Jun. de 2019
Thank you for help me. Unfortunately the command "unwrap", implemented as you suggested, is not solving my problem.
About the command "phase"...yes, I'm using this to identify a dynamic system. I've tried to use angle() and atan2(), but "phase" looks better.
Star Strider
Star Strider el 17 de Jun. de 2019
My pleasure.
Oh, well.
It was just an hypothesis that phase-wrapping was the problem. Not enough information for any other Answer.

Iniciar sesión para comentar.

Comunidades de usuarios

Más respuestas en  Power Electronics Control

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by