Интерполяция и децимация с помощью фильтра 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 function, upsample и фильтрация входных данных.

txSig = upfirdn(modData,rrcFilter,sps);

Преобразуйте Eb/N0 в ОСШ и затем передайте сигнал через канал 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.

См. также

|

Для просмотра документации необходимо авторизоваться на сайте