В посте про амплитудную модуляцию можно было видеть, что сигнал модулируется на двух частотах, равноотстоящих от частоты сигнала-носителя. Была там даже картиночка с "закодированным" сигналом:
Эти 2 сигнала сверху и снизу от частоты несущего сигнала называются upper sideband и lower sideband. Каждый из них равнозначен, в том плане, что исходный сигнал можно восстановить из каждого из них, перемножив sideband на несущий сигнал и пропустив через low-pass фильтр:
$\cos \left( \omega_{c} + \omega_{s} \right)t \sin \omega_{c}t = \frac{1}{2} (\sin (\omega_{c} + \omega_{s} - \omega_{c})t + \sin (\omega_{c} + \omega_{s} + \omega_{c})t) = \frac{1}{2} (\sin \omega_{s}t + \sin (2\omega_{c} + \omega_{s})t)$
$\cos \left( \omega_{c} - \omega_{s} \right)t \sin \omega_{c}t = \frac{1}{2} (\sin (\omega_{c} - \omega_{s} - \omega_{c})t + \sin (\omega_{c} - \omega_{s} + \omega_{c})t) = -\frac{1}{2} (\sin \omega_{s}t - \sin (2\omega_{c} - \omega_{s})t)$
Как видим, после фильтрации два восстановленных сигнала отличаются друг от друга лишь знаком. Соответственно, для лучшего использования имеющейся полосы пропускания, можно передавать только один из sideband'ов.
Для начала заметим, что для представления любого действительнозначного сигнала как функции от частоты $F(\omega)$ достаточно взять лишь неотрицательные частоты $\omega \ge 0$.
Для этого докажем пару теорем. Да, многие интегралы тут понимаются в смысле главного значения, но значок v.p. я опустил — лень это писать.
Теорема 1.
Если функция $f(t)$ — действительнозначная, то $F(\omega) = F^{*}(-\omega)$, где $F(\omega)$ — Фурье-преобразование этой функции.
Доказательство.
Если $f(t)$ — действительнозначная, то $f(t) = f^{*}(t)$, следовательно $\frac{1}{2\pi}\int_{-\infty}^{\infty} F(\omega) exp(i\omega t) d\omega = \frac{1}{2\pi} \int_{-\infty}^{\infty} F^{*}(\omega) exp(-i\omega t) d\omega =\frac{1}{2\pi} \int_{-\infty}^{\infty} F^{*}(-\omega) exp(i\omega t) d\omega$, откуда следует утверждение теоремы.
Теорема 2.
Если функция $f(t)$ действительнозначная, то её можно восстановить из функции $F(\omega)$, где $F(\omega)$ — Фурье-преобразование этой функции, по следующей формуле: $f(t) = \frac{1}{2\pi} \int_{0}^{\infty} (F(\omega) exp(i\omega t) + F^{*}(\omega)exp(-i\omega t))d\omega$.
Доказательство.
$f(t) = \frac{1}{2\pi} (\int_{-\infty}^{0} F(\omega) exp(i\omega t) d\omega + \int_{0}^{\infty} F(\omega) exp(i\omega t) d\omega) = $
$= \frac{1}{2\pi} (\int_{-\infty}^{0} F^{*}(-\omega) exp(i\omega t) d\omega + \int_{0}^{\infty} F(\omega) exp(i\omega t) d\omega) = $
$= \frac{1}{2\pi} (\int_{0}^{\infty} F^{*}(\omega) exp(-i\omega t) d\omega + \int_{0}^{\infty} F(\omega) exp(i\omega t) d\omega)$
Теорема доказана.
Следствие.
При рассмотрении действительнозначного сигнала можно рассмотреть эквивалентный сигнал, для которого достаточно только частот $\omega > 0$.
Составим теперь функцию $Z(\omega) = F(\omega) + sgn(\omega)F(\omega)$, где $sgn(\omega)$ — функция "signum", возвращающая знак аргумента. Легко видеть, что при $\omega < 0$ $Z(\omega)$ равна нулю. Обратное преобразование Фурье $Z(\omega)$ запишем в виде $z(t) = f(t) + ig(t)$. Докажем, что $g(t)$ —действительнозначная функция, для чего сопоставим функции $z(t) - f(t)$ и $Z(\omega) - F(\omega)$:
$z(t) - f(t) = ig(t)$
$Z(\omega) - F(\omega) = F(\omega)sgn(\omega)$
Таким образом Фурье-преобразование функции $g(t)$ равно $-iF(\omega)sgn(\omega)$. Здесь мы пользовались линейным свойством Фурье-преобразования. $g(t)$ можно рассматривать как свёртку функции $f(t)$ с функцией $[F^{-1}(-isgn(\omega))](t)$, где $F^{-1}$ — оператор обратного преобразования Фурье, не путать с функцией $F(\omega)$.
Функция $-isgn(\omega)$ не затухает при $\omega \to \infty$ и в обычном смысле не имеет обратного преобразования. Но в смысле обобщённых функций тут можно заменить её на $-ie^{-\sigma\omega}$ при $\omega > 0$ и $ie^{\sigma\omega}$ при $\omega < 0$. Найдя обратное преобразование от этой функции и устремив $\sigma$ к нулю, получим (пропущу скучные выкладки):
$F^{-1}[-isgn(\omega)](t) = \frac{1}{\pi t}$
Таким образом
$g(t) = f(t)*\frac{1}{\pi t} = \frac{1}{\pi} \int_{-\infty}^{\infty} \frac{f(\tau)}{t-\tau} d\tau$
Ясно, что раз $f(t)$ — действительнозначная, то $g(t)$ — тоже.
Функция $z(t) = f(t) + ig(t)$ называется аналитическим представлением сигнала $f(t)$, а оператор $\cdot * \frac{1}{\pi t}$ — преобразованием Гильберта. Часто преобразование Гильберта обозначают как $\hat{f}(t)$, если это не приводит к путанице с преобразованием Фурье.
Широко распространенный пример: Преобразование $f(t) = \cos\omega t$, $\omega > 0$. Эту функцию можно представить в виде двух экспонент: $f(t) = \frac{1}{2} (e^{i\omega t} + e^{-i\omega t})$. Тогда в $\hat{f}(t)$ экспоненту с положительным множетелем при $it$ умножим на $-i$, а с отрицательным — на $i$. Таким образом я поверну фазу сигнала на $-i sgn(\omega)$:
$\hat{f}(t) = \frac{1}{2} (-i e^{i \omega t} + i e^{- i \omega t}) = \frac{1}{2i} (e^{i\omega t} - e^{-i\omega t}) = \sin \omega t$
Аналитический сигнал будет равен $z(t) = \cos \omega t + i \sin \omega t = e^{i\omega t}$.
Из частотного представления мы видим, что преобразование Гильберта сдвигает сигнал на значение $\pm \frac{\pi}{2}$, преобразуя "синусные" составляющие сигнала в "косинусные" и наоборот. Чтобы лучше понять, о чём я хочу поведать, приведу ещё одну теорему.
Лемма 1. Пусть $f(t)$ и $g(t)$ — две функции из $L^{2}(\mathbb{C})$, имеющие Фурье-преобразования $F(\omega)$ и $G(\omega)$. Тогда $\int_{-\infty}^{\infty} f(t)g^{*}(t) dt = \frac{1}{2\pi} \int_{-\infty}^{\infty} F(\omega)G^{*}(\omega) d\omega$. Без пруфа.
Теорема 3.
Пусть $f(t)$ — действительнозначная функция, тогда $\int_{-\infty}^{\infty} f(t)\hat{f}(t)dt = 0$.
Доказательство.
Воспользуемся тем, что $f(t)$, а следовательно и $\hat{f}(t)$ — действительнозначная, тогда $\hat{f}^{*}(t) = \hat{f}(t)$. Тогда
$\int_{-\infty}^{\infty} f(t)\hat{f}(t)dt = \frac{1}{2\pi} \int_{-\infty}^{\infty} F(\omega) \left[-i sgn(\omega) F(\omega)\right]^{*} d\omega = \frac{i}{2\pi} \int_{-\infty}^{\infty} sgn(\omega) F^{*} (\omega)F(\omega) d\omega =$
$= \frac{i}{2\pi} \int_{-\infty}^{\infty} sgn(\omega) \left|F(\omega)\right|^2 d\omega$
Тут мы видим, что модуль в квадрате — четная функция, а $sgn(\omega)$ — нечетная. Следовательно их произведение — нечетная функция, чей интеграл по равноудалённому от нуля отрезку равен нулю. Теорема доказана.
Тут стоит заметить, что $sin(x)$ и $cos(x)$ тоже ортогональны на интервале $(-\infty, \infty)$, так что, надеюсь, стало яснее, что я имел в виду под преобразованием "синусов" в "косинусы".
Теперь переходим к практике нашей амплитудной модуляции по принципу SSB-SC (который single-sideband suppressed-carrier). Берем сигнал $\sin \omega_{s}t$ и модулируем несущим сигналом $\sin \omega_{c}t$. Перемножим эти сигналы и прибавим произведение этих сигналов, повернутых по фазе на $\frac{\pi}{2}$:
$\sin \omega_{s} t \sin \omega_{c} t + \cos \omega_{s} t \cos \omega_{c} t =$
$= \frac{1}{2} (\cos (\omega_{c} - \omega_{s})t - \cos (\omega_{c} + \omega_{s})t) + \frac{1}{2} (\cos (\omega_{c} - \omega_{s})t + \cos (\omega_{c} + \omega_{s})t)=$
$=\cos (\omega_{c} - \omega_{s})t$
Таким образом, из двух sideband'ов остался один, лежащий ниже частоты сигнала-носителя. Из всего выше сказанного про преобразование Гильберта чисто интуитивно (увы, строгого пруфа у меня нет) получаем рецепт замодулированного сигнала в общем виде:
$f_{mod}(t) = Im (z(t) e^{i \omega_{c} t}) = f(t) \sin\omega_{c} t + \hat{f}(t) \cos \omega_{c} t$, где $z(t)$ — аналитическое представление сигнала, а $e^{i \omega_{c} t}$ — аналитическое представление несущего сигнала.
В SuperCollider это тоже можно сделать (тут мы опять прячем сообщение на фоне шума):
Декодировать также, как и DSB-SC. Вот спектрограмма сообщения, закодированного таким способом (на нижних частотах опять добавил шум):
Также аналитический сигнал может быть представлен в виде
$z(t) = A(t)e^{i\phi (t)}$
Значение $A(t) = \left| z(t) \right|$ называется моментальной амплитудой или огибающей сигнала. Таким образом, находя аналитический сигнал и его модуль можно производить демодуляцию амплитудно-модулированного сигнала.
Эти 2 сигнала сверху и снизу от частоты несущего сигнала называются upper sideband и lower sideband. Каждый из них равнозначен, в том плане, что исходный сигнал можно восстановить из каждого из них, перемножив sideband на несущий сигнал и пропустив через low-pass фильтр:
$\cos \left( \omega_{c} + \omega_{s} \right)t \sin \omega_{c}t = \frac{1}{2} (\sin (\omega_{c} + \omega_{s} - \omega_{c})t + \sin (\omega_{c} + \omega_{s} + \omega_{c})t) = \frac{1}{2} (\sin \omega_{s}t + \sin (2\omega_{c} + \omega_{s})t)$
$\cos \left( \omega_{c} - \omega_{s} \right)t \sin \omega_{c}t = \frac{1}{2} (\sin (\omega_{c} - \omega_{s} - \omega_{c})t + \sin (\omega_{c} - \omega_{s} + \omega_{c})t) = -\frac{1}{2} (\sin \omega_{s}t - \sin (2\omega_{c} - \omega_{s})t)$
Как видим, после фильтрации два восстановленных сигнала отличаются друг от друга лишь знаком. Соответственно, для лучшего использования имеющейся полосы пропускания, можно передавать только один из sideband'ов.
Для начала заметим, что для представления любого действительнозначного сигнала как функции от частоты $F(\omega)$ достаточно взять лишь неотрицательные частоты $\omega \ge 0$.
Для этого докажем пару теорем. Да, многие интегралы тут понимаются в смысле главного значения, но значок v.p. я опустил — лень это писать.
Теорема 1.
Если функция $f(t)$ — действительнозначная, то $F(\omega) = F^{*}(-\omega)$, где $F(\omega)$ — Фурье-преобразование этой функции.
Доказательство.
Если $f(t)$ — действительнозначная, то $f(t) = f^{*}(t)$, следовательно $\frac{1}{2\pi}\int_{-\infty}^{\infty} F(\omega) exp(i\omega t) d\omega = \frac{1}{2\pi} \int_{-\infty}^{\infty} F^{*}(\omega) exp(-i\omega t) d\omega =\frac{1}{2\pi} \int_{-\infty}^{\infty} F^{*}(-\omega) exp(i\omega t) d\omega$, откуда следует утверждение теоремы.
Теорема 2.
Если функция $f(t)$ действительнозначная, то её можно восстановить из функции $F(\omega)$, где $F(\omega)$ — Фурье-преобразование этой функции, по следующей формуле: $f(t) = \frac{1}{2\pi} \int_{0}^{\infty} (F(\omega) exp(i\omega t) + F^{*}(\omega)exp(-i\omega t))d\omega$.
Доказательство.
$f(t) = \frac{1}{2\pi} (\int_{-\infty}^{0} F(\omega) exp(i\omega t) d\omega + \int_{0}^{\infty} F(\omega) exp(i\omega t) d\omega) = $
$= \frac{1}{2\pi} (\int_{-\infty}^{0} F^{*}(-\omega) exp(i\omega t) d\omega + \int_{0}^{\infty} F(\omega) exp(i\omega t) d\omega) = $
$= \frac{1}{2\pi} (\int_{0}^{\infty} F^{*}(\omega) exp(-i\omega t) d\omega + \int_{0}^{\infty} F(\omega) exp(i\omega t) d\omega)$
Теорема доказана.
Следствие.
При рассмотрении действительнозначного сигнала можно рассмотреть эквивалентный сигнал, для которого достаточно только частот $\omega > 0$.
Составим теперь функцию $Z(\omega) = F(\omega) + sgn(\omega)F(\omega)$, где $sgn(\omega)$ — функция "signum", возвращающая знак аргумента. Легко видеть, что при $\omega < 0$ $Z(\omega)$ равна нулю. Обратное преобразование Фурье $Z(\omega)$ запишем в виде $z(t) = f(t) + ig(t)$. Докажем, что $g(t)$ —действительнозначная функция, для чего сопоставим функции $z(t) - f(t)$ и $Z(\omega) - F(\omega)$:
$z(t) - f(t) = ig(t)$
$Z(\omega) - F(\omega) = F(\omega)sgn(\omega)$
Таким образом Фурье-преобразование функции $g(t)$ равно $-iF(\omega)sgn(\omega)$. Здесь мы пользовались линейным свойством Фурье-преобразования. $g(t)$ можно рассматривать как свёртку функции $f(t)$ с функцией $[F^{-1}(-isgn(\omega))](t)$, где $F^{-1}$ — оператор обратного преобразования Фурье, не путать с функцией $F(\omega)$.
Функция $-isgn(\omega)$ не затухает при $\omega \to \infty$ и в обычном смысле не имеет обратного преобразования. Но в смысле обобщённых функций тут можно заменить её на $-ie^{-\sigma\omega}$ при $\omega > 0$ и $ie^{\sigma\omega}$ при $\omega < 0$. Найдя обратное преобразование от этой функции и устремив $\sigma$ к нулю, получим (пропущу скучные выкладки):
$F^{-1}[-isgn(\omega)](t) = \frac{1}{\pi t}$
Таким образом
$g(t) = f(t)*\frac{1}{\pi t} = \frac{1}{\pi} \int_{-\infty}^{\infty} \frac{f(\tau)}{t-\tau} d\tau$
Ясно, что раз $f(t)$ — действительнозначная, то $g(t)$ — тоже.
Функция $z(t) = f(t) + ig(t)$ называется аналитическим представлением сигнала $f(t)$, а оператор $\cdot * \frac{1}{\pi t}$ — преобразованием Гильберта. Часто преобразование Гильберта обозначают как $\hat{f}(t)$, если это не приводит к путанице с преобразованием Фурье.
Широко распространенный пример: Преобразование $f(t) = \cos\omega t$, $\omega > 0$. Эту функцию можно представить в виде двух экспонент: $f(t) = \frac{1}{2} (e^{i\omega t} + e^{-i\omega t})$. Тогда в $\hat{f}(t)$ экспоненту с положительным множетелем при $it$ умножим на $-i$, а с отрицательным — на $i$. Таким образом я поверну фазу сигнала на $-i sgn(\omega)$:
$\hat{f}(t) = \frac{1}{2} (-i e^{i \omega t} + i e^{- i \omega t}) = \frac{1}{2i} (e^{i\omega t} - e^{-i\omega t}) = \sin \omega t$
Аналитический сигнал будет равен $z(t) = \cos \omega t + i \sin \omega t = e^{i\omega t}$.
Из частотного представления мы видим, что преобразование Гильберта сдвигает сигнал на значение $\pm \frac{\pi}{2}$, преобразуя "синусные" составляющие сигнала в "косинусные" и наоборот. Чтобы лучше понять, о чём я хочу поведать, приведу ещё одну теорему.
Лемма 1. Пусть $f(t)$ и $g(t)$ — две функции из $L^{2}(\mathbb{C})$, имеющие Фурье-преобразования $F(\omega)$ и $G(\omega)$. Тогда $\int_{-\infty}^{\infty} f(t)g^{*}(t) dt = \frac{1}{2\pi} \int_{-\infty}^{\infty} F(\omega)G^{*}(\omega) d\omega$. Без пруфа.
Теорема 3.
Пусть $f(t)$ — действительнозначная функция, тогда $\int_{-\infty}^{\infty} f(t)\hat{f}(t)dt = 0$.
Доказательство.
Воспользуемся тем, что $f(t)$, а следовательно и $\hat{f}(t)$ — действительнозначная, тогда $\hat{f}^{*}(t) = \hat{f}(t)$. Тогда
$\int_{-\infty}^{\infty} f(t)\hat{f}(t)dt = \frac{1}{2\pi} \int_{-\infty}^{\infty} F(\omega) \left[-i sgn(\omega) F(\omega)\right]^{*} d\omega = \frac{i}{2\pi} \int_{-\infty}^{\infty} sgn(\omega) F^{*} (\omega)F(\omega) d\omega =$
$= \frac{i}{2\pi} \int_{-\infty}^{\infty} sgn(\omega) \left|F(\omega)\right|^2 d\omega$
Тут мы видим, что модуль в квадрате — четная функция, а $sgn(\omega)$ — нечетная. Следовательно их произведение — нечетная функция, чей интеграл по равноудалённому от нуля отрезку равен нулю. Теорема доказана.
Тут стоит заметить, что $sin(x)$ и $cos(x)$ тоже ортогональны на интервале $(-\infty, \infty)$, так что, надеюсь, стало яснее, что я имел в виду под преобразованием "синусов" в "косинусы".
Теперь переходим к практике нашей амплитудной модуляции по принципу SSB-SC (который single-sideband suppressed-carrier). Берем сигнал $\sin \omega_{s}t$ и модулируем несущим сигналом $\sin \omega_{c}t$. Перемножим эти сигналы и прибавим произведение этих сигналов, повернутых по фазе на $\frac{\pi}{2}$:
$\sin \omega_{s} t \sin \omega_{c} t + \cos \omega_{s} t \cos \omega_{c} t =$
$= \frac{1}{2} (\cos (\omega_{c} - \omega_{s})t - \cos (\omega_{c} + \omega_{s})t) + \frac{1}{2} (\cos (\omega_{c} - \omega_{s})t + \cos (\omega_{c} + \omega_{s})t)=$
$=\cos (\omega_{c} - \omega_{s})t$
Таким образом, из двух sideband'ов остался один, лежащий ниже частоты сигнала-носителя. Из всего выше сказанного про преобразование Гильберта чисто интуитивно (увы, строгого пруфа у меня нет) получаем рецепт замодулированного сигнала в общем виде:
$f_{mod}(t) = Im (z(t) e^{i \omega_{c} t}) = f(t) \sin\omega_{c} t + \hat{f}(t) \cos \omega_{c} t$, где $z(t)$ — аналитическое представление сигнала, а $e^{i \omega_{c} t}$ — аналитическое представление несущего сигнала.
В SuperCollider это тоже можно сделать (тут мы опять прячем сообщение на фоне шума):
(
{var input = SoundIn.ar (0, 0.2); LPF.ar(WhiteNoise.ar (0.8), 1000).dup + Mix.new (Hilbert.ar (input)*SinOsc.ar (30000, [0, pi/2]))}.play;
s.record ("~/test.wav".standardizePath);
SystemClock.sched (10.0, {s.stopRecording; s.freeAll; nil})
)
Декодировать также, как и DSB-SC. Вот спектрограмма сообщения, закодированного таким способом (на нижних частотах опять добавил шум):
Также аналитический сигнал может быть представлен в виде
$z(t) = A(t)e^{i\phi (t)}$
Значение $A(t) = \left| z(t) \right|$ называется моментальной амплитудой или огибающей сигнала. Таким образом, находя аналитический сигнал и его модуль можно производить демодуляцию амплитудно-модулированного сигнала.
Comments
Post a Comment