필터 지우기
필터 지우기

how to mute the signal at a certain time

조회 수: 1 (최근 30일)
Naufal Arfani
Naufal Arfani 2020년 12월 30일
편집: Paul Hoffrichter 2021년 1월 4일
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

답변 (1개)

Paul Hoffrichter
Paul Hoffrichter 2020년 12월 30일
편집: Paul Hoffrichter 2020년 12월 30일
This will remove all the leading zeros of a Sig vector:
Sig = Sig(find(Sig,1,'first'):end);
  댓글 수: 2
Naufal Arfani
Naufal Arfani 2021년 1월 3일
I have used this code on my simulink but it still doesn't work. Is it possible because the signal form is discrete with a sampling frequency of 1000 so that the shape [1 x 1000] can't use the code above or maybe I entered the code incorrectly? Please help me
function y = fcn(u)
Sig = u(find(u,1,'first'):end);
y = Sig;
Paul Hoffrichter
Paul Hoffrichter 2021년 1월 3일
편집: Paul Hoffrichter 2021년 1월 4일
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

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Signal Attributes and Indexing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by