[cfo_coarse_int]

- fixed for small signals
- fixed dimension problem

[Misc]
- cleaned up

git-svn-id: http://moon:8086/svn/matlab/trunk@70 801c6759-fa7c-4059-a304-17956f83a07c
This commit is contained in:
2015-05-03 15:26:05 +00:00
parent 7b52e9d66d
commit 6ddf56bdb4
3 changed files with 38 additions and 38 deletions
+8 -7
View File
@@ -14,7 +14,7 @@ if 1
bin_min = max(0, min(bin_pilots)-bins_search);
bin_max = min(N-1, max(bin_pilots)+bins_search);
Xk = zeros(N, 1);
Xk = zeros(size(x));
valid = 0;
d_bin = Zi.d_bin;
Zk = fft(x, N);
@@ -25,7 +25,7 @@ if 1
Zi.Xv = max(Zi.Xm, Zi.Xv);
Xt = abs(Zi.Xv(bin_min+1:bin_max+1));
xnoise = noiseFloor(Xt, 4)+noise_eps;
xnoise = noiseFloor(Xt, k_boost/2)+noise_eps;
bins = bin_min+find_bins(Xt, xnoise, k_boost, bins_search);
if (~isempty(bins))
@@ -75,22 +75,23 @@ Zf = Zi;
function bins = find_bins(x, xnoise, kboost, bins_search)
bins = [];
xn = x - xnoise;
for n=1:length(x)
if (x(n) > kboost*xnoise(n))
if (xn(n) > (kboost*xnoise(n)))
smin = max(1, n-bins_search);
smax = min(length(x), n+bins_search);
[v, nn] = max(x(smin:smax));
smax = min(length(xn), n+bins_search);
[v, nn] = max(xn(smin:smax));
winner = nn + smin-2;
if isempty(find(bins == winner))
bins = [bins winner];
end
n = min(length(x), n + bins_search);
n = min(length(xn), n + bins_search);
end
end
bins = bins';
function y = noiseFloor(x, kn)
y = zeros(size(x));
y(1) = x(1);
for n=2:length(x)
if (x(n) < kn*y(n-1))