dsp.ChannelSynthesizer

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

Описание

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

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

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

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

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

Создание

Описание

пример

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

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

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

Свойства

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

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (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, заданный как вектор-строка. Должен быть по крайней мере один коэффициент на диапазон частот. Если длина фильтра lowpass меньше количества диапазонов частот, объектные нулевые клавиатуры коэффициенты.

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

Зависимости

Это свойство применяется, когда вы устанавливаете 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