Материал: OPISIS_LAB6

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

plot(t,combinedResponse/max(combinedResponse),lineColors(i)); hold on;

%See Chapter 1 for the function 'freqDomainView' [vals,F]=freqDomainView(srrcPulseAtTx,Fs,'double'); subplot(1,2,2); plot(F,abs(vals)/abs(vals(length(vals)/2+1)),lineColors(i)); hold on;legendString{i}=strcat('\beta =',num2str(beta) );i=i+1; end

subplot(1,2,1);

title('Combined response of SRRC filters'); legend(legendString); subplot(1,2,2);

title('Frequency response (at Tx/Rx only)');legend(legendString);

Рисунок 7 – Комбинированный отклик двух фильтров SRRC и представление

одного импульса SRRC в частотной области

Программа 9: plotEyeDiagram.m: функция для построения глазковой диаграммы

function [eyeVals]=plotEyeDiagram(x,L,nSamples,offset,nTraces)

%Function

to plot

eye diagram

 

 

%x - input

vector

representing the signal

 

%L - oversampling

factor (for

calculating

x-axis in plot)

%nSamples

- number of samples

per trace -

preferably set to integral

% multiple

of oversampling factor L(number of bits per symbol)

%offset -

initial

offset in the data from

where to begin plotting

%nTraces -

number

of traces to plot

 

%If the signal processing toolbox is not available, put M=1 % and convert the line that says y=interp(x,M) to y=x

M=4; %oversampling factor for eyediagram - for smoother plot tnSamp = (nSamples*M*nTraces);%total number of samples y=interp(x,M);%interpolate the signal with the oversampling factor

eyeVals=reshape(y(M*offset+1:(M*offset+tnSamp)),nSamples*M,nTraces); t=( 0 : 1 : M*(nSamples)-1)/(M*L);

plot(t,eyeVals);

title('Eye Plot');xlabel('t/T_{sym}');ylabel('Amplitude');

end

Реализация системы согласованных фильтров с фильтрацией SRRC

Базовая система амплитудно-импульсной модуляции (PAM) расширена на рисунке 8 за счет добавления повышающего дискретизатора L , функции формирования импульса p n на передатчике и согласованного фильтра g n ,

комбинация нижнего пробоотборника L на приемнике

В этой модели случайный поток исходных битов сначала сегментируется на символы шириной k бит, которые могут принимать любое значение из набора m 1,2, ..., M . Код моделирования напрямую начинается с генерации случайного набора символов, который передается в модуль отображения модуляции.

Модулятор MPAM отображает k-битовые информационные символы на один из

M 2k различных уровней сигнализации. Символ модуляции MPAM показан на рисунке 7.9.

Рисунок 8 –Реализация системы модуляции PAM с формированием импульсов и согласованной фильтрацией

Программа 10: Модуляция MPAM

N = 10^5; %Number of symbols to transmit MOD_TYPE = 'PAM'; %modulation type

M = 4; %modulation level for the chosen modulation MOD_TYPE

d = ceil(M.*rand(1,N)); %random numbers from 1 to M for input to PAM u = modulate(MOD_TYPE,M,d);%MPAM modulation

figure; stem(real(u)); %plot modulated symbols

Рисунок 9 – Модулированные символы MPAM

Каждый модулированный символ MPAM должен существовать в течение некоторого времени, называемого временем символа, обозначенного как Tsym.

Каждый модулированный символ будет проходить через фильтр p(n)

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

Для этого входящие символы из модуля отображения модуляции необходимо преобразовать в последовательность дискретных временных импульсов путем повышения их дискретизации с коэффициентом L (согласно уравнению 7.7).

Устройство повышения дискретизации вставляет L-1 нулей между каждым модулированным символом. На практике L выбирается как целое число, кратное 4.

Выходной сигнал повышающего / передискретизированного сигнала показан на рисунке 10.

Программа 11: Повышение частоты дискретизации

L=4; %Oversampling factor (L samples per symbol period) v=[u;zeros(L-1,length(u))];%insert L-1 zero between each symbols %Convert to a single stream

v=v(:).';%now the output is at sampling rate stem(real(v)); title('Oversampled symbols v(n)');

Чтобы заполнить правильные значения вместо вставленных нулей,

интерполяция выполняется фильтром формирования импульса путем свертки выходного сигнала повышающего дискретизатора и функции формирования импульса. Функция формирования импульсов должна удовлетворять критерию Найквиста для нулевого ISI, в противном случае эффект наложения спектров нанесет серьезный ущерб. Если амплитудный отклик канала плоский и если шум белый, то амплитудный отклик функции формирования импульса можно разделить поровну между передатчиком и приемником. Для этого моделирования желаемая форма импульса Найквиста представляет собой форму импульса с приподнятым косинусом, а задача фильтрации с приподнятым косинусом поровну разделена между фильтрами передачи и приема. Это приводит к использованию фильтров квадратного корня с приподнятым косинусом (SRRC) в передатчике и приемнике.

Это система согласованных фильтров, в которой фильтр приема согласован с фильтром формирования импульса передачи.

Согласованная система фильтрации — это теоретическая основа, а не конкретный тип фильтра. Он предлагает улучшенное шумоподавление за счет улучшения отношения сигнал / шум на выходе приемного фильтра. Реализация начинается с разработки фильтра SRRC с коэффициентом спада β = 0,3. На длину фильтра SRRC влияет параметр Nsym - диапазон длины фильтра в единицах символов и коэффициент передискретизации L.

Фильтры не производят мгновенный вывод, и им требуется время для вывода. То есть выход фильтра сдвинут во времени относительно входа. Для симметричных КИХ-фильтров длиной Lfir задержка фильтра равна Lfir / 2 . Помимо

возврата функции импульса SRRC, функция проектирования фильтра, возвращает задержку фильтра. Задержки фильтра полезны при определении соответствующих

экземпляров выборки в приемнике. Модулированные символы в передатчике проходят через разработанный фильтр, и его отклик показан на рисунке 10.

Программа 12: Формирование импульсов SRRC

%----Pulse shaping-----

beta = 0.3;% roll-off factor for Tx SRRC filter Nsym=8;%SRRC filter span in symbol durations

L=4; %Oversampling factor (L samples per symbol period) [p,t,filtDelay] = srrcFunction(beta,L,Nsym);%design filter s=conv(v,p,'full');%Convolve modulated syms with p[n] filter figure; plot(real(s),'r'); title('Pulse shaped symbols s(n)');

Выборки сигнала в форме импульса отправляются через канал AWGN, где переданные выборки добавляются с выборками шума, которые генерируются в соответствии с требуемым Eb / N0 (см. Модель шума AWGN, приведенную в разделе 6.1.2). Принятый сигнал, искаженный шумом AWGN, показан на рисунке

7.11.

Рисунок 10 – Модулированные символы с повышенной дискретизацией на 4 (слева) и выход фильтра формирования импульсов SRRC (справа)

Программа 13: Добавление шума AWGN для заданного значения SNR

EbN0dB = 10; %EbN0 in dB for AWGN channel

snr = 10*log10(log2(M))+EbN0dB; %Converting given Eb/N0 dB to SNR %log2(M) gives the number of bits in each modulated symbol

r = add_awgn_noise(s,snr,L); %AWGN , add noise for given SNR, r=s+w %L is the oversampling factor used in simulation

figure; plot(real(r),'r');title('Received signal r(n)');

Источник: https://studfile.net/preview/16500185/