DSPRelated.com
Forums

Sampling requirements for SysId

Started by Peter Mairhofer January 28, 2013
Am 1/28/2013 12:15 PM, schrieb Tim Wescott:
> On Mon, 28 Jan 2013 11:46:02 -0800, Peter Mairhofer wrote: > > [...] >> My observation from simple MATLAB experiments is: >> >> 1) I can use any subset of the equations and get a solution. This is in >> one sense obvious because it is LS. On the other hand, it contradicts my >> intuition. Suppose my Nyquist rate for input x(t) and the unknown system >> h(t) is 10kHz and h(t) operates (amongst others) also at 4 kHz. If I >> sample the output y(t) at 5kHz, how should the reconstruction algorithm >> know about the 4kHz range? > > Oy. Nyquist didn't say that. In fact, your above statement makes almost > no sense. http://www.wescottdesign.com/articles/Sampling/sampling.pdf. > > You state elsewhere that you are modeling the system h(t) as something > that can be reasonably represented as a FIR filter. In that case, the > assumption that h(t) can be reasonably represented as a FIR filter is > only valid if you do your measurements at the same sampling rate as your > FIR filter is going to operate.
Maybe I should state the setup more precisly: - I assume an ideal (mathematical) setup (exact pointwise samples, ideal low-pass filters, infinite long signals) - I assume no noise for now - I assume perfect linearity - I assume that my input signal x(t) perfectly bandlimited white noise between 0-5kHz and is zero >5kHz. The filter h(t) will operate on x(t), modifying any frequency content between 0 and 5kHz (it can't do anything more because it is a perfect linear system). Because of the assumptions described above, I can convert the whole setup to a discrete-time setup: x[n] represents x(t), y[n] y(t) where the signals are sampled at n*Ts (Ts=1/10kHz). h(t) can be converted to an IIR filter via bilinear transform (operating on x[n] the same way as on x(t) between 1-5kHz). The only non-ideal assumption: The IIR equivalent of h(t) is approximated as an FIR filter h[n] with Q taps. Assuming that h[n] models h(t) good enough, N samples of x[n] and y[n] should recover the coefficients of h[n]: h = X^+ * y where (.)^+ denotes the Moore-Penrose pseudo inverse, X is a matrix containg the tap-inputs of x[n] and y[n] contains N samples. Stated differently: When I feed x[n] to my IIR equivalent of h(t) and h[n] via y=X*h, both should produce a similar y[n] (as similar as h[n] approximates the IIR equivalent of h(t)). Now to what I meant in my original question: Is it possible to use just any second or forth sample in y[n] and still recover h[n] perfectly? Note that "every second sample" corresponds to a subsampling of 2 in the ideal setup. The answer is yes (in theory) because it is LS (which is solveable as long as there are Q lin. independent rows). What I did next is to sum over M consecutive samples of y[n] and take the sum. This "sum-and-dump" corresponds to subsampling of factor M with pre-lowpass filtering (in the ideal setup). In order to hold the equality in y=X*h, I need to apply the summation in X as well. This approach still recovered the h[n] under perfect numerical conditions although I destroyed much frequency content because of the summation. However, because of the summation in x[n] over M samples, the columns become more and more orthogonal and the system therefore numerically instable. Please regard this as a tough-experiment rather than a question regarding practical SysId. Peter
On 28.01.2013 09:09, Peter Mairhofer wrote:
> Hi, > > [...] > > When using a simple LS method to solve for the coefficients, the > overdetermined system of equations suggests that it is possible to drop > rows (as long as there are enough linearly independent) and thus > (implicitely) subsample y(t). > > Thanks, > Peter >
Theory: The polynomial degree should as low as possible but high enough for fitting an ODE. See Example: Reducing the data points and changing the polynomial degree: http://home.arcor.de/janch/20130131-control/default.html -- Regards JCH