импульс

Импульсный ответ для объекта рациональной функции

Примечание

impulse может быть удален в будущем релизе. Используйте timeresp вместо этого.

Синтаксис

[resp,t] = impulse(h,ts,n)

Описание

[resp,t] = impulse(h,ts,n) вычисляет импульсный ответ, resp, объекта рациональной функции, h, по периоду времени, заданному ts и n.

Примечание

В то время как можно вычислить выходной ответ для объекта рациональной функции путем вычисления импульсного ответа объекта и затем свертки к тому ответу с входным сигналом, этот подход не рекомендуется. Вместо этого необходимо использовать метод timeresp, чтобы выполнить это вычисление, потому что это обычно дает более точный выходной сигнал для данного входного сигнала.

Вход h является указателем объекта рациональной функции. ts является значением положительной скалярной величины, которое задает шаг расчета вычисленного импульсного ответа, и n является положительным целым числом, которое задает общее количество выборок в ответе.

Вектор выборок времени импульсного ответа, t, вычисляется из входных параметров как t = [0,ts,2*ts,...,(n-1)*ts]. Импульсным ответом, resp, является n - вектор элемента импульсных значений ответа, соответствующих этим временам. Это вычисляется с помощью аналитической формы рациональной функции

resp=k=1MCkeAk(tDelay)u(tDelay)+Dδ(tDelay)

где

  • A, C, D и Delay являются свойствами объекта рациональной функции, h.

  • M является количеством полюсов в объекте рациональной функции.

Примеры

свернуть все

Compute the impulse response of the data stored in the file passive.s2p by

fitting a rational function object to the data and using the impulse method

to compute the impulse response of the object.

Разделите 1 частоту Извлечения и данные из passive.s2p

orig_data=read(rfdata.data,'passive.s2p')
orig_data = 
   rfdata.data with properties:

            Freq: [202x1 double]
    S_Parameters: [2x2x202 double]
      GroupDelay: [202x1 double]
              NF: [202x1 double]
            OIP3: [202x1 double]
              Z0: 50.0000 + 0.0000i
              ZS: 50.0000 + 0.0000i
              ZL: 50.0000 + 0.0000i
        IntpType: 'Linear'
            Name: 'Data object'

freq=orig_data.Freq;
data=orig_data.S_Parameters(2,1,:);

Разделите 2 Рациональных подгонки данные

fit_data=rationalfit(freq,data)
fit_data = 
   rfmodel.rational with properties:

        A: [6x1 double]
        C: [6x1 double]
        D: 0
    Delay: 0
     Name: 'Rational Function'

Разделите 3, вычисляют импульсный ответ

[resp,t]=impulse(fit_data,1e-12,1e4);

plot(t,resp);

Смотрите также

| | |

Представленный в R2006b