- normalized phase
git-svn-id: http://moon:8086/svn/matlab/trunk@130 801c6759-fa7c-4059-a304-17956f83a07c
This commit is contained in:
+11
-11
@@ -26,18 +26,18 @@
|
|||||||
function retval = mc_pd_eval3 (perr, freq, slave_oversample)
|
function retval = mc_pd_eval3 (perr, freq, slave_oversample)
|
||||||
|
|
||||||
Nc = 10;
|
Nc = 10;
|
||||||
Nspc = 96;
|
Nspc = 25;
|
||||||
|
|
||||||
ka = 0.9;
|
ka = 0.9;
|
||||||
klead = 0.4;
|
klead = 0.8;
|
||||||
klag = 0.01/slave_oversample;
|
klag = 0.04/slave_oversample;
|
||||||
lag = 0;
|
lag = 0;
|
||||||
|
|
||||||
# Create master
|
# Create master
|
||||||
xm = [];
|
xm = [];
|
||||||
for n=1:Nspc,
|
for n=1:Nspc,
|
||||||
for m=1:slave_oversample,
|
for m=1:slave_oversample,
|
||||||
xm = [xm n];
|
xm = [xm n/Nspc];
|
||||||
endfor
|
endfor
|
||||||
endfor
|
endfor
|
||||||
x = repmat(xm, 1, Nc);
|
x = repmat(xm, 1, Nc);
|
||||||
@@ -46,13 +46,13 @@ N = Nc*Nspc*slave_oversample;
|
|||||||
assert (N == length(x));
|
assert (N == length(x));
|
||||||
|
|
||||||
# Create slave
|
# Create slave
|
||||||
pc = Nspc/2 + perr;
|
pc = 0.5 + perr;
|
||||||
dfreq = freq/slave_oversample;
|
dfreq = freq/slave_oversample;
|
||||||
dpc = dfreq;
|
dpc = 0;
|
||||||
|
|
||||||
sample_count = slave_oversample;
|
sample_count = slave_oversample;
|
||||||
for n=1:N,
|
for n=1:N,
|
||||||
perr = phase_det(pc, x(n), Nspc);
|
perr = phase_det(pc, x(n));
|
||||||
sample_count = sample_count - 1;
|
sample_count = sample_count - 1;
|
||||||
if sample_count == 0,
|
if sample_count == 0,
|
||||||
sample_count = slave_oversample;
|
sample_count = slave_oversample;
|
||||||
@@ -60,15 +60,15 @@ for n=1:N,
|
|||||||
perr = 0;
|
perr = 0;
|
||||||
end
|
end
|
||||||
dpc = dfreq - (klag*lag + klead*perr);
|
dpc = dfreq - (klag*lag + klead*perr);
|
||||||
pc = mod(pc + dpc, Nspc);
|
pc = mod(pc + dpc, 1);
|
||||||
lag = lag + perr;
|
lag = lag + perr;
|
||||||
_lo(n) = mod(pc - Nspc/2 - 1/slave_oversample, Nspc);
|
_lo(n) = mod(pc - 0.5 - 1/slave_oversample/Nspc, 1);
|
||||||
_perr(n) = perr;
|
_perr(n) = perr;
|
||||||
_dpc(n) = dpc;
|
_dpc(n) = dpc;
|
||||||
end
|
end
|
||||||
|
|
||||||
function perr = phase_det(lo, x, Nspc)
|
function perr = phase_det(lo, x)
|
||||||
perr = mod((lo - x), Nspc) - Nspc/2;
|
perr = mod((lo - x), 1) - 0.5;
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
close all;
|
close all;
|
||||||
|
|||||||
Reference in New Issue
Block a user