Z-transform of time domain data
25 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi!
I have a vector x which consist of an impulse response to an unknown system, and a transfer function A in terms of its coefficients. What I now want to do is to calculate IDFT(X(z)/A(z)), ie. evaluate the transfer function X(z)/A(z) at some discrete points z.
I have already looked at FREQZ and FILTER, but those functions assume that the coefficients of the transfer functions are known. INVFREQS is maybe a possible solution to get X(z) but the problem is that my impulse response x is in time domain.
Any help appreciated.
0 Kommentare
Antworten (2)
Wayne King
am 8 Apr. 2012
If you have a finite-length vector which is the impulse response of a discrete time system, then you have an FIR filter. The values of the impulse response vector are the coefficients of the finite-order polynomial in z^{-1} that is the z-transform, so you can just do
freqz(B,1)
where B is your impulse response vector.
For example, assume you have a simple 10-point moving average FIR filter where the impulse response is
1/10*ones(10,1)
but
B = 1/10*ones(10,1);
impz(B,1)
It's trivial. Unless you really don't have the impulse response (or you have a truncated impulse response, which is really IIR)
0 Kommentare
Rajiv Singh
am 9 Apr. 2012
Try this:
data = iddata(x,[],Ts) % ts:= sampling time
Filter = armax(data, [na nc]) % na, nc are filter design parameters
Value = evalfr(Filter, z) % evaluate response at complex number z
Values = freqresp(Filter, w) % evaluate frequency response at frequencies w
0 Kommentare
Siehe auch
Kategorien
Mehr zu Transform Data finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!