dsp.ChannelSynthesizer

Полифазный блок фильтров синтеза БПФ

Описание

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

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

  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.

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

Зависимости

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

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

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

Описание

пример

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

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

расширить все

Узкополосные сигналы, заданные как матрица или трехмерный массив. Каждый узкополосный сигнал запоминается как столбец в входном сигнале. Количество столбцов в 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
Поддержка комплексного числа: Да

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

расширить все

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

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

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

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

release(obj)

расширить все

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

Примеры

свернуть все

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

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

Инициализируйте 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');

Вытекание

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

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

Подробнее о

расширить все

Алгоритмы

расширить все

Ссылки

[1] Harris, Fredic J, Multirate Signal Processing for Communication Systems, Prentice Hall PTR, 2004.

[2] Харрис, F.J., Крис Дик, Майкл Райс. «Цифровые приемники и передатчики, использующие Polyphase Filter Banks для беспроводной связи». Транзакции IEEE по теории и методам СВЧ. Том 51, № 4, апрель 2003 года.

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

.
Введенный в R2016b