Передача сигнала FSK через многолучевой канал Rayleigh с замиранием. Изменение полосы пропускания сигнала для наблюдения за воздействием канала замирания на спектр FSK.
Модуляция FSK при плоском замирании
Установите порядок модуляции на 4, скорость модулированных символов на 45 бит/с и частотное разделение на 200 Гц.
M = 4; % Modulation order symbolRate = 45; % Symbol rate (bps) freqSep = 200; % Frequency separation (Hz)
Расчет выборок по параметру символа, sampPerSym, как функция порядка модуляции, частотного разделения и скорости передачи символов. Во избежание наложения выходных сигналов произведение sampPerSym и symbolRate должно быть больше, чем произведение M и freqSep. Вычислите частоту дискретизации выходного сигнала FSK.
sampPerSym = ceil(M*freqSep/symbolRate); fsamp = sampPerSym*symbolRate;
Создайте модулятор FSK.
fskMod = comm.FSKModulator(M, ... 'FrequencySeparation',freqSep, ... 'SamplesPerSymbol',sampPerSym, ... 'SymbolRate',symbolRate);
Установите задержки трактов и средние коэффициенты усиления трактов для канала замирания.
pathDelays = [0 3 10]*1e-6; % Discrete delays of three-path channel (s) avgPathGains = [0 -3 -6]; % Average path gains (dB)
По соглашению задержка первого тракта обычно устанавливается равной нулю. Для последующих путей задержка в 1 микросекунду соответствует разности 300 м в длине пути. Задержки и усиление тракта определяют средний профиль задержки канала.
Создайте канал Рэлея, используя определенные параметры. Установите Visualization для отображения импульсных и частотных характеристик.
channel = comm.RayleighChannel(... 'SampleRate',fsamp, ... 'PathDelays',pathDelays, ... 'AveragePathGains',avgPathGains, ... 'MaximumDopplerShift',0.01, ... 'Visualization','Impulse and frequency responses', ... 'SamplesToDisplay','10%');
Формирование случайных символов данных и применение модуляции FSK.
data = randi([0 3],2000,1); modSig = fskMod(data);
Постройте график спектра модулированного сигнала FSK.
spectrum = dsp.SpectrumAnalyzer('SampleRate',fsamp);
spectrum(modSig)
Модулированный сигнал состоит из четырех тонов, каждый из которых имеет пиковую мощность приблизительно 20 дБм, разделенную 200 Гц.
Пропускают сигнал через релеевский канал замирания и применяют AWGN, имеющий отношение сигнал/шум 25 дБ.
snrdB = 25; rxSig = awgn(channel(modSig),snrdB);


Импульсные и частотные характеристики показывают, что канал ведет себя так, как будто он плоский. Это происходит потому, что полоса пропускания сигнала 800 Гц значительно меньше полосы пропускания когерентности 50 кГц.
Постройте график спектра принятого сигнала.
spectrum(rxSig)

Четыре тона, содержащие сигнал FSK, поддерживают одинаковые уровни частотного разделения и пиковой мощности относительно друг друга. Абсолютные пиковые уровни мощности снизились из-за замирания канала.
Модуляция FSK при частотно-селективном замирании
Увеличьте скорость передачи символов до 45 кбит/с и частотное разделение до 200 кГц. Вычислите новые выборки на символ и параметры частоты выборки.
symbolRate = 45e3; freqSep = 200e3; sampPerSym = ceil(M*freqSep/symbolRate); fsamp = sampPerSym*symbolRate;
Обновите свойства модулятора FSK.
release(fskMod) fskMod.SymbolRate = symbolRate; fskMod.FrequencySeparation = freqSep;
Обновить свойство частоты дискретизации анализатора спектра, sa.SampleRate. Примените модуляцию FSK и постройте график результирующего спектра.
release(spectrum) spectrum.SampleRate = sampPerSym*symbolRate; modSig = fskMod(data); spectrum(modSig)

Спектр имеет ту же форму, что и в случае с плоским замиранием, но четыре тона теперь разделены 200 кГц.
Обновите свойство скорости дискретизации канала. Пропустить сигнал через релеевский канал замирания и применить AWGN.
release(channel) channel.SampleRate = fsamp; rxSig = awgn(channel(modSig),25);


Импульсные и частотные характеристики показывают, что многолучевое замирание является частотно селективным.
Постройте график спектра принятого сигнала.
spectrum(rxSig)

Есть еще четыре идентифицируемых тона, но их относительные пиковые уровни мощности различаются из-за частотно-селективного замирания. Полоса пропускания сигнала 800 кГц превышает полосу пропускания когерентности 50 кГц.
Передача сигнала QPSK через многолучевый канал Rayleigh с замиранием. Изменение полосы пропускания сигнала для наблюдения за воздействием канала замирания на совокупность QPSK.
Модуляция QPSK при плоском замирании
Установите параметр скорости передачи символов 500 бит/с.
symbolRate = 500;
Генерировать случайные символы данных и применять модуляцию QPSK.
data = randi([0 3],10000,1);
modSig = pskmod(data,4,pi/4,'gray');
Установите задержки трактов и средние коэффициенты усиления трактов для канала замирания.
pathDelays = [0 3 10]*1e-6; % Discrete delays of three-path channel (s) avgPathGains = [0 -3 -6]; % Average path gains (dB)
По соглашению задержка первого тракта обычно устанавливается равной нулю. Для последующих путей 1 микросекундная задержка соответствует 300-метровой разнице в длине пути. Задержки и усиление тракта определяют средний профиль задержки канала.
Создайте канал Рэлея, используя определенные параметры. Установите Visualization для отображения импульсных и частотных характеристик.
fsamp = symbolRate; channel = comm.RayleighChannel(... 'SampleRate',fsamp, ... 'PathDelays',pathDelays, ... 'AveragePathGains',avgPathGains, ... 'MaximumDopplerShift',0.01, ... 'Visualization','Impulse and frequency responses');
Пропустить сигнал через рэлеевский канал и применить AWGN.
rxSig = awgn(channel(modSig),25);


Импульсные и частотные характеристики показывают, что канал ведет себя так, как будто он плоский. Это происходит потому, что полоса пропускания сигнала, 500 Гц, намного меньше полосы пропускания когерентности, 50 кГц. Альтернативно, интервал задержки канала (10 микросекунд) намного меньше, чем период символа QPSK (2 миллисекунды), так что результирующая импульсная характеристика с ограниченной полосой частот является приблизительно плоской.
Постройте график созвездия.
constDiagram = comm.ConstellationDiagram; constDiagram(rxSig)

Совокупность QPSK показывает эффекты канала замирания; однако сигнал все еще имеет четыре идентифицируемых состояния.
Модуляция QPSK при частотно-селективном замирании
Увеличьте скорость передачи символов до 500 кбит/с и обновите соответствующее свойство канала. Пропустить сигнал через рэлеевский канал и применить AWGN.
symbolRate = 500e3; release(channel) channel.SampleRate = symbolRate; rxSig = awgn(channel(modSig),25);


Импульсные и частотные характеристики показывают, что многолучевое замирание является частотно селективным.
Постройте график созвездия.
constDiagram(rxSig)

По мере увеличения полосы пропускания сигнала с 500 Гц до 500 кГц сигнал становится сильно искаженным. Это искажение обусловлено межсимвольными помехами (ISI), возникающими из-за временной дисперсии широкополосного сигнала. Интервал задержки канала (10 микросекунд) теперь больше, чем период символа QPSK (2 микросекунды), так что результирующая импульсная характеристика с ограниченной полосой частот больше не является плоской. Альтернативно, полоса пропускания сигнала намного больше полосы пропускания когерентности, 50 кГц.