Передайте сигнал FSK через Рейли многопутевой исчезающий канал. Измените полосу пропускания сигнала, чтобы наблюдать удар исчезающего канала на спектре 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 dBm пиковых мощностей на 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 через Рейли многопутевой исчезающий канал. Измените полосу пропускания сигнала, чтобы наблюдать удар исчезающего канала на созвездии 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 миллисекунды), таким образом, результант bandlimited импульсная характеристика является приблизительно плоским.
Постройте созвездие.
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 микросекунды), таким образом, результант bandlimited импульсная характеристика является более не плоским. В качестве альтернативы полоса пропускания сигнала намного больше, чем полоса пропускания когерентности, 50 кГц.