My requirement is to use a moderate controller (Non DSP) and take analog sinusoidal signals (half second cycle 50 hz) , take their samples, do a Fourier transform to remove harmonics and then multiply them to find instantaneous power. Then do a Low Power Filtering operation on this power signal. Is it possible? has anyone implemented anything similar or am I being too ambitious? please post your comments about its feasibility.
Thanks, Rohan
Didn't find your answer? Ask the community — no account required.
D
Donald
The big question is "in real time?".
Do you want to do this in C ?
So, Yea but, is your answer.
J
Jim Granville
It is possible, depends on your precision, harmonics and samples. I've seen some of the better 80C51's used for mains FFT work.
Look at some of the metering ICs like
formatting link
or
formatting link
-jg
T
Tauno Voipio
Are you sure that Fourier is the way to go instead of a simpler low-pass filter?
You can implement a quite fancy filter at about
70 Hz corner frequency with the calculation tedium of a FFT / inverse FFT pair.
The main difference of a DSP to a more common processor is the ability to make a very fast scalar product of two vectors, i.e. multiply the vectors element-by-element and add the products. If your application stands doing the same with a garden-variety processor, you can use it.
To get a reasonable amount of samples in a cycle, you will need a sample rate around 1000 samples per channel and second. This is not a problem for modern controllers.
A good point to ponder is whether a 8 bit controller can handle it or if a more powerful 32 bit chip would better fill the bill. The main considerations here are cost and needed calculation resolution.
(I'd consider some of the ARM's here, e.g. Atmel AT91's).
Tauno Voipio
tauno voipio (at) iki fi
R
Rohan
I think low pass filter is a good idea. can you guide me how the FFT / inverse FFT pair could give a corner frequency of 70hz. this should solve the problem I am using a renesas R8C series 16 bit processor. This is the first time i am dealing with analog/digital signals so my knowledge is limited to the books. Its the function of a AD7751 metering IC whose function I have to emulate inside the controller. Yes it has to be done in real time. So logic should be about 1000 samples per second, Low pass filter at 70 hz, multiply over a cycle and take average? is it feasible? And also do ADC give a negative value for negative half cycles. If no then how do you take care of it?
T
Tauno Voipio
The filter should be done *without* any Fourier transform at all.
Please get an elementary textbook on digital signal processing and learn the filter design. There are quite a lot of different design decisions that *you* have to make.
IMHO, yes. It depends on your other design decisions, however.
Pretty many ADCs can be set up for bi-polar operation. Have a look at the manual of the converter you have.
Tauno Voipio
tauno voipio (at) iki fi
E
Eugene V. Upenik
I have designed a similar (but quite simpler) system. The idea is in using fast FIFO memory to read from ADC and hold a signal and then operate with data in non-real time by slow mcu.
R
Rohan
Hi all, Thanks for the wonderful support. Have got the book and working on my DSP skills. Thats the most important first step. Thanks hi Eugene. I am also looking at simplifying design. I have to ensure I have an average power being calculated every half second. so its like non real time. could you guide me a little more about what kind of system you are using. I couldn't get the logic from your post. Thanks a lot
F
Frank-Christian Kruegel
Look here. There is a reference design available.
formatting link
Mit freundlichen Grüßen
Frank-Christian Krügel
W
werty
C dont do machine code , Forth does . H/w is too cheap to ignore ....
_____________________________________________
D>
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.