Передайте сигнал 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 кГц.