Модуляция с одной боковой полосой через преобразование Гильберта

Этот пример показывает, как использовать дискретное Преобразование Гильберта для реализации Single Sideband Modulation.

Преобразование Гильберта находит приложения в модуляторах и демодуляторах, обработке речи, медицинской визуализации, измерениях направления прибытия (DOA), по существу, где бы ни была комплексно-сигнальная (квадратурная) обработка, упрощает проект.

Введение

Модуляция с одной боковой полосой (SSB) является эффективной формой амплитудной модуляции (AM), которая использует половину полосы пропускания, используемой AM. Этот метод наиболее популярен в таких приложениях, как телефония, HAM-радио и HF-связь, то есть голосовая связь. Этот пример показов, как реализовать модуляцию SSB с помощью Трансформатора Гильберта.

Чтобы мотивировать необходимость использования трансформатора Гильберта в SSB-модуляции, полезно сначала быстро просмотреть двойную боковую модуляцию.

Двойная боковая модуляция

Простая форма AM является модуляцией Double Sideband (DSB), которая обычно состоит из двух сдвинутых по частоте копий модулированного сигнала на каждой стороне несущей частоты. Более точно это упоминается как подавленная несущая DSB и определяется как

f(n)=m(n)cos(2πf0n/fs)

где m(n) обычно упоминается как сигнал сообщения и f0 - несущая частота. Как показано в уравнении выше, модуляция DSB состоит из умножения сигнала сообщения m(n) по перевозчику cos(2πf0n/fs)поэтому мы можем использовать теорему модуляции преобразований Фурье, чтобы вычислить преобразование f(n)

F(f)=12[M(f-f0)+M(f+f0)]

где M(f) - преобразование Фурье в дискретном времени (DTFT), m(n). Если сигнал сообщения lowpass с пропускной способностью W, то F(f) является полосно-пропускающим сигналом с удвоенной пропускной способностью. Давайте рассмотрим пример сигнала 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)')

Figure contains an axes. The axes with title Message Signal m(n) contains an object of type line.

Ниже мы вычисляем и строим график спектра степени сигнала сообщения.

periodogram(m,[],4096,Fs,'power','centered')
ylim([-75 12])

Figure contains an axes. The axes with title Periodogram Power Spectrum Estimate contains an object of type line.

Двусторонний спектр степени четко показывает три тона около постоянного тока. Если мы увеличим масштаб дальше, мы сможем считать степень каждого компонента.

xlim([0.1 1])
ylim([-18 2])

Figure contains an axes. The axes with title Periodogram Power Spectrum Estimate contains an object of type line.

Значение степени для тонального сигнала 500 Гц составляет примерно -6 дБ, для тонального сигнала 600 Гц - -12 дБ, а для тонального сигнала 700 Гц - 0 дБ, что соответствует амплитудам тонального сигнала сообщения 1, 0,5 и 2, соответственно.

Использование этого сигнала сообщения m(n), давайте умножим его на несущую, чтобы создать сигнал 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)')

Figure contains an axes. The axes with title Message Signal and Message Signal Modulated contains 2 objects of type line. These objects represent Modulated Message Signal, Message Signal m(n).

Синяя сплошная линия является модулированным сигналом сообщения, а красная пунктирная линия является медленным изменяющимся сигналом сообщения. Спектр степени нашего модулированного сигнала тогда

periodogram(f,[],4096,Fs,'power','centered')
ylim([-75 0])

Figure contains an axes. The axes with title Periodogram Power Spectrum Estimate contains an object of type line.

Мы видим, что сигнал сообщения (три тональных сигнала) был смещен на центральную частоту f0. Кроме того, степень каждого компонента была уменьшена до одной четверти, из-за сокращения амплитуд в два раза, как указано DTFT модулированного m(n). Давайте масштабируем, чтобы считать новые значения степени

ylim([-20 0])

Figure contains an axes. The axes with title Periodogram Power Spectrum Estimate contains an object of type line.

Наши положительные частотные составляющие теперь на -6 дБ, -18 дБ и -12 дБ.

Теперь, когда мы определили DSB-модуляцию, давайте рассмотрим одну боковую полосу модуляции.

Модуляция с одной боковой полосой

Single Sideband (SSB) Модуляция подобна модуляции DSB, но вместо использования всего спектра использует фильтр, чтобы выбрать нижнюю или верхнюю боковую полосу. Выбор нижней или верхней боковой полосы приводит к модуляции нижней боковой полосы (LSB) или верхней боковой полосы (USB), соответственно. Существует два подхода к устранению одной из боковых полос, один из которых является методом фильтра, а другой - методом фазирования. Процесс выборочной фильтрации верхней или нижней боковой полосы затруднен из-за требующихся жестких фильтров, особенно если существует содержимое сигнала, близкая к DC. Этот пример показывает, как использовать метод фазирования, который использует трансформатор Гильберта для реализации модуляции SSB.

Модуляция SSB требует перемены сигнала сообщения на другую центральную частоту, не создавая пар частотных составляющих X(f-f0) и X(f+f0) как в случае модуляции DSB, то есть, избегая необходимости фильтрации либо верхней, либо нижней боковой полосы. Это можно сделать с помощью трансформатора Гильберта.

Давайте сначала рассмотрим определение и свойства идеального преобразования Гильберта, прежде чем обсуждать его использование в модуляции SSB. Это поможет мотивировать его использование в SSB-модуляции.

Идеальное преобразование Гильберта

Дискретное Преобразование Гильберта является процессом, посредством которого отрицательные частоты сигнала продвигаются по фазе на 90 степени, а положительные частоты задерживаются по фазе на 90 степени. Сдвиг результатов Преобразования Гильберта (+ j) и добавление его к исходному сигналу создает комплексный сигнал, как мы увидим ниже.

Если mi(n) - Преобразование Гильберта mr(n), затем:

mc(n)=mr(n)+jmi(n)

является комплексным сигналом, известным как Аналитический сигнал. Схема ниже показывает генерацию аналитического сигнала с помощью идеального преобразования Гильберта.

Одной из важных характеристик аналитического сигнала является то, что его спектральное содержимое лежит в положительном интервале Найквиста. Это потому, что, если мы сместим мнимую часть нашего аналитического (комплексного) сигнала на 90 степени (+ j) и добавим его к вещественной части, отрицательные частоты будут отменяться, в то время как положительные частоты будут добавляться. Это приводит к сигналу без отрицательных частот. Кроме того, величина частотной составляющей в комплексном сигнале в два раза превышает величину частотной составляющей в действительном сигнале. Это похоже на односторонний спектр, который содержит общую степень сигнала в положительных частотах.

Затем мы введем Спектральный Сдвигатель. Спектральный Сдвиг смещает (переводит) спектральное содержимое сигнала путем модулирования аналитического сигнала, сформированного из сигнала, спектр которого мы хотим сдвинуть. Эта концепция может использоваться для модуляции SSB, как показано ниже.

Спектральный Сдвигатель

Использование сигнала сообщения m(n) заданные выше, мы создадим аналитический сигнал с помощью преобразования Гильберта, которое затем будет модулировано до желаемой центральной частоты. Схема показана на схеме ниже.

Использование этого метода спектральной перемены обеспечит сдвиг степени нашего сигнала на интересующую частоту при сохранении в конце действительного сигнала.

Как мы указывали ранее, аналитический сигнал состоит из исходного реального сигнала плюс преобразования Гильберта этого реального сигнала. Выполнение действительного сигнала функцией hilbert в Signal Processing Toolbox™ произведет аналитический сигнал.

Примечание: Функция hilbert генерирует полный аналитический (комплексный) сигнал, а не только мнимую часть.

mc = hilbert(m);

Мы также можем вычислить и построить график спектрального содержимого аналитического сигнала, созданного из нашего сигнала сообщения m(n).

periodogram(mc,[],4096,Fs,'power','centered')
ylim([-75 6])

Figure contains an axes. The axes with title Periodogram Power Spectrum Estimate contains an object of type line.

Как показано на графике спектра, наш аналитический сигнал комплексен и содержит только положительные частотные составляющие. Более того, если мы измерим мощность или масштабирование нашего графика далее при положительной частотной составляющей, мы увидим, что степень частотных составляющих аналитического сигнала в два раза превышает общую степень положительной (или отрицательной) частотной составляющей реального сигнала, то есть она подобна одностороннему спектру, который содержит общую степень сигнала. См. график масштабирования ниже.

xlim([0.1 1])
ylim([-10 6])

Figure contains an axes. The axes with title Periodogram Power Spectrum Estimate contains an object of type line.

Мы видим, что степень частотных составляющих аналитического (комплексного) сигнала 500 Гц, 600 Гц и 700 Гц составляет примерно 0, -6 дБ и 6 дБ, соответственно, что является полной степенью исходного сигнала. Эти значения соответствуют нашему исходному реальному сигналу, который имеет три тона с амплитудами 1, 0,5 и 2 соответственно.

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

Чтобы модулировать сигнал к несущей частоте f0мы умножим аналитический сигнал на экспоненциальный.

mcm = mc.*exp(1i*2*pi*fo*t);

Как показано на схеме Спектрального Сдвига, после модулирования нашего сигнала мы вычислим действительную часть. Спектр которой является

periodogram(real(mcm),[],4096,Fs,'power','centered')
ylim([-75 0])

Figure contains an axes. The axes with title Periodogram Power Spectrum Estimate contains an object of type line.

Как показано на графике выше, наш сигнал был модулирован до новой центральной частоты f0 не создавая пары частот, то есть приводя к верхней боковой полосе.

Если сравнить спектральный график выше с графиком модуляции DSB, то мы увидим, что Спектральный Сдвигатель выполнил SSB модуляцию.

Эффективная реализация модуляции SSB

Из нашей предыдущей производной мы видим, что SSB модулировал сигнал, f(n) может быть написано как

f(n)=[mc(n)exp(j2πf0n/fs)]

где mc(n) - аналитический сигнал, заданный как

mc(n)=m(n)+jm(n)

Расширяя это уравнение и принимая реальную часть, мы получаем

f(n)=[m(n)cos(2πf0n/fs)-m(n)sin(2πf0n/fs)]

что приводит к одной боковой полосе, верхней боковой полосе (SSBU). Точно так же можно задать нижнюю боковую полосу SSB (SSBL) путем

f(n)=[mc(n)exp(-j2πf0n/fs)]

f(n)=[m(n)cos(2πf0n/fs)+m(n)sin(2πf0n/fs)]

Приведенное выше уравнение SSBU предлагает более эффективный способ реализации SSB. Вместо выполнения комплексного умножения mc(n) с exp(j2πf0n/fs) и затем выбрасывая мнимую часть, мы можем вычислить только те количества, в которых мы нуждаемся, внедряя SSBU, как показано ниже.

Чтобы реализовать модуляцию SSB, показанную выше, нам нужно вычислить Преобразование Гильберта нашего сигнала сообщения m(n) и модулируйте оба сигнала. Но прежде чем мы это сделаем, нам нужно указать на тот факт, что идеальные трансформаторы Гильберта не реализуются. Однако были разработаны алгоритмы, которые аппроксимируют трансформатор Гильберта, такие как метод конечной импульсной характеристики создания фильтра Паркса-Макклеллана, который можно использовать. Signal Processing Toolbox™ обеспечивает firpm функция, которая проектирует такие фильтры. Кроме того, поскольку фильтр вводит задержку, нам нужно компенсировать эту задержку путем добавления задержки (N/2, где N - порядок фильтра) к сигналу, который умножается на член косинуса, как показано ниже.

Для конечной импульсной характеристики трансформатора Гильберта мы будем использовать фильтр нечетной длины, который в вычислительном отношении более эффективен, чем фильтр четной длины. Хотя даже фильтры длины пользуются меньшими ошибками полосы пропускания. Экономия в фильтрах нечетной длины является результатом того, что эти фильтры имеют несколько коэффициентов, которые равны нулю. Кроме того, использование фильтра нечетной длины потребует сдвига на целочисленную задержку, в отличие от дробной задержки времени, которая требуется фильтром четной длины. Для фильтра нечетной длины величины реакция Трансформатора Гильберта равна нулю для w=0 и w=π. Для файлов с четной длиной ответ величины не должен быть 0 в πпоэтому они имеют увеличенные полосы пропускания. Поэтому для фильтров нечетной длины полезная полоса пропускания ограничена

0<w<π

Давайте спроектируем фильтр и постройм его нулевую фазовую характеристику.

Hd = designfilt('hilbertfir','FilterOrder',60, ...
    'TransitionWidth',0.1,'DesignMethod','equiripple');

hfv = fvtool(Hd,'MagnitudeDisplay','Zero-phase', ...
    'FrequencyRange','[-pi, pi)');
hfv.Color = 'white';

Figure Filter Visualization Tool - Zero-phase Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Zero-phase Response contains 2 objects of type line.

Чтобы аппроксимировать Преобразование Гильберта, мы будем фильтровать сигнал сообщения с фильтром.

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])

Figure contains an axes. The axes with title Periodogram Power Spectrum Estimate contains an object of type line.

Как видно на графике выше, мы успешно модулировали сигнал сообщения (три тональных сигнала) до несущей частоты 3,5 кГц и сохраняли только верхнюю боковую полосу.

Сводные данные

Как мы видели, при помощи приближения к Преобразованию Гильберта мы можем получить аналитические сигналы, которые полезны во многих приложениях сигналов, которые требуют спектральной перемены. В частности, мы видели, как приблизительный трансформатор Гильберта может использоваться для реализации Single Sideband Modulation.

См. также

| |