dsp.ChannelSynthesizer

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

Описание

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 меньше количества диапазонов частот, объектные нулевые клавиатуры коэффициенты.

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

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

Зависимости

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

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

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

Описание

пример

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

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

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

Узкополосные сигналы в виде матрицы или трехмерного массива. Каждый узкополосный сигнал хранится как столбец во входном сигнале. Количество столбцов в input соответствует количеству диапазонов частот набора фильтров. Если input 3D, каждая матрица соответствует отдельному каналу. Если 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] Харрис, Фредерик Дж, многоскоростная обработка сигналов для систем связи, PTR Prentice Hall, 2004.

[2] Харрис, F.J., Крис Дик, Майкл Райс. "Цифровые Приемники и Передатчики Используя Многофазные Наборы фильтров для Радиосвязей". Транзакции IEEE на микроволновой теории и методах. Издание 51, Номер 4, апрель 2003.

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

Введенный в R2017b