Re: help! how do I formulate this sampling system and analyze it?
- From: Tim Wescott <tim@xxxxxxxxxxxxxxxx>
- Date: Tue, 31 Jan 2006 10:03:01 -0800
lucy wrote:
You can derive an exact discrete-time model for this mixed-signal system in a fairly direct manner.Hi all,
This system consists of an DAC, a processor, and a ADC. The flow graph is like as follows:
input-digital-signal -> DAC -> filter(Continuous Time) -> ADC -> output-digital-sigal
The problem is that the DAC is a zero order hold, and the ADC is more strange:
the ADC samples the continuous time waveform by integrate the input signal in a period T, then put that integral result as the sample at that time index.
As an example, the ADC integrates the input signal from (n-0.5)T to (n+0.5)T, and then use the integration result as the output sample y[n], which is in discrete time.
Now I need to formulate this system in DSP, and analyze the result, to see how much does it deviate from a second system(given the same input, how much does the output deviate, can they be made to be exactly the same output???), which is as follows:
input-digital-signal -> filter(Discrete Time) -> output-digital-sigal
----------------------------
My headache is that the presence of non-traditional ADC/DAC complicated the matters...
Can anybody help me?
Thanks a lot!
You have a continuous-time filter, call it h(t), with a Laplace transform, H(s). You want to represent it with a filter in the z domain, H'(z). All you have to do is break down the system response a bit.
Assuming that h(t) is a linear, time-invariant system then the whole system is a linear, shift-invariant system. This means that all you have to do is find the system impulse response from the DAC input to the ADC output and you're done. Even easier for our purposes, you just need to find the system step response and divide by z/(z-1).
The DAC is a zero-order hold, so for an input step x_n that is zero for n < 0 and 1 for x >= 0 the output signal is a step x(t) that is zero for t < 0, 1 for x > 0 and is undefined (and no one cares) for x = 0. It's Laplace transform is 1/s.
The output of the filter is simply Y(s) = H(s)/s.
If you split the ADC up into an integrating part and a sampling part, then the integrating part is a continuous-time function who's transfer function is
H_a(s) = (e^(Ts/2) - e^(-Ts/2))/s
(note that H_a(s) has a finite DC gain -- you can do the math). So the input to the sampler is just
Y_s(s) = (e^(Ts/2) - e^(-Ts/2))H(s)/s^2.
Assuming that you define y_n as appearing at t = nT this is a non-causal system. I don't believe that, so I'm going to assume that y_1 appears at time T/2, y_2 appears at 3T/2, etc. You can modify your math to be non-causal if you feel like it, but remember to be very careful with your notation.
With my change in definition
Y_s(s) = (e^(-Ts/2) - e^(-3Ts/2))H(s)/s^2.
At this point all you have to do is find the ramp response of the filter, probably by taking H(s)/s^2 and expanding it. Now break the pure-delay portions of Y_s into two parts:
Y_s(s) = e^(-Ts/2) (1 - e^(-Ts)) H(s)/s^2.
This has the Really Cool property that part of it translates straight into the z domain:
1 - e^(-Ts) <==> (z - 1) / z
So you find the time-domain response of
Y_s'(s) = e^(-Ts/2) H(s) / s^2 ==> y_s'(t).
Now sample it at nT to get y_s'[n], and take its z transform:
y_s'(nT) ==> Y_s'(z).
Now recall that this is a step function, so you need to divide it by z/(z-1). Remember also you need to multiply it by (z-1)/z to take the ADC action into account that we trimmed out when we went from Y_s to Y_s':
H'(z) = (z-1)^2/z^2 Y_s'(z).
Ta da!
This is actually easier to do if you have a state-space representation of H(s). I'm not going to work through it, I only refer you to problem 2.5-12 on page 174 of "Linear Systems" by Kailath, ISBN 0-13-536961, Library of Congress number QA402.K295. The method keeps it more in the time domain and is probably what Matlab uses. It can be easily modified for your screwy ADC (or any other screwy ADC, for that matter).
--
Tim Wescott Wescott Design Services http://www.wescottdesign.com .
- Follow-Ups:
- References:
- Prev by Date: Re: gdb for Motorla DSP56300 family?
- Next by Date: Re: Help regarding identification of modulation(GMSK) type of a signal
- Previous by thread: Re: help! how do I formulate this sampling system and analyze it?
- Next by thread: Re: help! how do I formulate this sampling system and analyze it?
- Index(es):
Relevant Pages
|