How could I use if function to update the newest maximum value
2 views (last 30 days)
Show older comments
Hi all,
I am going to use photodiode to monitor my laser and capture the max power during the machine is operating.
So, I write the code to generate similar signal and want to build a tool for me can always update the maximum value in the real time.
I have thought about using "if" to update the max value when the latest one is higher but not sure how to implemente it?
Here is my code below, I used rand() to produce random amplitude signal:
fs = 50000; % 50 kHz frequency
Ts = 1/fs*10^9; % sample rate in neno seconds
t = 1:Ts;
pulse = t<=5;
rand_amp = rand(10,1);
sig = pulse.*rand_amp;
sig = reshape(sig', [], 1);
t_total = 1:numel(sig);
plot(t_total, sig);
%find the maximum
maxPulse= max(sig);
xlabel('Time (ns)');
ylabel('Amplitude');
0 Comments
Accepted Answer
Ameer Hamza
on 17 Apr 2020
Try this
fs = 50000; % 50 kHz frequency
Ts = 1/fs*10^9; % sample rate in neno seconds
t = 1:Ts;
pulse = t<=5;
rand_amp = rand(10,1);
sig = pulse.*rand_amp;
sig = reshape(sig', [], 1);
max_val = zeros(size(sig)); % save maximum value at each time step;
max_val(1) = sig(1); % first maximum value is the first sample of sig
for i=2:numel(max_val)
if sig(i) > max_val(i-1)
max_val(i) = sig(i);
else
max_val(i) = max_val(i-1);
end
end
t_total = 1:numel(sig);
figure;
plot(t_total, sig);
xlabel('Time (ns)');
ylabel('Amplitude');
figure;
plot(t_total, max_val);
xlabel('Time (ns)');
ylabel('Amplitude');
19 Comments
Ameer Hamza
on 23 Apr 2020
What do you mean by "final value set"? I am not sure how to use this matrix.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!