Характеристическая информация о затухающем объекте канала
возвращает структуру, содержащую характеристическую информацию о замирающем канале System object™.infostruct
= info(obj
)
Используйте info
функция объекта для получения информации от comm.RayleighChannel
объект.
Создайте объект канала Релея и некоторые данные, чтобы пройти через канал.
rayleighchan = comm.RayleighChannel('SampleRate',1000,'PathDelays',[0 0],'AveragePathGains',[0 0])
rayleighchan = comm.RayleighChannel with properties: SampleRate: 1000 PathDelays: [0 0] AveragePathGains: [0 0] NormalizePathGains: true MaximumDopplerShift: 1.0000e-03 DopplerSpectrum: [1x1 struct] Show all properties
data = randi([0 1],600,1);
Проверьте информацию об объекте канала Релея.
info(rayleighchan)
ans = struct with fields:
ChannelFilterDelay: 0
ChannelFilterCoefficients: [2x1 double]
NumSamplesProcessed: 0
Передайте данные через канал и снова проверьте информацию об объекте.
rayleighchan(data); info(rayleighchan)
ans = struct with fields:
ChannelFilterDelay: 0
ChannelFilterCoefficients: [2x1 double]
NumSamplesProcessed: 600
Отпустите объект, чтобы можно было обновлять атрибуты. Добавьте задержку 1.5e-3 второго пути ко второму пути задержки.
release(rayleighchan) rayleighchan.PathDelays = [0 1.5e-3]
rayleighchan = comm.RayleighChannel with properties: SampleRate: 1000 PathDelays: [0 0.0015] AveragePathGains: [0 0] NormalizePathGains: true MaximumDopplerShift: 1.0000e-03 DopplerSpectrum: [1x1 struct] Show all properties
Передайте данные через канал и снова проверьте информацию об объекте.
rayleighchan(data); info(rayleighchan)
ans = struct with fields:
ChannelFilterDelay: 6
ChannelFilterCoefficients: [2x16 double]
NumSamplesProcessed: 600
Используйте info
функция объекта для получения информации от comm.RicianChannel
объект.
Создайте объект канала Райса и некоторые данные, чтобы пройти через канал.
ricianchan = comm.RicianChannel('SampleRate',500)
ricianchan = comm.RicianChannel with properties: SampleRate: 500 PathDelays: 0 AveragePathGains: 0 NormalizePathGains: true KFactor: 3 DirectPathDopplerShift: 0 DirectPathInitialPhase: 0 MaximumDopplerShift: 1.0000e-03 DopplerSpectrum: [1x1 struct] Show all properties
data = randi([0 1],600,1);
Проверьте информацию об объекте канала Райса.
info(ricianchan)
ans = struct with fields:
ChannelFilterDelay: 0
ChannelFilterCoefficients: 1
NumSamplesProcessed: 0
Передайте данные через канал и снова проверьте информацию об объекте.
ricianchan(data); info(ricianchan)
ans = struct with fields:
ChannelFilterDelay: 0
ChannelFilterCoefficients: 1
NumSamplesProcessed: 600
Отпустите объект, чтобы можно было обновлять атрибуты. Добавьте вторую задержку пути с задержкой 3,1e-3 секунды и средним коэффициентом усиления пути -3 дБ.
release(ricianchan) ricianchan.PathDelays = [0 3.1e-3]; ricianchan.AveragePathGains = [0 -3]
ricianchan = comm.RicianChannel with properties: SampleRate: 500 PathDelays: [0 0.0031] AveragePathGains: [0 -3] NormalizePathGains: true KFactor: 3 DirectPathDopplerShift: 0 DirectPathInitialPhase: 0 MaximumDopplerShift: 1.0000e-03 DopplerSpectrum: [1x1 struct] Show all properties
Передайте данные через канал и снова проверьте информацию об объекте.
ricianchan(data); info(ricianchan)
ans = struct with fields:
ChannelFilterDelay: 6
ChannelFilterCoefficients: [2x16 double]
NumSamplesProcessed: 600
Используйте 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
Отпустите объект, чтобы можно было обновлять атрибуты. Добавление 2.5e-3
задержка второго пути. Перепроверите информацию об объекте.
release(mimo) mimo.PathDelays = 2.5e-3; info(mimo)
ans = struct with fields:
ChannelFilterDelay: 5
ChannelFilterCoefficients: [1x16 double]
NumSamplesProcessed: 0
Создайте объект канала MIMO и передайте данные через него с помощью метода суммы синусоидов. Пример демонстрирует, как состояние канала поддерживается в случаях, когда данные прерывисто передаются.
Определите общее время симуляции и три временных сегмента, для которых будут переданы данные. В этом случае канал моделируется в течение 1 с со частотой дискретизации 1000 Гц. Одна непрерывная последовательность данных с 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
. Данные передаются за все 1000 временных выборок. В данном примере требуется только комплексное усиление пути.
[~,pg0] = mimoChan1(d0);
Передайте случайные данные через объект второго канала, mimoChan2
, где начальные смещения времени предусмотрены в качестве входных параметров.
[~,pg1] = mimoChan2(d1,0.1); [~,pg2] = mimoChan2(d2,0.4); [~,pg3] = mimoChan2(d3,0.7);
Сравните количество выборок, обработанных двумя каналами с помощью info
способ. Можно увидеть, что 1000 выборки были обработаны 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)));
Постройте график коэффициентов усиления пути для непрерывных и прерывистых случаев. Обратите внимание, что усиления для трех сегментов идеально соответствуют усилению для непрерывного случая. Выравнивание двух подсвечивает, что метод суммирования синусоидов идеально подходит для симуляции пакетированных данных, когда характеристики канала поддерживаются, даже когда данные не передаются.
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
- Системный объект для получения информации отСистемный объект, из которого нужно получить информацию, заданную как comm.MIMOChannel
, comm.RayleighChannel
, или comm.RicianChannel
Системный объект.
infostruct
- Структура, содержащая информацию об объектеСтруктура, содержащая эти поля с информацией об системном объекте.
ChannelFilterDelay
- Задержка фильтра каналаЗадержка фильтра канала в выборках, возвращенная как положительное целое число.
ChannelFilterCoefficients
- Коэффициенты канального фильтраКоэффициенты фильтра канала, возвращенные как матрица. Матрица коэффициентов используется, чтобы преобразовать усиления пути в усиления отвода фильтра канала для каждой выборки и каждой пары передающих и приемных антенн.
NumSamplesProcessed
- Количество выборок, обработанных объектом каналаКоличество выборок, обработанных объектом канала с момента последнего сброса, возвращенное в виде положительного целого числа.
LastFrameTime
- Время окончания последней системы координатПоследняя система координат время окончания в секундах, возвращается как положительная скалярная величина. Используйте это значение для подтверждения времени симуляции.
Это свойство применяется, когда FadingTechnique
свойство 'Sum of sinusoids'
и InitialTimeSource
свойство 'Input port'
.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.