How to write a code in Matlab having two conditions?
1 view (last 30 days)
Show older comments
Samson David Puthenpeedika
on 19 Nov 2021
Commented: Samson David Puthenpeedika
on 20 Nov 2021
how to create rectangle filter with following condition;
f(t)= 1; -0.1secs< t < 0.1 secs
f(t)= 0; otherwise
Below i have tried but getting error.
n=2048; %samples
fs=1024; %sampling frequency
T=1/fs;
t = (0:n-1)*T;
F=zeros(length(t));
for i=0:length(t)
if t(i)<=0.1
F(i)=1;
else
F(i)=0;
end
end
Accepted Answer
Dave B
on 20 Nov 2021
Edited: Dave B
on 20 Nov 2021
In MATLAB indices start with 1:
n=2048; %samples
fs=1024; %sampling frequency
T=1/fs;
t = (0:n-1)*T;
F=zeros(length(t));
for i=1:length(t)
if abs(t(i))<=0.1 % technically better because it covers the negative case
F(i)=1;
else
F(i)=0; % not really needed because you initialized F with all zeros...
end
end
But note, you don't need a loop for this kind of thing:
F2=zeros(length(t));
F2(abs(t)<=.1)=1;
isequal(F2,F)
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!