how to mute the signal at a certain time

4 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.

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!

Translated by