Z-transform of time domain data
조회 수: 16 (최근 30일)
이전 댓글 표시
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
답변 (2개)
Wayne King
2012년 4월 8일
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
Rajiv Singh
2012년 4월 9일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Transform Data에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!