Однополосная амплитудная модуляция

В этом примере показано, как использовать преобразование Гильберта, чтобы выполнить одно боковую полосу (SSB) амплитудная модуляция (AM) сигнала. Сигналы Single-sideband AM имеют меньше пропускной способности, чем нормальные сигналы AM.

Сгенерируйте 512 выборок симулированного широкополосного сигнала с помощью sinc функция. Задайте пропускную способность π/4 рад/отсчет.

N = 512;
n = 0:N-1;

bw = 1/4;
x = sinc((n-N/2)*bw);

Добавьте белый Гауссов шум, таким образом, что отношение сигнал-шум составляет 20 дБ. Сбросьте генератор случайных чисел для восстанавливаемых результатов. Используйте periodogram функционируйте, чтобы оценить степень спектральную плотность (PSD) сигнала.

rng default

SNR = 20;
noise = randn(size(x))*std(x)/db2mag(SNR);
x = x + noise;

periodogram(x)

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

Амплитуда модулирует сигнал с помощью косинуса несущей частоты ωc=π/2. Умножьтесь 2 так, чтобы степень модулируемого сигнала равнялась степени исходного сигнала. Оцените PSD.

wc = pi/2;

x1 = x.*cos(wc*n)*sqrt(2);

periodogram(x1)
legend('Modulated')

Figure contains an axes. The axes with title Periodogram Power Spectral Density Estimate contains an object of type line. This object represents Modulated.

Амплитудная модуляция SSB уменьшает пропускную способность сигнала наполовину. Чтобы выполнить амплитудную модуляцию SSB, необходимо сначала вычислить преобразование Гильберта сигнала. Затем амплитуда модулируют сигнал с помощью синуса с той же несущей частотой, ωc, как прежде, и добавляют его в предыдущий сигнал.

Спроектируйте Гильбертов трансформатор с помощью designfilt функция. Задайте порядка фильтра 64 и ширину перехода 0,1. Отфильтруйте сигнал.

Hhilbert = designfilt('hilbertfir','FilterOrder',64, ...
    'TransitionWidth',0.1);

xh = filter(Hhilbert,x);

Используйте grpdelay функция, чтобы определить задержку, gd, введенный фильтром. Компенсируйте задержку путем отбрасывания первого gd точки отфильтрованного сигнала и дополняющий нулями в конце. Амплитуда модулирует результат и добавляет его в оригинал. Сравните PSDs.

gd = mean(grpdelay(Hhilbert));
xh = xh(gd+1:end);
eh = zeros(size(x));
eh(1:length(xh)) = xh;

x2 = eh.*sin(wc*n)*sqrt(2);

y = x1+x2;

periodogram([x1;y]')
legend('Modulated','SSB')

Figure contains an axes. The axes with title Periodogram Power Spectral Density Estimate contains 2 objects of type line. These objects represent Modulated, SSB.

Downconvert сигнал и оценка PSD.

ym = y.*cos(wc*n)*sqrt(2);

periodogram(ym)
legend('Downconverted')

Figure contains an axes. The axes with title Periodogram Power Spectral Density Estimate contains an object of type line. This object represents Downconverted.

Фильтр lowpass модулируемый сигнал восстановить оригинал. Задайте КИХ 64-го порядка фильтр lowpass с частотой среза π/2. Компенсируйте задержку, введенную фильтром.

d = designfilt('lowpassfir','FilterOrder',64, ...
    'CutoffFrequency',0.5);
dem = filter(d,ym);

gd = mean(grpdelay(d));
dem = dem(gd+1:end);

dm = zeros(size(x));
dm(1:length(dem)) = dem;

Оцените PSD отфильтрованного сигнала и сравните его с тем из оригинала.

periodogram([x;dm]')
legend('Original','Recovered')

Figure contains an axes. The axes with title Periodogram Power Spectral Density Estimate contains 2 objects of type line. These objects represent Original, Recovered.

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

snrOrig = snr(x,noise)
snrOrig = 20.0259
snrRecv = snr(dm,noise)
snrRecv = 20.1373
plot(n,[x;dm]')
legend('Original','Recovered')
axis tight

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original, Recovered.

Ссылки

Маркируйте, Джон Р., Майкл М. Дэниел и Эндрю К. Зингер. Компьютерные исследования в сигналах и системах Используя MATLAB. 2-й выпуск. Верхний Сэддл-Ривер, NJ: Prentice Hall, 2002.

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

| |