exponenta event banner

Интерполяция и децимация с помощью фильтра RRC

В этом примере показано, как интерполировать и прореживать сигналы с помощью квадратно-корневых косинусных фильтров, разработанных с помощью rcosdesign функция. В этом примере требуется программное обеспечение Communications Toolbox™.

Определите параметры косинусного фильтра квадратного корня. Определите параметры совокупности сигналов.

rolloff = 0.25; % Filter rolloff
span = 6;       % Filter span
sps = 4;        % Samples per symbol
M = 4;          % Size of the signal constellation
k = log2(M);    % Number of bits per symbol

Создайте коэффициенты квадратного корневого косинусного фильтра, используя rcosdesign функция.

rrcFilter = rcosdesign(rolloff,span,sps);

Создайте 10000 символов данных с помощью randi функция.

data = randi([0 M-1],10000,1);

Примените модуляцию PSK к символам данных. Поскольку размер совокупности равен 4, тип модуляции - QPSK.

modData = pskmod(data,M,pi/4);

Использование upfirdn функция, восходящая выборка и фильтрация входных данных.

txSig = upfirdn(modData,rrcFilter,sps);

Преобразуйте Eb/N0 в SNR и затем передайте сигнал через канал AWGN.

EbNo = 7;
snr = EbNo + 10*log10(k) - 10*log10(sps);
rxSig = awgn(txSig,snr,'measured');

Фильтрация и понижение частоты принятого сигнала. Удалите часть сигнала, чтобы учесть задержку фильтра.

rxFilt = upfirdn(rxSig,rrcFilter,1,sps);
rxFilt = rxFilt(span+1:end-span);

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

hScatter = scatterplot(sqrt(sps)* ...
    rxSig(1:sps*5000), ...
    sps,0);
hold on
scatterplot(rxFilt(1:5000),1,0,'bx',hScatter)
title('Received Signal, Before and After Filtering')
legend('Before Filtering','After Filtering')
axis([-3 3 -3 3]) % Set axis ranges
hold off

Figure Scatter Plot contains an axes. The axes with title Received Signal, Before and After Filtering contains 2 objects of type line. These objects represent Before Filtering, After Filtering.

См. также

|