comm.ChannelFilter

Отфильтруйте сигнал с помощью многопутевых усилений в заданных задержках пути

Описание

Используйте comm.ChannelFilter Система object™, чтобы отфильтровать сигнал с помощью многопутевых усилений в заданных задержках пути.

Отфильтровать сигнал с помощью многопутевых усилений:

  1. Создайте comm.ChannelFilter объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.

Создание

Описание

пример

chanFilt = comm.ChannelFilter создает многопутевой Системный объект фильтра канала, чтобы отфильтровать входной сигнал с усилениями пути в заданных задержках пути

chanFilt = comm.ChannelFilter(Name,Value) свойства наборов с помощью одной или нескольких пар "имя-значение". Например, 'SampleRate',1e6 устанавливает частоту дискретизации на 1 МГц. Заключите каждое имя свойства в кавычки.

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Частота дискретизации входного сигнала в виде действительного, положительной скалярной величины.

Типы данных: double

Задержки дискретных путей в секундах в виде действительного скаляра или вектора.

Типы данных: double

Фильтр канала задерживает источник в виде любого 'Auto' или 'Custom'.

  • Установите FilterDelaySource к 'Auto' чтобы задать канал фильтруют задержку как минимальное возможное значение.

  • Установите FilterDelaySource к 'Custom' чтобы задать канал фильтруют задержку как пользовательское значение. Пользовательское значение не может быть меньшим, чем минимальное возможное значение.

Типы данных: char

Фильтр канала задерживается в выборках в виде действительного, неотрицательного, целочисленного скаляра.

Зависимости

Чтобы включить это свойство, установите FilterDelaySource свойство к 'Custom'. Заданное значение должно быть не меньшим, чем автоматически решительная задержка фильтра канала, когда вы устанавливаете FilterDelaySource к 'Auto'.

Типы данных: double

Нормируйте выходные параметры на количество, получают антенны в виде любого 'true'(1 ) или 'false'(0 ).

Типы данных: логический

Использование

Синтаксис

Описание

y = chanFilt(x,g) входной сигнал фильтров x, через многопутевой канал с путем получает g, в пути задерживают местоположения, заданные свойством PathDelays.

Входные параметры

развернуть все

Входной сигнал в виде матрицы. Аргумент x должен быть N s-by-Nt матрица, где N s является количеством выборок, и N t является количеством антенн передачи.

Типы данных: double
Поддержка комплексного числа: Да

Усиление пути в виде массива. Входом G должен быть N s Np Nt Nr или 1 Np Nt Nr массивом, где N r является количеством, получают антенны, и N p является количеством путей, i.e., длина свойства PathDelays.

Типы данных: double
Поддержка комплексного числа: Да

Выходные аргументы

развернуть все

Канал выходной параметр, возвращенный как N s-by-Nr матрица.

Типы данных: double
Поддержка комплексного числа: Да

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

infoВозвратите характеристическую информацию о фильтре канала
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

В распределенной системе MIMO отправьте тот же сигнал от двух географически отдельных передатчиков (Tx) и объедините полученные сигналы в одном одном приемнике (Rx), чтобы исследовать пространственное разнообразие. Два Txs не совмещены, и они испытывают отличающийся многопутевой (задержки пути) к Rx. Задайте задержки пути соответственно.

delay1 = [0 1.5 2.3 5.2 6.6];
delay2 = [0 3.7 6.2];

Сконфигурируйте один объект фильтра канала на Tx.

chanFilt1 = comm.ChannelFilter('PathDelays', delay1);
chanFilt2 = comm.ChannelFilter('PathDelays', delay2);

Два фильтра канала получают различные задержки фильтра.

fd1 = chanFilt1.info.ChannelFilterDelay
fd1 = 6
fd2 = chanFilt2.info.ChannelFilterDelay
fd2 = 4

Для того, чтобы объединиться, два образовывают канал выходные параметры в Rx, два фильтра канала должны иметь ту же задержку фильтра. Настройте задержку фильтра каждого объекта.

set(chanFilt1, ...
    "FilterDelaySource", 'Custom', ...
    "FilterDelay", max(fd1, fd2));
set(chanFilt2, ...
    "FilterDelaySource", 'Custom', ...
    "FilterDelay", max(fd1, fd2));

Настройте системные параметры. Это принято одна антенна в каждом Tx и Rx.

[Nt, Nr] = deal(1);
Ns  = 30720;
Np1 = length(chanFilt1.PathDelays);
Np2 = length(chanFilt2.PathDelays);
M   = 64;

Сгенерируйте случайный 64-QAM путь прохождения сигнала и усиления сложного контура для двух каналов.

x  = qammod(randi([0, M-1], Ns, Nt), M);
g1 = complex(rand(Ns, Np1, Nt, Nr), rand(Ns, Np1, Nt, Nr));
g2 = complex(rand(Ns, Np2, Nt, Nr), rand(Ns, Np2, Nt, Nr));

Выполните фильтрацию канала и объединение Rx. Объединенное 2x1 канал MIMO имеет задержку фильтра макс. (fd1, fd2).

y = chanFilt1(x, g1) + chanFilt2(x, g2);

Создайте объект фильтра канала с LTE, Расширенным Автомобильный модель (EVA) профиль задержки.

chanFilt = comm.ChannelFilter( ...
    'SampleRate', 30.72e6, ...
    'PathDelays', [0 30 150 310 370 710 1090 1730 2510]*1e-9);

Настройте системные параметры. Существуют два, передают и получают антенны.

[Nt, Nr] = deal(2);
Ns = 30720;
Np = length(chanFilt.PathDelays);
M  = 256;

Сгенерируйте случайный 256-QAM путь прохождения сигнала и усиления сложного контура.

x = qammod(randi([0, M-1], Ns, Nt), M);
g = complex(rand(Ns, Np, Nt, Nr), rand(Ns, Np, Nt, Nr));

Отфильтруйте сигнал с усилениями пути для профиля задержки EVA.

y = chanFilt(x, g);

Алгоритмы

Фильтр канала реализует полосовой фильтр конечной импульсной характеристики (FIR) дробной задержки (FD) с длиной 16 коэффициентов для каждого кандидата дробная задержка в 0, 0.02, 0.04, …, 0.98.

Каждый дискретный путь округлен его самому близкому кандидату дробная задержка, таким образом, предел погрешности задержки составляет 1% шага расчета. Чтобы достигнуть пропускной способности групповой задержки чрезмерные 80% и пропускной способности величины чрезмерные 90%, алгоритм выбирает оптимальные КИХ-содействующие значения для каждой дробной задержки при удовлетворении следующим критериям:

  • Пульсация групповой задержки ≤ 10%

  • Пульсация величины ≤ 2 дБ

  • Величина bandedge затухание = 3 дБ

Графики показывают пропускную способность, которая удовлетворяет критериям расчета для пульсации групповой задержки, пульсации величины и величины bandedge затухание.

Для получения дополнительной информации см. статью основанный на MATLAB Объектно-ориентированный подход для Многопутевой Исчезающей Симуляции Канала в MATLAB® Central.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2020b