Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Digital Filter using microcontroller

Status
Not open for further replies.

learner71

Member level 2
Joined
Jan 5, 2010
Messages
42
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Activity points
1,532
Hi,
I want to design digital filters like low pass,high pass and band pass filter using microcontrollers. Kindly tell me, how can i do this on 8051.

----------
Learner
 

You need to be more specific on your filter requirements. Providing that the -3dB spec of your filter is low, the 8051 may nor be fast enough.
It will be an huge benifit if the micro processor can do A2D and D2A
 
depending on requirements I would use a dsPIC or a Txeas DSP processor. For a start have a look at
**broken link removed**
 

Thanks to all of you.
I do not know programming of DSP Processor. I want to make low pass filter using microcontroller. Can you tell me the logic, how should i make low pass filter.

------------
Learner
 

Last edited:

I would read up on filter design. The most basic lowpass filter might be something like:
y[n] = x[n] + x[n-1]
this would be the most basic moving average filter. the filtering capabilities are very poor, but it is very simple. The moving average is conceptually easy to understand, and a good starting point -- especially if it actually meets your requirement.
This type of filter also has a micro-friendly implementation based on recursion. eg:
y[n] = y[n-1] - x[n-2] + x[n]
The advantage becomes more apparent when you use a longer "window", eg:
y[n] = y[n-1] - x[n-32] + x[n]
This filter does require 32 samples of data be stored in memory, but requires no multiplications.

The most basic IIR filter is:
y[n] = k*y[n-1] + (1-k)*x[n]
which requires two multiplications, or requires "k" be chosen as a nice value. eg 0.5 or 0.25. (0.75 can be done using addition of 0.5 and 0.25)
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top