Implementation low pass filter on array

AI Thread Summary
The discussion revolves around using MATLAB to remove a 300 Hz frequency from a combined signal consisting of 30 Hz and 300 Hz components. The user seeks guidance on implementing a low-pass filter to achieve this. Participants suggest designing a digital filter, emphasizing the importance of filter coefficients and simulation commands like "filter" for digital implementations. A simple example of a first-order continuous time low-pass filter with a cutoff at 30 Hz is provided, detailing the setup of the time base, signal creation, and the steps to convert to a digital filter using bilinear transformation. The final output is visualized through plots to compare the original and filtered signals. The conversation highlights practical steps for filter design in MATLAB, suitable for applications like ECG signal processing.
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:
Physics news 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:
 

Similar threads

Replies
4
Views
3K
Replies
10
Views
3K
Replies
5
Views
6K
Replies
8
Views
2K
Replies
6
Views
984
Replies
1
Views
3K
Replies
27
Views
3K
Replies
4
Views
3K
Back
Top