how to mute the signal at a certain time
4 views (last 30 days)
Show older comments
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
0 Comments
Answers (1)
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
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
See Also
Categories
Find more on Signal Generation and Preprocessing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!