how to mute the signal at a certain time

2 views (last 30 days)
Naufal Arfani
Naufal Arfani on 30 Dec 2020
Edited: Paul Hoffrichter on 4 Jan 2021
I have a signal data that at t = 0 to t = 1 has a constant value of 0 and only at t = 1 etc. you can see the results, how do I get rid of the signal data contained at t = 0 to t = 1 or make the signal data reading start from t = 1

Answers (1)

Paul Hoffrichter
Paul Hoffrichter on 30 Dec 2020
Edited: Paul Hoffrichter on 30 Dec 2020
This will remove all the leading zeros of a Sig vector:
Sig = Sig(find(Sig,1,'first'):end);
  2 Comments
Paul Hoffrichter
Paul Hoffrichter on 3 Jan 2021
Edited: Paul Hoffrichter on 4 Jan 2021
A sampling frequency of 1000 means there are 1000 samples per second. But if your signal is [1x1000], then the duration is 1 second.
>> I have a signal data that at t = 0 to t = 1 has a constant value of 0.
I assumed your units for t was in seconds. If so, then your entire [1x1000] signal is filled with 0's. I do not see how you can have more than 1 seconds worth of data if you only have 1000 samples.
The answer I provided did not take into account your sampling frequency, Fs, since it was not mentioned. Your fcn() shifts the input, u, to the left removing all leading 0's.
close all
x = zeros(1,500);
rn = rand(1,200);
x(301:end) = rn;
figure, plot(x);
% Remove leading 0's
y = fcn(x);
figure, plot(y,'g')
function y = fcn(u)
y = u(find(u,1,'first'):end);
end

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by