Характеристическая информация об исчезающем объекте канала
возвращает структуру, содержащую характеристическую информацию об исчезающей Системе канала 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] ChannelFiltering: true PathGainsOutputPort: false 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] ChannelFiltering: true PathGainsOutputPort: false Show all properties
Передайте данные через канал и проверяйте информацию об объекте снова.
rayleighchan(data); info(rayleighchan)
ans = struct with fields:
ChannelFilterDelay: 6
ChannelFilterCoefficients: [2x16 double]
NumSamplesProcessed: 600
Используйте info
возразите функции, чтобы получить информацию от comm.RicianChannel
объект.
Создайте объект канала Rician и некоторые данные, чтобы пройти через канал.
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] ChannelFiltering: true PathGainsOutputPort: false Show all properties
data = randi([0 1],600,1);
Проверяйте информацию об объекте канала Rician.
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] ChannelFiltering: true PathGainsOutputPort: false 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: [-0.0326 0.0403 -0.0504 0.0646 -0.0861 ... ]
NumSamplesProcessed: 0
Покажите, что состояние канала обеспечено для прерывистых передач при помощи Системных объектов канала MIMO, сконфигурированных, чтобы использовать сумму синусоид, исчезающую метод. Наблюдайте прерывистые сегменты ответа канала, наложенные относительно непрерывного ответа канала.
Установите свойства канала.
fs = 1000; % Sample rate (Hz) pathDelays = [0 2.5e-3]; % Path delays (s) pathPower = [0 -6]; % Path power (dB) fD = 5; % Maximum Doppler shift (Hz) ns = 1000; % Number of samples nsdel = 100; % Number of samples for delayed paths
Задайте непрерывный отрезок времени и три прерывистых сегмента времени, по которым можно построить и просмотреть ответ канала. Просмотрите непрерывный ответ канала с 1000 выборками, запускающийся во время 0 и три ответа канала с 100 выборками, запускающиеся время от времени 0.1, 0.4, и 0,7 секунды, соответственно.
to0 = 0.0; to1 = 0.1; to2 = 0.4; to3 = 0.7; t0 = (to0:ns-1)/fs; % Transmission 0 t1 = to1+(0:nsdel-1)/fs; % Transmission 1 t2 = to2+(0:nsdel-1)/fs; % Transmission 2 t3 = to3+(0:nsdel-1)/fs; % Transmission 3
Создайте плоско исчезающий Системный объект канала MIMO 2 на 2, отключив фильтрацию канала и определение частоты дискретизации на 1 000 Гц, сумма синусоид, исчезающая метод и количество отсчетов, чтобы просмотреть. Задайте начальное значение так, чтобы результаты могли быть повторены. Используйте InitialTime
по умолчанию установка свойства так, чтобы исчезающий канал был симулирован со времени 0.
mimoChan1 = comm.MIMOChannel('SampleRate',fs, ... 'MaximumDopplerShift',fD, ... 'RandomStream','mt19937ar with seed', ... 'Seed',17, ... 'FadingTechnique','Sum of sinusoids', ... 'ChannelFiltering',false, ... 'NumSamples',ns);
Создайте клон Системного объекта канала MIMO. Измените количество отсчетов для задержанных путей и источник в течение начального времени так, чтобы можно было задать исчезающее время смещения канала как входной параметр при вызове Системного объекта.
mimoChan2 = clone(mimoChan1);
mimoChan2.InitialTimeSource = 'Input port';
mimoChan2.NumSamples = nsdel;
Сохраните усиление пути выход для непрерывного ответа канала при помощи mimoChan1
возразите и для прерывистых задержанных ответов канала при помощи mimoChan2
объект с начальными смещениями времени, обеспеченными как входные параметры.
pg0 = mimoChan1(); pg1 = mimoChan2(to1); pg2 = mimoChan2(to2); pg3 = mimoChan2(to3);
Сравните количество отсчетов, обработанное двумя каналами при помощи info
метод. Результаты показывают тот mimoChan1
обработанный 1 000 выборок и тот mimoChan2
обработанный только 300 выборок.
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 title('Continuous and Discontinuous Channel Response') 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.