- improved
git-svn-id: http://moon:8086/svn/software/trunk/projects/GnuRadio@433 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
+16
-12
@@ -28,29 +28,32 @@ function retval = peak_detect ()
|
|||||||
N = 1024
|
N = 1024
|
||||||
Nh = N/2;
|
Nh = N/2;
|
||||||
kn = 0.1
|
kn = 0.1
|
||||||
|
ks = 0.1;
|
||||||
close all;
|
|
||||||
figure
|
|
||||||
|
|
||||||
pa = 0.3;
|
pa = 0.3;
|
||||||
d_max = 30;
|
d_max = 30;
|
||||||
|
|
||||||
|
am = 0.1;
|
||||||
|
as = 0.9;
|
||||||
|
Ad = 10;
|
||||||
|
Cm = 1;
|
||||||
|
|
||||||
s = zeros(1, Nh);
|
s = zeros(1, Nh);
|
||||||
a = zeros(1, Nh);
|
a = zeros(1, Nh);
|
||||||
Xm = zeros(1, Nh);
|
Xm = zeros(1, Nh);
|
||||||
Xs = zeros(1, Nh);
|
Xs = zeros(1, Nh);
|
||||||
peak_count = zeros(1, Nh);
|
peak_count = zeros(1, Nh);
|
||||||
am = 0.1;
|
|
||||||
as = 0.9;
|
|
||||||
|
|
||||||
for k=1:64
|
close all;
|
||||||
|
figure
|
||||||
|
for k=1:128
|
||||||
% Peak generation
|
% Peak generation
|
||||||
f = fix(N/2*rand());
|
|
||||||
k = f + 1;
|
k = fix(Nh*rand() + 1);
|
||||||
|
|
||||||
if (rand() < pa)
|
if (rand() < pa)
|
||||||
if (s(k) == 0)
|
if (s(k) == 0)
|
||||||
a(k) = 1.0;
|
a(k) = ks;
|
||||||
s(k) = fix(d_max*rand());
|
s(k) = fix(d_max*rand());
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -58,7 +61,8 @@ for k=1:64
|
|||||||
for n = 1:Nh
|
for n = 1:Nh
|
||||||
if s(n) > 0
|
if s(n) > 0
|
||||||
s(n) = s(n) - 1;
|
s(n) = s(n) - 1;
|
||||||
x = x + a(n)*cos(2*pi*n*(0:N-1)/N);
|
f = 0.5-rand() + n;
|
||||||
|
x = x + a(n)*cos(2*pi*f*(0:N-1)/N);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
X = abs(fft(x))/sqrt(N);
|
X = abs(fft(x))/sqrt(N);
|
||||||
@@ -67,9 +71,9 @@ for k=1:64
|
|||||||
|
|
||||||
% Peak detection
|
% Peak detection
|
||||||
Xs = (1-as)*Xs + as*X;
|
Xs = (1-as)*Xs + as*X;
|
||||||
Xm_gate = Xs > (10+Xm);
|
Xm_gate = Xs > (Ad+Xm);
|
||||||
peak_count = Xm_gate.*peak_count + Xm_gate;
|
peak_count = Xm_gate.*peak_count + Xm_gate;
|
||||||
peak = peak_count > 1;
|
peak = peak_count > Cm;
|
||||||
% Update Xm at no-peak bins
|
% Update Xm at no-peak bins
|
||||||
Xm = (1-peak) .* ((1-am)*Xm + am*X) + peak.*Xm;
|
Xm = (1-peak) .* ((1-am)*Xm + am*X) + peak.*Xm;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user