Skip to content

Commit

Permalink
1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
FoxyLab committed Sep 18, 2015
1 parent a1c618c commit fbc2551
Showing 1 changed file with 25 additions and 22 deletions.
47 changes: 25 additions & 22 deletions geiger.m
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@
% ñåðèÿ èç íåñêîëüêèõ èçìåðåíèé
clc; % î÷èñòêà îêíà êîìàíä
close all; % óäàëåíèå ôèãóð
disp('© 2015 acdc.foxylab.com');
disp('***** Geiger counter *****');
disp('**************************');
disp('***Moving average algorithm***');
disp('Alexey V. Voronin @ FoxyLab © 2015');
disp('https://acdc.foxylab.com');
disp('**************************');
%ââîä äëèòåëüíîñòè èçìåðåíèé, ñåêóíäû
prompt = {'Measurement period, sec'};
defans = {'900'};
answer = inputdlg(prompt,'Measurement period',1,defans);
Expand All @@ -18,6 +20,7 @@
error('Incorrect value!');
end;
disp(sprintf('T = %d sec',nums));
%ââîä øèðèíû îêíà "ñêîëüçÿùåãî ñðåäíåãî", ñåêóíäû
prompt = {'Moving average window size, sec'};
defans = {'900'};
answer = inputdlg(prompt,'Moving average window size',1,defans);
Expand All @@ -32,33 +35,33 @@
pause = 5; % äëèíà ïàóçû â ñýìïëàõ
ai = analoginput('winsound'); % creates the analog input object AI for a sound card having an ID of 0 (adaptor must be winsound)
addchannel(ai,1);
set (ai, 'SampleRate', Fs); % set the sample rate
set (ai, 'SamplesPerTrigger', duration*Fs); % set number of samples to acquire
set (ai, 'TriggerType', 'Manual'); % set acquisition start type
set (ai, 'SampleRate', Fs); %óñòàíîâêà ÷àñòîòû îöèôðîâêè
set (ai, 'SamplesPerTrigger', duration*Fs); %çàäàíèå ÷èñëà ñýìïëîâ äëÿ çàõâàòà
set (ai, 'TriggerType', 'Manual'); %ðó÷íîé ñòàðò çàõâàòà
set(ai,'TriggerRepeat',Inf);
start(ai); % The start command will start the acquisition running
MAs = []; % ñîçäàåì ìàññèâ äëÿ õðàíåíèÿ âñåõ MA
MABuffer = []; % ñîçäàåì ìàññèâ äëÿ ïîäñ÷åòà MA
MASize = window;%ðàçìåð áóôåðà ðàâåí ðàçìåðó îêíà
MACount = 0;%ñáðîñ ñ÷åò÷èêà çàïîëíåíèÿ áóôåðà
for m =1:1:MASize %î÷èñòêà áóôåðàû
start(ai); %ãîòîâíîñòü ê íà÷àëó çàõâàòà
MAs = []; %ñîçäàåì ìàññèâ äëÿ õðàíåíèÿ âñåõ MA
MABuffer = []; %ñîçäàåì ìàññèâ äëÿ ïîäñ÷åòà MA
MASize = window; %ðàçìåð áóôåðà ðàâåí ðàçìåðó îêíà
MACount = 0; %ñáðîñ ñ÷åò÷èêà çàïîëíåíèÿ áóôåðà
for m =1:1:MASize %î÷èñòêà áóôåðà
MABuffer(m) = 0;
end;
pulse = false;%ñáðîñ ôëàãà èìïóëüñà
pauseCount = 0;% îáíóëåíèå äëèòåëüíîñòè ïàóçû
count = 0;%îáíóëåíèå ñ÷åò÷èêà MA
trigger(ai);%íà÷àëî çàõâàòà
pulse = false; %ñáðîñ ôëàãà èìïóëüñà
pauseCount = 0; % îáíóëåíèå äëèòåëüíîñòè ïàóçû
count = 0; %îáíóëåíèå ñ÷åò÷èêà MA
trigger(ai); %íà÷àëî çàõâàòà
while (count < nums) %öèêë èçìåðåíèé
data = getdata(ai); % And to read the data use the getdata function
trigger(ai);% the data samples will not be stored in the data acquisition engine until the TRIGGER command is issued
data = getdata(ai); %÷òåíèå äàííûõ
trigger(ai); % the data samples will not be stored in the data acquisition engine until the TRIGGER command is issued
% GETDATA is a "blocking" function. This means that it will wait until all data have been collected
size = length(data);%ðàçìåð ìàññèâà äàííûõ
pulseCount = 0;% îáíóëåíèå ñ÷åò÷èêà èìïóëüñîâ â èçìåðåíèè
for i = 1:1:size % öèêë ïî âñåì ñýìïëàì
% åñëè èìïóëüñ åùå íå íà÷àëñÿ
size = length(data); %ðàçìåð ìàññèâà äàííûõ
pulseCount = 0; %îáíóëåíèå ñ÷åò÷èêà èìïóëüñîâ â èçìåðåíèè
for i = 1:1:size %öèêë ïî âñåì ñýìïëàì
%åñëè èìïóëüñ åùå íå íà÷àëñÿ
if (pulse == false)
if (abs(data(i))>threshold)
% åñëè óðîâåíü ïðåâûøàåò ïðåäåë, òî ïîäíèìàåì ôëàã íà÷àëà èìïóëüñà
%åñëè óðîâåíü ïðåâûøàåò ïðåäåë, òî ïîäíèìàåì ôëàã íà÷àëà èìïóëüñà
pulse = true;
end
else
Expand Down

0 comments on commit fbc2551

Please sign in to comment.