В этом примере показано, как использовать дискретное преобразование Гильберта, чтобы реализовать Одну Модуляцию Боковой полосы.
Преобразование Гильберта находит применение в модуляторах и демодуляторах, речевой обработке, медицинской обработке изображений, измерениях направления прибытия (DOA), по существу где угодно комплексный сигнал (квадратура), обработка упрощает проект.
Одна Боковая полоса (SSB), Модуляция является эффективной формой Амплитудной модуляции (AM), которая использует половину полосы пропускания, используемой AM. Этот метод является самым популярным в приложениях, таких как телефония, Любительское радио и коммуникации HF, i.e., основанные на речи коммуникации. В этом примере показано, как реализовать Модуляцию SSB с помощью Гильбертова Трансформатора.
Чтобы мотивировать потребность использовать Гильбертов Трансформатор в модуляции SSB, это полезно первому, быстро рассматривают двойную модуляцию боковой полосы.
Простая форма AM является Двойной Боковой полосой (DSB) Модуляция, которая обычно состоит из двух переключенных частотой копий модулируемого сигнала по обе стороны от несущей частоты. Более точно это упоминается как DSB Подавленная Несущая и задано как
где обычно упоминается как сигнал сообщения и несущая частота. Как показано в уравнении выше, модуляция DSB состоит из умножения сигнала сообщения несущей , поэтому, мы можем использовать теорему модуляции преобразований Фурье, чтобы вычислить преобразование
где Преобразование Фурье дискретного времени (DTFT) . Если сигналом сообщения является lowpass с полосой пропускания W, то полосовой сигнал с дважды полосой пропускания. Давайте посмотрим на пример сигнал DSB и его спектр.
% Define and plot a message signal which contains three tones at 500, 600, % and 700 Hz with varying amplitudes. Fs = 10e3; t = 0:1/Fs:0.1-1/Fs; m = sin(2*pi*500*t) + 0.5*sin(2*pi*600*t) + 2*sin(2*pi*700*t); plot(t,m) grid xlabel('Time') ylabel('Amplitude') title('Message Signal m(n)')
Ниже мы вычисляем и строим спектр мощности сигнала сообщения.
periodogram(m,[],4096,Fs,'power','centered') ylim([-75 12])
Двусторонний спектр мощности ясно показывает три тона около DC. Если мы увеличим масштаб далее, то мы сможем считать степень каждого компонента.
xlim([0.1 1]) ylim([-18 2])
Степень для тона на 500 Гц составляет примерно-6 дБ, поскольку тон на 600 Гц составляет-12 дБ, и для тона на 700 Гц 0 дБ, который соответствует тональным амплитудам сигнала сообщения 1, 0.5, и 2, соответственно.
Используя этот сигнал сообщения , давайте умножим его на несущую, чтобы создать сигнал DSB и посмотреть на его спектр.
fo = 3.5e3; % Carrier frequency in Hz f = m.*cos(2*pi*fo*t); idx = 100; plot(t(1:idx),f(1:idx),t(1:idx),m(1:idx),':') grid xlabel('Time') ylabel('Amplitude') title('Message Signal and Message Signal Modulated') legend('Modulated Message Signal','Message Signal m(n)')
Синяя сплошная линия является модулируемым сигналом сообщения, и красная пунктирная линия является медленным различным сигналом сообщения. Спектр мощности нашего модулируемого сигнала затем
periodogram(f,[],4096,Fs,'power','centered') ylim([-75 0])
Мы видим, что сигнал сообщения (три тона), был смещен к центральной частоте . Кроме того, мощность каждого компонента была уменьшена одной четверти, из-за разделенных на два амплитуд, как обозначено DTFT модулируемого . Давайте масштабировать, чтобы считать новые значения степени
ylim([-20 0])
Наши положительные частотные составляющие теперь на уровне-6 дБ,-18 дБ и-12 дБ.
Теперь, когда мы задали модуляцию DSB, давайте смотреть на одну модуляцию боковой полосы.
Одна Боковая полоса (SSB), Модуляция похожа на модуляцию DSB, но вместо того, чтобы использовать целый спектр это использует фильтр, чтобы выбрать или более низкую или верхнюю боковую полосу. Выбор более низкой или верхней боковой полосы приводит к более низкой боковой полосе (LSB) или верхняя боковая полоса (USB) модуляция, соответственно. Существует два подхода к устранению одной из боковых полос, каждый - метод фильтра, и другой метод фазировки. Процесс выборочной фильтрации верхней или более низкой боковой полосы затрудняет из-за строгих требуемых фильтров, особенно если существует содержимое сигнала близко к DC. В этом примере показано, как использовать метод фазировки, который использует Гильбертов Трансформатор, чтобы реализовать Модуляцию SSB.
Модуляция SSB требует перемены сигнала сообщения к другой центральной частоте, не создавая пары частотных составляющих и как в случае модуляции DSB, i.e., избегая потребности отфильтровать или верхнюю или более низкую боковую полосу. Это может быть сделано при помощи Гильбертова Трансформатора.
Давайте сначала рассмотрим определение и свойства идеального преобразования Гильберта, прежде чем мы обсудим его использование в модуляции SSB. Это поможет мотивировать его использование в модуляции SSB.
Дискретное преобразование Гильберта является процессом, которым отрицательные частоты сигнала усовершенствованы фазой 90 градусами, и положительные частоты задерживаются фазой 90 градусами. Сдвиг результатов преобразования Гильберта (+ j) и добавление его к исходному сигналу создают комплексный сигнал, как мы будем видеть ниже.
Если преобразование Гильберта то:
комплексный сигнал, известный как Аналитический Сигнал. Схема ниже показов генерация аналитического сигнала посредством идеального преобразования Гильберта.
Одна важная характеристика аналитического сигнала - то, что его спектральное содержимое находится в положительном интервале Найквиста. Это вызвано тем, что, если мы переключим мнимую часть нашего аналитического (комплексного) сигнала 90 градусами (+ j) и добавим его в действительную часть, отрицательные частоты отменят, в то время как положительные частоты добавят. Это приводит к сигналу без отрицательных частот. Кроме того, величина частотной составляющей в комплексном сигнале является дважды величиной частотной составляющей в действительном сигнале. Это похоже на односторонний спектр, который содержит общую степень сигнала в положительных частотах.
Затем мы вводим Спектральный Переключатель. Спектральные сдвиги Переключателя (переводят) спектральное содержимое сигнала путем модуляции аналитического сигнала, сформированного из сигнала, спектр которого мы хотим переключить. Эта концепция может использоваться для модуляции SSB как показано позже.
Используя сигнал сообщения заданный выше мы создадим аналитический сигнал путем использования преобразования Гильберта, которое будет затем модулироваться к желаемой центральной частоте. Схему показывают в схеме ниже.
Используя этот метод спектральной перемены гарантирует, что степень нашего сигнала смещена к частоте интереса при поддержании вещественного сигнала в конце.
Когда мы указали ранее, что аналитический сигнал составлен из исходного вещественного сигнала плюс преобразование Гильберта того действительного сигнала. Выполнение действительного сигнала функцией hilbert в Signal Processing Toolbox™ произведет аналитический сигнал.
Примечание: функция hilbert производит полный аналитический (комплексный) сигнал, не только мнимую часть.
mc = hilbert(m);
Мы можем также вычислить и построить спектральное содержимое аналитического сигнала, созданного из нашего сигнала сообщения .
periodogram(mc,[],4096,Fs,'power','centered') ylim([-75 6])
Как показано в графике спектра, наш аналитический сигнал является комплексным и только содержит положительные частотные составляющие. Кроме того, если мы измерим степень или увеличение нашего графика далее в положительной частотной составляющей, то мы будем видеть, что степень частотных составляющих аналитического сигнала является дважды общей степенью положительного (или отрицательный) частотная составляющая действительного сигнала, i.e., это похоже на односторонний спектр, который содержит общую степень сигнала. Смотрите увеличил масштаб график ниже.
xlim([0.1 1]) ylim([-10 6])
Мы видим, что степень частотных составляющих аналитического (комплексного) сигнала, 500 Гц, 600 Гц и 700 Гц - примерно 0,-6 дБ и 6 дБ, соответственно, который является общей степенью исходного сигнала. Эти значения соответствуют нашему исходному вещественному сигналу, который имеет три тона с амплитудами 1, 0.5, и 2, соответственно.
В этой точке мы можем модулировать аналитический сигнал переключить спектральное содержимое к другой центральной частоте, не производя пары частотной составляющей и обеспечить вещественный сигнал.
Модулировать сигнал к несущей частоте , мы умножим аналитический сигнал на экспоненциал.
mcm = mc.*exp(1i*2*pi*fo*t);
Как показано в Спектральной схеме Переключателя, после модуляции нашего сигнала мы вычислим действительную часть. Спектр которого
periodogram(real(mcm),[],4096,Fs,'power','centered') ylim([-75 0])
Как показано в графике выше нашего сигнала модулировался к новой центральной частоте не создавая пары частоты, i.e., это привело к верхней боковой полосе.
Если мы сравниваем спектральный график выше с той из модуляции DSB, мы видим, что Спектральный Шифтер выполнил модуляцию SSB.
От нашей предыдущей деривации мы видим, что SSB модулировал сигнал, может быть записан как
где аналитический сигнал, заданный как
При расширении того уравнения и принятии действительного участия мы добираемся
который приводит к одной боковой полосе, верхняя боковая полоса (SSBU). Точно так же мы можем задать SSB более низкая боковая полоса (SSBL)
Уравнение SSBU выше предлагает более эффективный способ реализовать SSB. Вместо того, чтобы выполнять комплексное умножение с и затем выбрасывая мнимую часть, мы можем вычислить только количества, в которых мы нуждаемся путем реализации SSBU как показано ниже.
Чтобы реализовать модуляцию SSB, показанную выше, мы должны вычислить преобразование Гильберта нашего сигнала сообщения и модулируйте оба сигнала. Но прежде чем мы делаем это, мы должны указать на то, что идеальные Гильбертовы трансформаторы не осуществимы. Однако алгоритмы, которые аппроксимируют Гильбертов Трансформатор, такой как КИХ-метод создания фильтра Парков-McClellan, были разработаны, который может использоваться. Signal Processing Toolbox™ обеспечивает firpm
функция, которая проектирует такие фильтры. Кроме того, поскольку фильтр вводит задержку, которую мы должны компенсировать ту задержку путем добавления задержки (N/2, где N является порядком фильтра) к сигналу, который умножается на термин косинуса как показано ниже.
Для КИХ трансформатор Гильберта мы будем использовать нечетный фильтр длины, который в вычислительном отношении более эффективен, чем ровный фильтр длины. Хотя даже фильтры длины обладают меньшими ошибками полосы пропускания. Сбережения в нечетных фильтрах длины являются результатом, что эти фильтры имеют несколько из коэффициентов, которые являются нулем. Кроме того, использование нечетного фильтра длины потребует сдвига целочисленной задержкой, в противоположность дробной задержке, которая требуется ровным фильтром длины. Для нечетного фильтра длины ответ величины Гильбертова Трансформатора является нулем для и . Для даже программ для работы с файлами длины ответ величины не должен быть 0 в , поэтому они увеличили полосы пропускания. Таким образом для нечетных фильтров длины полезная полоса пропускания ограничивается
Давайте спроектируем фильтр и построим его нулевой фазовый отклик.
Hd = designfilt('hilbertfir','FilterOrder',60, ... 'TransitionWidth',0.1,'DesignMethod','equiripple'); hfv = fvtool(Hd,'MagnitudeDisplay','Zero-phase', ... 'FrequencyRange','[-pi, pi)'); hfv.Color = 'white';
Чтобы аппроксимировать преобразование Гильберта, мы отфильтруем сигнал сообщения с фильтром.
m_tilde = filter(Hd,m);
Верхний сигнал боковой полосы затем
G = filtord(Hd)/2; % Filter delay
m_delayed = [zeros(1,G),m(1:end-G)];
f = m_delayed.*cos(2*pi*fo*t) - m_tilde.*sin(2*pi*fo*t);
и спектр
periodogram(f,[],4096,Fs,'power','centered') ylim([-75 0])
Как замечено в графике выше мы успешно модулировали сигнал сообщения (три тона) к несущей частоте 3,5 кГц и сохранили только верхнюю боковую полосу.
Как мы видели, при помощи приближения к преобразованию Гильберта, мы можем произвести аналитические сигналы, которые полезны во многих приложениях сигнала, которые требуют спектральной перемены. В частности мы видели, как аппроксимированный Гильбертов Трансформатор может использоваться, чтобы реализовать Одну Модуляцию Боковой полосы.