В этом примере показано, как симулировать Высокочастотные (HF) ионосферные каналы, на основе моделей, описанных в Рекомендации ITU-R F.1487. В частности, это показывает, как симулировать модель канала генерала Уоттерсона и другие упрощенные модели канала, используемые в количественном тестировании модемов HF. Это использует comm.RayleighChannel
Система object™ и stdchan
функция наряду с Гауссовым и bi-Gaussian doppler
структуры от Communications Toolbox™.
В HF ионосферная радиосвязь переданный сигнал может возвратиться прочь несколько раз от слоев E и F ионосферы, которая приводит к нескольким путям к распространению, также названным режимами [1]. Как правило, многопутевые распространения задержки являются большими, по сравнению с рацией. Кроме того, сигнал может пострадать от Доплеровского распространения из-за турбулентности ионосферы. Однако исчезающий уровень обычно меньше, чем для рации.
Рекомендация ITU-R F.1487 [1] предлагает общую Гауссову поля точек модель для симуляции HF ионосферные каналы. Эта модель основана на модели [2] канала Уоттерсона. Более простые модели также предложены в [1] для использования в проверках модема HF заданными параметрами.
Частота дискретизации симуляции Rs
задан к 9.6K Гц и сохранен тем же самым для остатка от примера. Мы используем схему модуляции QPSK с нулевым смещением фазы.
Rs = 9.6e3; % Channel sampling rate M = 4; % Modulation order qpskMod = comm.QPSKModulator(0); % QPSK modulator object
Модель канала Уоттерсона состоит из коснувшейся линии задержки, где каждое касание соответствует разрешимому пути к распространению. На каждом касании присутствуют два магнитоионных компонента: каждый моделируется как комплексный Гауссов вероятностный процесс с данным усилением и сдвигом частоты, и чей Доплеровский спектр является Гауссовым с данным стандартным отклонением [2]. Следовательно, каждое касание характеризуется bi-Gaussian Доплеровским спектром, который состоит из двух Гауссовых функций в частотном диапазоне, каждом с его собственным набором параметров (усиление степени, сдвиг частоты и стандартное отклонение).
В этом примере мы следуем за имитационной моделью Уоттерсона, заданной в [1], в котором комплексный процесс исчезновения на каждом касании получен путем добавления двух независимых переключенных частотой комплексных Гауссовых вероятностных процессов (с Гауссовыми Доплеровскими спектрами) соответствие двум магнитоионным компонентам. Эта имитационная модель приводит к комплексному процессу исчезновения, конверт которого в целом не, Рейли распределил. Следовательно, чтобы быть верными имитационной модели, мы не можем просто сгенерировать канал Рейли с bi-Gaussian Доплеровским спектром. Вместо этого мы генерируем два независимых канала Рейли, каждого с переключенным частотой Гауссовым Доплеровским спектром, шкала усиления их, и добавляем их вместе, чтобы получить модель канала Уоттерсона с bi-Gaussian Доплеровским спектром. Для простоты мы симулируем канал Уоттерсона только с одним касанием.
Переключенный частотой Гауссов Доплеровский спектр может рассматриваться как bi-Gaussian Доплеровский спектр, в котором только одна Гауссова функция присутствует (вторая, имеющая нулевое усиление степени). Следовательно, чтобы эмулировать переключенный частотой Гауссов Доплеровский спектр каждого магнитоионного компонента, мы создаем bi-Gaussian Доплеровскую структуру, таким образом, что одна из двух Гауссовых функций имеет заданный сдвиг частоты и стандартное отклонение, в то время как другой имеет нулевое усиление степени.
Первый магнитоионный компонент имеет Гауссов Доплеровский спектр со стандартным отклонением sGauss1
, сдвиг частоты fGauss1
, и степень получает gGauss1
. bi-Gaussian Доплеровская структура dopplerComp1
создается таким образом, что вторая Гауссова функция имеет нулевое усиление степени (его стандартное отклонение, и центральная частота следовательно не важны, и берут значения по умолчанию), в то время как первая Гауссова функция имеет нормированное стандартное отклонение sGauss1/fd
и нормированная частота переключает fGauss1/fd
, где коэффициент нормализации fd
максимальный эффект Доплера соответствующего канала. В этом примере, поскольку усиление второй Гауссовой функции является нулем, значение, присвоенное усилению первой Гауссовой функции, не важно (мы оставляем это ее значению по умолчанию 0,5), потому что связанный Системный объект канала создал, позже нормирует Доплеровский спектр, чтобы иметь общую силу 1.
Для получения дополнительной информации о том, как создать bi-Gaussian Доплеровскую структуру, смотрите doppler
.
fd = 10; % Chosen maximum Doppler shift for simulation sGauss1 = 2.0; fGauss1 = -5.0; dopplerComp1 = doppler('BiGaussian', ... 'NormalizedStandardDeviations', [sGauss1/fd 1/sqrt(2)], ... 'NormalizedCenterFrequencies', [fGauss1/fd 0], ... 'PowerGains', [0.5 0])
dopplerComp1 = struct with fields:
SpectrumType: 'BiGaussian'
NormalizedStandardDeviations: [0.2000 0.7071]
NormalizedCenterFrequencies: [-0.5000 0]
PowerGains: [0.5000 0]
Чтобы симулировать первый магнитоионный компонент, мы создаем одно путь Системный объект канала Рейли chanComp1
с переключенным частотой Гауссовым Доплеровским спектром, заданным Доплеровской структурой dopplerComp1
. Среднее усиление степени пути канала равняется 1 (0 дБ).
chanComp1 = comm.RayleighChannel( ... 'SampleRate', Rs, ... 'MaximumDopplerShift', fd, ... 'DopplerSpectrum', dopplerComp1, ... 'RandomStream', 'mt19937ar with seed', ... 'Seed', 99, ... 'PathGainsOutputPort', true)
chanComp1 = comm.RayleighChannel with properties: SampleRate: 9600 PathDelays: 0 AveragePathGains: 0 NormalizePathGains: true MaximumDopplerShift: 10 DopplerSpectrum: [1x1 struct] ChannelFiltering: true PathGainsOutputPort: true Show all properties
Точно так же второй магнитоионный компонент имеет Гауссов Доплеровский спектр со стандартным отклонением sGauss2
, сдвиг частоты fGauss2
, и степень получает gGauss2
. bi-Gaussian Доплеровская структура dopplerComp2
создается таким образом, что вторая Гауссова функция имеет нулевое усиление степени (его стандартное отклонение, и центральная частота следовательно не важны, и берут значения по умолчанию), в то время как первая Гауссова функция имеет нормированное стандартное отклонение sGauss2/fd
и нормированная частота переключает fGauss2/fd
(снова его усиление степени не важно).
sGauss2 = 1.0; fGauss2 = 4.0; dopplerComp2 = doppler('BiGaussian', ... 'NormalizedStandardDeviations', [sGauss2/fd 1/sqrt(2)], ... 'NormalizedCenterFrequencies', [fGauss2/fd 0], ... 'PowerGains', [0.5 0])
dopplerComp2 = struct with fields:
SpectrumType: 'BiGaussian'
NormalizedStandardDeviations: [0.1000 0.7071]
NormalizedCenterFrequencies: [0.4000 0]
PowerGains: [0.5000 0]
Чтобы симулировать второй магнитоионный компонент, мы создаем одно путь Системный объект канала Рейли chanComp2
с переключенным частотой Гауссовым Доплеровским спектром, заданным Доплеровской структурой dopplerComp2
.
chanComp2 = comm.RayleighChannel( ... 'SampleRate', Rs, ... 'MaximumDopplerShift', fd, ... 'DopplerSpectrum', dopplerComp2, ... 'RandomStream', 'mt19937ar with seed', ... 'Seed', 999, ... 'PathGainsOutputPort', true)
chanComp2 = comm.RayleighChannel with properties: SampleRate: 9600 PathDelays: 0 AveragePathGains: 0 NormalizePathGains: true MaximumDopplerShift: 10 DopplerSpectrum: [1x1 struct] ChannelFiltering: true PathGainsOutputPort: true Show all properties
Мы вычисляем в цикле ниже выхода к каналу Уоттерсона в ответ на входной сигнал и храним его в y
. В получении y
, вызов функции на chanComp1
эмулирует эффект первого магнитоионного компонента, в то время как вызов функции на chanComp2
эмулирует эффект второго компонента.
Получить желаемые усиления степени, gGauss1
и gGauss2
, из каждого магнитоионного компонента мы должны масштабировать выходной сигнал для каждого магнитоионного компонента их соответствующими амплитудными усилениями, sqrt(gGauss1)
и sqrt(gGauss2)
.
Из-за низких эффектов Доплера, найденных в средах HF и том, что bi-Gaussian Доплеровский спектр объединен от двух объектов, получив измерения для Доплеровского спектра с помощью встроенной визуализации Системных объектов, не является соответствующим. Вместо этого мы храним усиления сложного контура канала и позже вычисляем Доплеровский спектр для каждого пути в командной строке. В цикле ниже, усиления сложного контура канала получены путем подведения итогов (после того, как, масштабировавшись соответствующими амплитудными усилениями) усиления сложного контура, сопоставленные с каждым магнитоионным компонентом, и затем сохранили в g
.
gGauss1 = 1.2; % Power gain of first component gGauss2 = 0.25; % Power gain of second component Ns = 2e6; % Total number of channel samples frmLen = 1e3; % Number of samples per frame numFrm = Ns/frmLen; % Number of frames [y, g] = deal(zeros(Ns, 1)); for frmIdx = 1:numFrm x = qpskMod(randi([0 M-1], frmLen, 1)); [y1, g1] = chanComp1(x); [y2, g2] = chanComp2(x); y(frmLen*(frmIdx-1)+(1:frmLen)) = sqrt(gGauss1) * y1 ... + sqrt(gGauss2) * y2; g(frmLen*(frmIdx-1)+(1:frmLen)) = sqrt(gGauss1) * g1 ... + sqrt(gGauss2) * g2; end
Доплеровский спектр оценен от усилений сложного контура и построен.
hFig = figure; pwelch(g, hamming(Ns/100), [], [], Rs, 'centered'); axis([-0.1 0.1 -80 0]); legend('Simulation');
Теоретический bi-Gaussian Доплеровский спектр наложен к предполагаемому Доплеровскому спектру. Мы наблюдаем хорошую подгонку между обоими.
f = -(Rs/2):0.1:(Rs/2); Sd = gGauss1 * 1/sqrt(2*pi*sGauss1^2) * exp(-(f-fGauss1).^2/(2*sGauss1^2)) ... + gGauss2 * 1/sqrt(2*pi*sGauss2^2) * exp(-(f-fGauss2).^2/(2*sGauss2^2)); hold on; plot(f(Sd>0)/1e3, 10*log10(Sd(Sd>0)), 'k--'); legend('Simulation', 'Theory');
Рекомендация ITU-R F.1487 задает упрощенные модели канала, используемые в количественном тестировании модемов HF. Эти модели состоят из двух независимо исчезающих путей с равной степенью. На каждом пути два магнитоионных компонента приняты, чтобы иметь нулевой сдвиг частоты и равное отклонение: следовательно bi-Gaussian Доплеровский спектр на каждом касании уменьшает до одного Гауссова Доплеровского спектра, и конверт комплексного процесса исчезновения Рэлеевски распределяется.
Ниже, мы создаем объект канала согласно Низким Широтам, Модерируем Условия (LM) модель канала, заданная в Приложении 3 ITU-R F.1487, с помощью stdchan
функция. Задержки пути 0 и 2 мс. Распространение частоты, заданное как дважды стандартное отклонение Гауссова Доплеровского спектра, составляет 1,5 Гц. Гауссова Доплеровская структура спектра следовательно создается с нормированным стандартным отклонением (1.5/2) / fd
, где fd
1 Гц (введите help doppler
для получения дополнительной информации. При использовании stdchan
чтобы создать модели канала HF ITU-R, максимальный эффект Доплера должен быть установлен в 1 Гц: это гарантирует, что Гауссов Доплеровский спектр созданного канала имеет правильное стандартное отклонение.
close(hFig); fd = 1; chanLM = stdchan('iturHFLM', Rs, fd); chanLM.RandomStream = 'mt19937ar with seed'; chanLM.Seed = 9999; chanLM.PathGainsOutputPort = true; chanLM.Visualization = 'Impulse response'
chanLM = comm.RayleighChannel with properties: SampleRate: 9600 PathDelays: [0 0.0020] AveragePathGains: [0 0] NormalizePathGains: true MaximumDopplerShift: 1 DopplerSpectrum: [1x1 struct] ChannelFiltering: true PathGainsOutputPort: true Show all properties
Мы включили визуализацию импульсной характеристики в Системном объекте канала Рейли. Код ниже симулирует канал LM и визуализирует его bandlimited импульсную характеристику. По умолчанию ответы канала для одной из каждых четырех выборок визуализируются для более быстрой симуляции. Другими словами, для системы координат длины 1000, ответы для 1-го, 5-го, 9-го..., 997-е выборки показывают. Чтобы наблюдать ответ для каждой выборки, установите SamplesToDisplay
свойство chanLM
к '100%'
.
numFrm = 10; % Number of frames for frmIdx = 1:numFrm x = qpskMod(randi([0 M-1], frmLen, 1)); chanLM(x); end
Мы теперь включаем Доплеровскую визуализацию спектра для объекта канала наблюдать теоретические и эмпирические Гауссовы Доплеровские спектры для первого дискретного пути. Из-за очень низкого эффекта Доплера, это может требовать времени, чтобы иметь эмпирический спектр, сходятся к теоретическому спектру.
release(chanLM); chanLM.Visualization = 'Doppler spectrum'; frmLen = 2e6; % Number of samples per frame numFrm = 80; % Number of frames for frmIdx = 1:numFrm x = qpskMod(randi([0 M-1], frmLen, 1)); chanLM(x); end
1 - Рекомендация ITU-R F.1487, "Тестирование модемов HF с полосами пропускания приблизительно до 12 кГц с помощью ионосферных средств моделирования канала", 2000.
2 - К. К. Уоттерсон, Дж. Р. Джурошек и В. Д. Бенсема, "Экспериментальное подтверждение HF образовывает канал модель", IEEE® Trans. Commun. Технол, издание COM-18, № 6, декабрь 1970.