exponenta event banner

htrans

Преобразование Гильберта

Описание

пример

H = htrans(f) возвращает преобразование Гильберта символьной функции f. По умолчанию независимой переменной является t и переменная преобразования x.

пример

H = htrans(f,transVar) использует переменную преобразования transVar вместо x.

пример

H = htrans(f,var,transVar) использует независимую переменную var и переменную преобразования transVar вместо t и xсоответственно.

  • Если все входные аргументы являются массивами одинакового размера, то htrans действует элементарно.

  • Если один вход является скаляром, а другие массивы одного размера, то htrans расширяет скаляр в массив одинакового размера.

  • Если f является массивом символьных выражений с различными независимыми переменными, то var должен быть символьным массивом с элементами, соответствующими независимым переменным.

Примеры

свернуть все

Вычислить преобразование Гильберта sin(t). По умолчанию преобразование возвращает функцию x.

syms t;
f = sin(t);
H = htrans(f)
H = -cos(x)-cos(x)

Вычислить преобразование Гильберта sinc(x) функция, которая равна sin(pi*x)/(pi*x). Выразить результат как функцию u.

syms f(x) H(u);
f(x) = sinc(x);
H(u) = htrans(f,u)
H(u) = 

-cos(πu)u-1uπ-(cos(sym(pi)*u)/u - 1/u)/sym(pi)

Постройте график sinc функция и ее преобразование Гильберта.

fplot(f(x),[0 6])
hold on
fplot(H(u),[0 6])
legend('sinc(x)','H(u)')

Figure contains an axes. The axes contains 2 objects of type functionline. These objects represent sinc(x), H(u).

Создайте синусоидальную волну с положительной частотой в реальном пространстве.

syms A x t u;
assume([x t],'real')
y = A*sin(2*pi*10*t + 5*x)
y = Asin(5x+20πt)A*sin(5*x + 20*sym(pi)*t)

Примените фазовый сдвиг -90 градусов к положительной частотной составляющей с помощью преобразования Гильберта. Укажите независимую переменную как t и переменную преобразования как u.

H = htrans(y,t,u)
H = -Acos(5x+20πu)-A*cos(5*x + 20*sym(pi)*u)

Теперь создайте сложный сигнал с отрицательной частотой. Примените сдвиг фазы на 90 градусов к отрицательной частотной составляющей с помощью преобразования Гильберта.

z = A*exp(-1i*10*t)
z = Ae-10tiA*exp((-10*t*sym(1i)))
H = htrans(z)
H = Ae-10xiiA*exp((-10*x*sym(1i)))*sym(1i)

Создайте действительный сигнал f (t) с двумя частотными компонентами, 60 Гц и 90 Гц.

syms t f(t) F(s)
f(t) = sin(2*pi*60*t) + sin(2*pi*90*t)
f(t) = sin(120πt)+sin(180πt)sin(120*sym(pi)*t) + sin(180*sym(pi)*t)

Вычислите соответствующий аналитический сигнал F (s) с помощью преобразования Гильберта.

F(s) = f(s) + 1i*htrans(f(t),s)
F(s) = sin(120πs)+sin(180πs)-cos(120πs)i-cos(180πs)isin(120*sym(pi)*s) + sin(180*sym(pi)*s) - cos(120*sym(pi)*s)*sym(1i) - cos(180*sym(pi)*s)*sym(1i)

Вычислить мгновенную частоту F (s) с помощью

finstant (s) = 12ād, ds,

где start( s) = arg [F (s)] - мгновенная фаза аналитического сигнала.

InstantFreq(s) = diff(angle(F(s)),s)/(2*pi);
assume(s,'real')
simplify(InstantFreq(s))
ans = 75sym(75)

Входные аргументы

свернуть все

Ввод, определяемый как символьное выражение, символьная функция, символьный вектор или символьная матрица.

Независимая переменная, заданная как символьная переменная, символьный вектор или символьная матрица. Эта переменная обычно находится во временной области. Если переменная не указана, то htrans использование t по умолчанию. Если f не содержит t, то htrans использует функцию symvar для определения независимой переменной.

Переменная преобразования, заданная как символьная переменная, символьный вектор или символьная матрица. Эта переменная находится в том же домене, что и var. Если переменная не указана, то htrans использование x по умолчанию. Если x является независимой переменной f, то htrans использует переменную преобразования v.

Выходные аргументы

свернуть все

Гильбертовое преобразование или гармоническое сопряжение входной функции f. Продукция H является функцией переменной, указанной transVar.

Когда htrans не может преобразовать входную функцию, она возвращает неоцененный вызов. Чтобы вернуть исходное выражение, примените обратное преобразование Гильберта к выходу с помощью ihtrans.

Подробнее

свернуть все

Преобразование Гильберта

Преобразование Гильберта H = H (x) выражения  f = f (t) относительно переменной t в точке x равно

H (x) =1πp.v.∫−∞∞f (t) x − tdt.

Здесь p.v. представляет главное значение Коши интеграла. Функция f (t) может быть сложной, но t и x должны быть действительными.

Совет

  • Чтобы вычислить обратное преобразование Гильберта, используйте ihtrans. Преобразование Гильберта функции равно отрицательному из её обратного преобразования Гильберта.

  • Для сигнала во временной области преобразование Гильберта применяет фазовый сдвиг -90 градусов к положительным частотам соответствующих компонент Фурье. Он также применяет 90-градусный фазовый сдвиг к отрицательным частотам.

  • Для действительного сигнала a, преобразование Гильберта b = htrans(a) возвращает его гармонический сопряженный b. Реальный сигнал a = real(z) и его преобразование Гильберта b = imag(z) сформировать аналитический сигнал z = a + 1i*b.

См. также

| | | |

Представлен в R2019a