Implementation low pass filter on array

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
4 replies · 4K views
samaaa
Messages
48
Reaction score
0
hi guys:

if i have signal(YT) consist of two frequencies(30 and 300 Hz),as the following:

Code:
t=0:1/1000:1;

Y30=sin(2*pi*t*30);

Y300=sin(2*pi*t*300);

YT=Y30+Y300;

i want remove the frequency of 300 Hz from(YT) by using low pass filter

so how can i do that(by using MATLAB command)?
 
Last edited:
on Phys.org
samaaa said:
hi guys:

if i have signal(YT) consist of two frequencies(30 and 300 Hz),as the following:

Code:
t=0:1/1000:1;

Y30=sin(2*pi*t*30);

Y300=sin(2*pi*t*300);

YT=Y30+Y300;

i want remove the frequency of 300 Hz from(YT) by using low pass filter

so how can i do that(by using MATLAB command)?

Do you want to use an analog or a digital filter?

The basic steps would be:

1. Design your filter. (Get the coefficients for your implementation, either digital or analog).

2. Simulate your filter performance when fed with the data "YT". (Use the command "filter" to simulate a digital filter and for example 'lsim' for an analog filter).

BTW. This looks like homework. What have you done so far?
 
uart said:
Do you want to use an analog or a digital filter?

digital filter( for signal similar audio signal )

uart said:
The basic steps would be:

1. Design your filter. (Get the coefficients for your implementation, either digital or analog).

2. Simulate your filter performance when fed with the data "YT". (Use the command "filter" to simulate a digital filter )

how can i do that,?
please explain more


uart said:
This looks like homework
No

i have a project (to make PC read ECG signals) this project need low pass filter to remove noise
 
Do you currently know anything about filter design?

There are many way to design a filter, but here is a very simple example based on a first order continuous time LPF with cut off at 30 Hz. This is just an example to show how to use the MATLAB commands, you'll probably need a better filter than this.

Code:
% Set up time base (sample period = 0.0005).
dt = 0.0005;
t =[ 0:dt:0.5];

% Set up signal
Y30=sin(2*pi*t*30);
Y300=sin(2*pi*t*300);
YT=Y30+Y300;

% Take a look at the signal + noise.
figure(1)
plot(t,YT)

% Construct very simple example continuous time filter ("s" domain ).
nums = [1];
dens = [1/60/pi, 1];

% Bilinear conversion to a digital filter ("z" domain).
[numz,denz] = bilinear(nums,dens,dt);

% Run the data through the above designed filter.
YTfilt = filter(numz,denz,YT);

% Take a look at the results.
figure(2)
plot(t,YTfilt)
 
Last edited:
uart said:
Do you currently know anything about filter design?
yes

There are many way to design a filter, but here is a very simple example based on a first order continuous time LPF with cut off at 30 Hz. This is just an example to show how to use the MATLAB commands, you'll probably need a better filter than this.

Code:
% Set up time base (sample period = 0.0005).
dt = 0.0005;
t =[ 0:dt:0.5];

% Set up signal
Y30=sin(2*pi*t*30);
Y300=sin(2*pi*t*300);
YT=Y30+Y300;

% Take a look at the signal + noise.
figure(1)
plot(t,YT)

% Construct very simple example continuous time filter ("s" domain ).
nums = [1];
dens = [1/60/pi, 1];

% Bilinear conversion to a digital filter ("z" domain).
[numz,denz] = bilinear(nums,dens,dt);

% Run the data through the above designed filter.
YTfilt = filter(numz,denz,YT);

% Take a look at the results.
figure(2)
plot(t,YTfilt)


thank you very much uart for this code:smile: