dsp. ChannelSynthesizer

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

Описание

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

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

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

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

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

Создание

Синтаксис

synthesizer = dsp.ChannelSynthesizer
synthesizer = dsp.ChannelSynthesizer(Name,Value)

Описание

пример

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)

Описание

пример

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.ChannelSynthesizer и dsp.Channelizer. Каждый объект настраивается с 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