Phase angle is producing an error
Mostrar comentarios más antiguos
Hi, I am getting a phase error on my waveform it is not quite reaching +pi or -pi in some cases(not everytime which I find strange). I think its leading to significant problems in other modules of my code. I have pin point the error to display quite nicely below. What is causing that?
clear all
% -- Controls --
f=5
Fs =100*f;
Ts = 1/Fs;
dt = 0 : Ts : 10/f;
% -- Waveform --
waveform = exp(1*i*((2*pi .* f .* dt) )) ;
waveform = waveform';
% -- Inspect Phase --
for a=1:length(waveform)
waveform_phase(a) = angle(waveform(a)); %radians
end
plot shows theres an error in phase, it is sometimes off the correct value of +pi or -pi
The below code has hline and vline - remove them if you don't have them but its more difficult to see the error
figure(1);cla;clf;
ax=gca; set(gca,'Fontsize',7)
yyaxis left
plot(dt,waveform_phase,'b','displayname','input phase','MarkerSize',4)
set(gca,'YTick',-pi:pi/2:pi)
set(gca,'YTickLabel',{'-\pi',' ','0',' ','\pi'})
ylabel('Phase (Radians)','Fontsize',7);
hline(pi,'--b')
hline(-pi,'--b')
yyaxis right
hold on
plot(dt,waveform,'r','displayname','input waveform')
set(gca)
ylim([min(real(waveform)) max(real(waveform))])
ylabel('Amplitude (V)','Fontsize',7);
hline(min(real(waveform)),'--r')
hline(max(real(waveform)),'--r')
legend('show','Location','southeast')
xlim([0 dt(end)/2])
xlabel('Time ','Fontsize',7);
Also If I increase sampling frequency its not noticeable by eye on the plot and the error is small, but still has effects in my overall code. I cant be having a sampling frequency 10000 above the max frequency to just measure phase?
4 comentarios
Adam
el 13 de Feb. de 2018
When I plot that I am not seeing a problem. For every trough the phase is either +pi or -pi. It is true it is not consistent as to which it is, but since they are the same thing is that a problem?
Nathan Kennedy
el 13 de Feb. de 2018
Editada: Nathan Kennedy
el 13 de Feb. de 2018
Adam
el 14 de Feb. de 2018
Yes, I get that also, but the value for that point is at precisely -pi which is the same thing as +pi as an angle. As you can see, you have placed exactly one arrow per trough, because each has its result at either +pi or -pi, which is what I said in my previous comment. It is not consistent, probably down to the vagueries of the fact that it is a discrete signal and in floating point accuracy so flips between -pi and +pi can happen in the same way you sometimes see things like -0 as well as 0.
If you unwrap the phase then it would be perfectly consistent.
Nathan Kennedy
el 14 de Feb. de 2018
Respuestas (0)
Categorías
Más información sobre Pulsed Waveforms en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!