Характеристическая информация об исчезающем объекте канала
возвращает структуру, содержащую характеристическую информацию для Системы object™. infostruct
= info(obj
)
Используйте info
возразите функции, чтобы получить информацию от comm.MIMOChannel
объект.
Создайте объект канала MIMO и некоторые данные, чтобы пройти через канал.
mimo = comm.MIMOChannel('SampleRate',1000);
data = randi([0 1],600,2);
Проверяйте информацию об объекте канала MIMO
info(mimo)
ans = struct with fields:
ChannelFilterDelay: 0
ChannelFilterCoefficients: 1
NumSamplesProcessed: 0
Передайте данные через канал и проверяйте информацию об объекте снова.
mimo(data); info(mimo)
ans = struct with fields:
ChannelFilterDelay: 0
ChannelFilterCoefficients: 1
NumSamplesProcessed: 600
Выпустите объект, таким образом, можно обновить атрибуты. Добавьте двухсекундную задержку пути. Перепроверьте информацию об объекте.
release(mimo) mimo.PathDelays = 2; info(mimo)
ans = struct with fields:
ChannelFilterDelay: 0
ChannelFilterCoefficients: [1x2001 double]
NumSamplesProcessed: 0
Создайте объект канала MIMO и передайте данные через них с помощью метода суммы синусоид. Пример демонстрирует, как состояние канала обеспечено в случаях, в которых с перерывами передаются данные.
Задайте полное время симуляции и в три раза сегменты, для которых будут переданы данные. В этом случае канал симулирован в течение 1 с с 1 000 Гц, производящими уровень. Одна последовательность текущих данных с 1000 выборками передается во время 0. Три пакета с 100 выборочными данными передаются во время 0,1 с, 0,4 с и 0,7 с.
t0 = 0:0.001:0.999; % Transmission 0 t1 = 0.1:0.001:0.199; % Transmission 1 t2 = 0.4:0.001:0.499; % Transmission 2 t3 = 0.7:0.001:0.799; % Transmission 3
Сгенерируйте случайные двоичные данные, соответствующие ранее заданным временным интервалам.
d0 = randi([0 1],1000,2); % 1000 samples d1 = randi([0 1],100,2); % 100 samples d2 = randi([0 1],100,2); % 100 samples d3 = randi([0 1],100,2); % 100 samples
Создайте плоское исчезновение 2x2 Системный объект канала MIMO с Sum of sinusoids
исчезающий метод. Таким образом, это заканчивается, может быть повторен, задать seed с помощью пары "имя-значение". Как InitialTime
свойство не задано, исчезающий канал будет симулирован со времени 0. Включите выходной порт усилений пути.
mimoChan1 = comm.MIMOChannel('SampleRate',1000, ... 'MaximumDopplerShift',5, ... 'RandomStream','mt19937ar with seed', ... 'Seed',17, ... 'FadingTechnique','Sum of sinusoids', ... 'PathGainsOutputPort',true);
Создайте клон Системного объекта канала MIMO. Установите InitialTimeSource
свойство к Input port
так, чтобы исчезающее время смещения канала могло быть задано как входной параметр к mimoChan
функция.
mimoChan2 = clone(mimoChan1);
mimoChan2.InitialTimeSource = 'Input port';
Передайте случайные двоичные данные через первый объект канала, mimoChan1
. Данные передаются за все 1 000 раз выборки. В данном примере только усиление сложного контура необходимо.
[~,pg0] = mimoChan1(d0);
Передайте случайные данные через второй объект канала, mimoChan2
, где начальные смещения времени обеспечиваются как входные параметры.
[~,pg1] = mimoChan2(d1,0.1); [~,pg2] = mimoChan2(d2,0.4); [~,pg3] = mimoChan2(d3,0.7);
Сравните количество выборок, обработанных двумя каналами с помощью info
метод. Вы видите, что 1 000 выборок были обработаны mimoChan1
в то время как только 300 были обработаны mimoChan2
.
G = info(mimoChan1); H = info(mimoChan2); [G.NumSamplesProcessed H.NumSamplesProcessed]
ans = 1×2
1000 300
Преобразуйте усиления пути в децибелы для пути, соответствующего первой передаче, и сначала получите антенну.
pathGain0 = 20*log10(abs(pg0(:,1,1,1))); pathGain1 = 20*log10(abs(pg1(:,1,1,1))); pathGain2 = 20*log10(abs(pg2(:,1,1,1))); pathGain3 = 20*log10(abs(pg3(:,1,1,1)));
Постройте усиления пути для непрерывных и прерывистых случаев. Заметьте, что усиления для этих трех сегментов отлично совпадают с усилением для непрерывного случая. Выравнивание двух подсветок, что метод суммы синусоид идеально подходит для симуляции packetized данных как характеристики канала, обеспечено, даже когда данные не передаются.
plot(t0,pathGain0,'r--') hold on plot(t1,pathGain1,'b') plot(t2,pathGain2,'b') plot(t3,pathGain3,'b') grid xlabel('Time (sec)') ylabel('Path Gain (dB)') legend('Continuous','Discontinuous','location','nw')
obj
— Системный объект, чтобы получить информацию отСистемный объект, чтобы получить информацию от.
infostruct
— Структура, содержащая информацию об объектеСтруктура, содержащая эти поля с информацией о Системном объекте.
ChannelFilterDelay
— Задержка фильтра каналаФильтр канала задерживается в выборках, возвращенных как положительное целое число.
ChannelFilterCoefficients
— Коэффициенты фильтра каналаКоэффициенты фильтра канала, возвращенные как матрица. Матрица коэффициентов используется, чтобы преобразовать усиления пути, чтобы образовать канал усиления касания фильтра для каждой выборки и каждой пары передачи и получить антенны.
NumSamplesProcessed
— Количество выборок обрабатывается объектом каналаКоличество выборок обрабатывается объектом канала начиная с последнего сброса, возвращенного как положительное целое число.
LastFrameTime
— В последний раз структурируйте время окончанияВ последний раз структурируйте время окончания в секундах, возвращенных как положительная скалярная величина. Используйте это значение, чтобы подтвердить время симуляции.
Это свойство применяется, когда FadingTechnique является 'Sum of sinusoids'
и InitialTimeSource является 'Input port'
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.