# Transfer function of an ADC

1. Aug 19, 2013

### btb4198

I have a incoming signal from a analog to digital converter, how do I turn it in to a transform function ?

so how to turn a graph into a transform function?
So want to take the incoming signal and used a fast Fourier transform (FFT).
so I will take the incoming signal built a function from there
f(t) = incoming signal
then built a transform function
H(t) = incoming signal as transform function
than do a
F(w) = FFT of incoming signal.

Last edited: Aug 19, 2013
2. Aug 19, 2013

### rbj

well, i know what a "[Fourier|Laplace|Hilbert|Z] transform" is and i know what a "transfer function" is, but i am unsure what a "transform function" is.

could you help identify or define that term?

3. Aug 19, 2013

### btb4198

sorry...
I meant transfer function

4. Aug 19, 2013

### Staff: Mentor

To gather the data for your transfer function and graph it, you will need to have a variable frequency signal source. You will slowly step the signal source from the lowest to the highest frequency of interest, in frequency steps that make sense to you for your system. You will compare the peak-to-peak input signal amplitude to the biggest-minus-smallest ADC output numbers that you get at each frequency, and then produce your transfer function graph from those data.

Make sense?

5. Aug 19, 2013

### btb4198

the variable frequency signal source will be a human. I am doing voice analysis.
so I will not know the frequency.
I will be reading a human voice signal in to a mic and to a computer.
what do you mean by frequency steps ?

I Know the sign will be a some thing like
H(t) = Asin(tF)

something like that right ?

6. Aug 19, 2013

### Staff: Mentor

If you want to know the transfer function, you will need to borrow/buy a variable frequency signal generator that covers the audio frequency range. You will also need an oscilloscope to observe the input signal to your circuit, to verify what the Vpp amplitude is.

You could vary the input signal from 20Hz to say 10kHz, and do it in logarithmic steps to save some test time. Like, 20Hz, 50Hz, 100Hz, 200Hz, 500Hz, 1kHz, 2kHz, 5kHz, 10kHz. At each frequency, you will read the ADC output a bunch of times, to determine what the maximum and minimum output codes are. The peak-to-peak output from the ADC is just the difference between that maximum and minimum code. Determine this input-to-output amplitude behavior for each of the test frequencies, and plot that on a graph.

Presumably the transfer function should be pretty flat if everything is working okay, at least in the passband of your input filter that you have placed before the ADC. You do have an anti-alias filter in front of the ADC, right? What frequency does your ADC sample at? What order is your anti-alias filter, and where have you placed the cutoff?

7. Aug 19, 2013

### btb4198

right now I just want to know how to do it on paper ...
I need to know the math behind getting a transfer function from a graph..

then I am going with write a program in C# and using the mic built in to my computer ..

8. Aug 19, 2013

### Staff: Mentor

I'm pretty sure that I've explained it fully. Whether on paper or in practice. If there are parts of my explanation that you don't understand yet, please ask questions. There are many folks here who can answer your questions on this subject.

9. Aug 19, 2013

### btb4198

given this graph
how would you solve for f(x)
and
than how do you solve for H(W) ?
how would you solve for the transfer function

so you know the Y axle is in voltages (V)
and the X axle is Time ( milliseconds)

also how would you solve for
Fourier transform?

#### Attached Files:

• ###### graph.png
File size:
18.9 KB
Views:
78
10. Aug 19, 2013

### meBigGuy

You have a real time sequence of discrete sample points. Think of them a impulses from a perfect A/D converter. Maybe that is what you mean by transfer function of an A/D converter.

For the fourier transform, assuming periodic sampling, you just operate on the points with the DFT (discrete fourier transform - see wikipedia).

That should get you started. Also look at the wikipedia page on Digital Signal Processing.

11. Aug 20, 2013

### btb4198

But I still do not know how to solve for F(t) and I have been looking online , but I cant seem to find anything on how to get a transfer function from a graph ..

#### Attached Files:

File size:
38.8 KB
Views:
78
• ###### graph3.jpg
File size:
20 KB
Views:
96
12. Aug 20, 2013

### btb4198

so given the graph above how to I know what
f(t) = ?
and
H(W) =?
also the those two graphs are the same graph...
the Y axle is in voltages (V)
and the X axle is Time ( milliseconds)

13. Aug 20, 2013

### rbj

dunno about $H(\omega)$ (unless you mean $h(t)$ instead of "$f(t)$"), but, as drawn, $f(t)$ is a piecewise-linear function that can only be expressed in terms of the actual data of the vertices at the sampling instances.

14. Aug 20, 2013

### meBigGuy

Your graph is a picture of a time varying waveform draw by connecting discrite sample points. What do you mean solve for f(t)? You want to determine a best fit to a polynomial of some form assuming it is infinitely repeating? You want that equation to include the linear interpolation you drew between sample points? Of what use is that form?

Are you saying you want some sort of mathematical representation of an arbitrary waveform input through an A/D converter? What form do you want the equation to take? You can solve for the best fit coefficients of a polynomial of whatever degree you like, or for the coefficients for a fourier series. Again, I see no use for that information.

In discrite time processing, the input sequence IS the representation of f(t). You can analyze that sequence to determine things about it. If you have two sequences, you can learn things about how they are correlated, etc. So, where in continuous time systems you may have a linear equation for a signal, in discrite time systems you have a sequence of values and a sample frequency.

For transfer functions you basically work in the z domain which is analogous to the s domain in continuous waveform systems. You seem to be referring to the basic principles of digital signal processing.

From wikipedia:
In discrete-time systems, the relation between an input signal x(t) and output y(t) is dealt with using the z-transform, and then the transfer function is similarly written as H(z) = {Y(z)}/{X(z)} and this is often referred to as the pulse-transfer function.

x(t) and y(t) are literally the discrite time sequence of samples.

15. Aug 20, 2013

### milesyoung

Just to be clear, are you just trying to compute the discrete Fourier transform of your sampled signal so you can view its spectrum etc.? As in, you want to make a recording of your voice and then determine its frequency spectrum? If that's the case, your thread title is rather misleading.

You could, of course, find the Z-transform X(z) of your time series and make the substitution z = e to produce its discrete-time Fourier transform (DTFT). From that, you could find its discrete Fourier transform (DFT), but it's a very convoluted way of going about it and, most importantly, you aren't employing a fast Fourier transform (FFT) to do it.

A FFT produces the DFT of your time series directly from its samples. All you really need to do is implement a FFT algorithm. The Cooley–Tukey algorithm is very common:
http://en.wikipedia.org/wiki/Cooley–Tukey_FFT_algorithm

16. Aug 20, 2013

### btb4198

Ok so the graph i upload. I make it with Excel so I know it is f(t) = 5 SIN(5t) + 10SIN(t10) + 20SIN(6t)
But If someone just gave me that graph, how would I get f(t) = 5 SIN(5t) + 10SIN(t10) + 20SIN(6t)? if some one gave me the graph and did not get me the function f(t) how would i know what the function f(t) is?

once I can determine what the function f(t) is
than I can get H(W) from f(t)
H(W) = the transfer function of f(t) ...
then I can solve for the Fourier transform F(w)
and then I can get frequency spectrum with would be Voltages vs Frequency.

17. Aug 20, 2013

### btb4198

what do you mean is can only be
?
f(t) = 5 SIN(5t) + 10SIN(t10) + 20SIN(6t)
Now how do I get "5 SIN(5t) + 10SIN(t10) + 20SIN(6t)" from the graph I posted ?
one I know how to determine the function f(t) from any incoming signal ,
then I can do
F(w) = ∫f(t) ε^jwt Δt

18. Aug 20, 2013

### btb4198

Yes I do want to "compute the discrete Fourier transform of my sampled signal so I can view its spectrum etc As in, I want to make a recording of my voice and then determine its frequency spectrum."
but I will need know what f(t)...
without knowing the function f(t) I cant do anything...
and if you can get a graph from f(t) = 5 SIN(5t) + 10SIN(t10) + 20SIN(6t)
then you should be able to get f(t) = 5 SIN(5t) + 10SIN(t10) + 20SIN(6t) from a graph right??
just going backward some kind of way...

19. Aug 20, 2013

### btb4198

something like this...

Last edited by a moderator: Sep 25, 2014
20. Aug 20, 2013

### f95toli

I think you are missing the point.
Firstly, in general you CANT determine what "the function" looked like, there is an infinte number possible equations that could fit the data.

However, if you assume that the data is of a form that where it can be approximated by a sum of sin functions (which is what you are doing) you can use a discrete Fourier transform (DFT), There is no need to first calculate f(t), you just apply the DFT to the raw data.

In fact, one could think of a fourier transform as the process of finding the the pre-factors that give you a "best fit" to your data. Once you have the DFT you could (in theory) plot f(t) if you wanted. That said, in reality it becomes more complicated, which is why calculating DFTs for real data isn't entirely trivial if you want very accurate results.

Last edited by a moderator: Aug 20, 2013