exponenta event banner

dsp. ChannelSynthesizer

Набор фильтров синтеза многофазного БПФ

Описание

dsp.ChannelSynthesizer Система object™ объединяет множество узкополосных сигналов в широкополосный сигнал, используя банк фильтров синтеза на основе БПФ. Набор фильтров использует прототип фильтра нижних частот и реализован с использованием многофазной структуры. Коэффициенты фильтра можно задать непосредственно или через параметры конструкции.

Для объединения нескольких узкополосных сигналов в широкополосный сигнал:

  1. Создать dsp.ChannelSynthesizer и задайте его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

пример

synthesizer = dsp.ChannelSynthesizer создает объект синтезатора с использованием свойств по умолчанию.

synthesizer = dsp.ChannelSynthesizer(Name,Value) задает дополнительные свойства с помощью Name,Value пар. Неопределенные свойства имеют значения по умолчанию.

Пример: synthesizer = dsp.ChannelSynthesizer('NumTapsPerBand',20,'StopbandAttenuation',140)

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

Параметры конструкции фильтра или коэффициенты фильтра, указанные как один из следующих вариантов:

  • 'Number of taps per band and stopband attenuation' - Укажите расчетные параметры фильтра через NumTapsPerBand и StopbandAttenuation свойства.

  • 'Coefficients' - Укажите коэффициенты фильтра непосредственно с помощью LowpassCoefficients.

Число коэффициентов фильтра, используемых каждой многофазной ветвью, указанное как положительное целое число. Количество многофазных ветвей соответствует числу полос частот. Общее количество коэффициентов фильтра для прототипа фильтра нижних частот задается произведением числа полос частот и NumTapsPerBand. При данном затухании полосы останова увеличение числа отводов на полосу сужает ширину перехода фильтра. В результате, существует более полезная полоса пропускания для каждой полосы частот за счет увеличенных вычислений.

Зависимости

Это свойство применяется при установке Specification кому 'Number of taps per band and stopband attenuation'.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Затухание полосы останова фильтра нижних частот, определяемое как положительный действительный скаляр в дБ. Это значение управляет максимальным количеством псевдонимов из одной полосы частот в следующую. Больше - затухание полосы останова, меньше - пульсация полосы пропускания.

Зависимости

Это свойство применяется при установке Specification кому 'Number of taps per band and stopband attenuation'.

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

Коэффициенты фильтра нижних частот прототипа, заданные как вектор строки. Вектор коэффициентов по умолчанию получается с помощью rcosdesign(0.25,6,8,'sqrt'). На полосу частот должен быть по крайней мере один коэффициент. Если длина фильтра нижних частот меньше, чем количество полос частот, то объект нуль-заполняет коэффициенты.

При указании комплексных коэффициентов объект проектирует фильтр прототипа, центрированный с ненулевой частотой, также называемый полосовым фильтром. Модулированные варианты полосового фильтра прототипа появляются относительно фильтра прототипа и оборачиваются вокруг частотного диапазона [− Fs Fs].

Настраиваемый: Да

Зависимости

Это свойство применяется при установке Specification кому 'Coefficients'.

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

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

Описание

пример

synthOut = synthesizer(input) объединяет узкополосные входные сигналы, содержащиеся в виде столбцов в input в широкополосный сигнал, synthOut.

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

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

Узкополосные сигналы, определяемые как матрица или 3-D массив. Каждый узкополосный сигнал сохраняется в виде столбца во входном сигнале. Количество столбцов в input соответствует количеству полос частот банка фильтров. Если input является трехмерной, каждая матрица соответствует отдельному каналу. Если M - количество полос частот, и input является матрицей L-by-M, то выходной сигнал, synthOut, имеет размеры L × M-by-1. Еслиinput имеет более одного канала, то есть имеет размеры L-by-M-by-N, то synthOut имеет размеры L × M-by-N.

Этот объект также принимает входные данные переменного размера. То есть, как только объект заблокирован, можно изменить размер каждого входного канала. Количество каналов не может изменяться.

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

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

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

Объединенный широкополосный сигнал, возвращаемый в виде матрицы или массива 3-D. Если M - количество полос частот, и input является матрицей L-by-M, то выходной сигнал, synthOut, имеет размеры L × M-by-1. Еслиinput имеет более одного канала, то есть имеет размеры L-by-M-by-N, то synthOut имеет размеры L × M-by-N.

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

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

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

release(obj)

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

coeffsКоэффициенты прототипа фильтра нижних частот
tfФункция обратного переноса всего прототипа фильтра нижних частот
polyphaseВозвращаемая многофазная матрица
stepЗапустить алгоритм объекта System
releaseДеблокирование ресурсов и разрешение изменений значений свойств объекта системы и входных признаков
resetСброс внутренних состояний объекта System

Примеры

свернуть все

Квадратурный зеркальный набор фильтров (QMF) содержит блок набора фильтров анализа и блок набора фильтров синтеза. dsp.Channelizer реализует банк фильтров анализа. dsp.ChannelSynthesizer реализует набор фильтров синтеза, используя эффективную многофазную реализацию на основе прототипа фильтра нижних частот.

Инициализация

Инициализируйте dsp.Channelizer и dsp.ChannelSynthesizer Системные объекты. Каждый объект настроен с 8 полосами частот, 8 многофазными ветвями в каждом фильтре, 12 коэффициентами на многофазную ветвь и затуханием стоп-полосы 140 дБ. В качестве входного сигнала используйте синусоидальную волну с несколькими частотами. Просмотрите входной спектр и выходной спектр с помощью анализатора спектра.

offsets = [-40,-30,-20,10,15,25,35,-15];
sinewave = dsp.SineWave('ComplexOutput',true,'Frequency',...
    offsets+(-375:125:500),'SamplesPerFrame',800);

channelizer = dsp.Channelizer('StopbandAttenuation',140);
synthesizer = dsp.ChannelSynthesizer('StopbandAttenuation',140);
spectrumAnalyzer =  dsp.SpectrumAnalyzer('ShowLegend',true,'NumInputPorts',...
    2,'ChannelNames',{'Input','Output'},'Title','Input and Output of QMF');

Вытекание

Используйте каналообразователь для разделения широкополосного входного сигнала на несколько узких диапазонов. Затем передают множество узкополосных сигналов в синтезатор, который объединяет эти сигналы для формирования широкополосного сигнала. Сравните спектры входного и выходного сигналов. Входные и выходные спектры очень близко совпадают.

for i = 1:5000
    x = sum(sinewave(),2);
    y = channelizer(x);
    v = synthesizer(y);
    spectrumAnalyzer(x,v)
end

Подробнее

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

Алгоритмы

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

Ссылки

[1] Харрис, Фредрик Джей, многоскоростная обработка сигналов для систем связи, Prentice Hall PTR, 2004.

[2] Харрис, Ф.Дж., Крис Дик, Майкл Райс. «Цифровые приемники и передатчики, использующие банки многофазных фильтров для беспроводной связи». IEEE Транзакции по микроволновой теории и методам. Том 51, номер 4, апрель 2003 года.

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

.
Представлен в R2016b