Code covered by the BSD License
-
Events and listeners
-
Test Handle class
-
Test Inherited Class
-
Test Simple Object
-
Test for Sensor Array Data Se...
-
Test for Sensor Array Data Se...
-
Data=gendata(Targets,NumSenso...
Generates the sensor sample data
-
[mags, fflip]=magfft(obj,zero...
MAGFFT Calculate the magnitude square of the FFT of the
-
angles=doa(obj)
DOA Estimate the direction of arrival of the sources in the
-
evCallback(src,evnt)
-
evDataCallback(src,evnt)
-
magfftplot(obj, zeroPadTo)
MAGFFTPLOT Plot the magnitude square of the FFT of the sensor array data
-
obj=steer(obj,theta)
Steer array electronically by angle theta, returning a new
-
plot(obj)
PLOT Plot the sensor array sample data set
-
showarray(Targets,NumSensors,...
SHOWARRAY Illustrate a sensor array with ideal sources
-
ev
-
handleImp.sads
Sensor Array Data Set Handle Class
-
inheritedImp.sadsT
-
sads
-
sads_simple
SADS_SIMPLE Sensor Data Set Class
-
valueImp.sads
Sensor Array Data Set Class
-
loadparameters.m
-
Test Handle class
-
View all files
from
What's New for Object-Oriented Programming in MATLAB Webinar - Code Examples
by Stuart McGarrity
Code examples used in "What's New for Object-Oriented Programming in MATLABĀ®" Webinar
|
| angles=doa(obj)
|
function angles=doa(obj)
% DOA Estimate the direction of arrival of the sources in the
% sensor array data set using simplistic peak finding method
% Example:
% angels=doa(ds)
zeroPadTo=256;
[mags, fflip]=magfft(obj,zeroPadTo);
maxtab=peakdet(mags,.1); % Use peakdet function
angles=sort(fflip(maxtab(:,1))*180); % Angles
end
function [maxtab, mintab]=peakdet(v, delta)
%PEAKDET Detect peaks in a vector
% [MAXTAB, MINTAB] = PEAKDET(V, DELTA) finds the local
% maxima and minima ("peaks") in the vector V.
% A point is considered a maximum peak if it has the maximal
% value, and was preceded (to the left) by a value lower by
% DELTA. MAXTAB and MINTAB consists of two columns. Column 1
% contains indices in V, and column 2 the found values.
% Eli Billauer, 3.4.05 (Explicitly not copyrighted).
% http://www.billauer.co.il/peakdet.html
% This function is released to the public domain; Any use is allowed.
maxtab = [];
mintab = [];
v = v(:); % Just in case this wasn't a proper vector
if (length(delta(:)))>1
error('Input argument DELTA must be a scalar');
end
if delta <= 0
error('Input argument DELTA must be positive');
end
mn = Inf; mx = -Inf;
mnpos = NaN; mxpos = NaN;
lookformax = 1;
for i=1:length(v)
this = v(i);
if this > mx, mx = this; mxpos = i; end
if this < mn, mn = this; mnpos = i; end
if lookformax
if this < mx-delta
maxtab = [maxtab ; mxpos mx];
mn = this; mnpos = i;
lookformax = 0;
end
else
if this > mn+delta
mintab = [mintab ; mnpos mn];
mx = this; mxpos = i;
lookformax = 1;
end
end
end
end
|
|
Contact us at files@mathworks.com