dsp. Channelizer

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

Описание

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

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

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

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

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

Создание

Синтаксис

channelizer = dsp.Channelizer
channelizer = dsp.Channelizer(M)
channelizer = dsp.Channelizer(Name,Value)

Описание

пример

channelizer = dsp.Channelizer создает многофазный аналитический Системный объект набора фильтров БПФ, который разделяет широкополосный входной сигнал на несколько узкополосных выходных сигналов. Этот объект реализует обратную операцию Системного объекта dsp.ChannelSynthesizer.

пример

channelizer = dsp.Channelizer(M) создает M - полоса многофазный аналитический набор фильтров БПФ, с набором свойств NumFrequencyBands к M.

Пример: channelizer = dsp. Формируйте каналы (16);

пример

channelizer = dsp.Channelizer(Name,Value) создает многофазный аналитический набор фильтров БПФ с каждым заданным набором свойств к заданному значению. Заключите каждое имя свойства в одинарные кавычки.

Пример: channelizer = dsp. Channelizer ('NumTapsPerBand', 20, 'StopbandAttenuation', 140);

Свойства

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

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Количество диапазонов частот, в которые объект разделяет входной широкополосный сигнал, заданный как положительное целое число, больше, чем 1. Это свойство соответствует количеству многофазных ответвлений и длины БПФ, используемой в наборе фильтров.

Пример: 16

Пример: 64

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

Отфильтруйте параметры проекта или отфильтруйте коэффициенты, заданные как одна из этих опций:

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

Пример 8

Пример: 16

Зависимости

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

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

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

Пример: 80

Зависимости

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

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

Коэффициенты прототипа lowpass фильтр, заданный как вектор - строка. Должен быть по крайней мере один коэффициент на диапазон частот. Если длина фильтра lowpass является меньше, чем количество диапазонов частот, объектные нулевые клавиатуры коэффициенты.

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

Зависимости

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

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

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

Синтаксис

channOut = channelizer(input)

Описание

пример

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

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

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

Ввод данных, заданный как вектор или матрица. Количество строк во входном сигнале должно быть кратным количеству диапазонов частот набора фильтров. Каждый столбец входа соответствует отдельному каналу. Если M является количеством диапазонов частот, и входом является L-by-1 матрица, то выходной сигнал имеет размерности L/M-by-M. Каждый узкополосный сигнал формирует столбец в выводе. Если вход имеет больше чем один канал, то есть, это имеет размерности L-by-N с N> 1, то вывод имеет размерности L/M-by-M-by-N.

Этот переменный размер поддержки объектов входные сигналы. Можно изменить входной формат кадра (количество строк) даже после вызова алгоритма. Однако количество каналов (количество столбцов) должно остаться постоянным.

Пример: randn (64,4)

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

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

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

Channelizer выходной параметр, возвращенный как матрица или трехмерный массив. Если входом является L-by-1 матрица, то выходной сигнал имеет размерности L/M-by-M, где M является количеством диапазонов частот. Каждый узкополосный сигнал формирует столбец в выводе. Если вход имеет больше чем один канал, то есть, это имеет размерности L-by-N с N> 1, то вывод имеет размерности L/M-by-M-by-N.

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

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

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

release(obj)

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

coeffsКоэффициенты прототипа lowpass фильтр
tfВозвратите передаточную функцию полного прототипа lowpass фильтр
polyphaseВозвратите многофазную матрицу
freqzЧастотная характеристика просачивается channelizer
fvtoolВизуализируйте фильтры в channelizer
bandedgeFrequenciesВычислите bandedge частоты
centerFrequenciesВычислите центральные частоты
getFiltersВозвратите матрицу channelizer КИХ-фильтров
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

Больше о

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

Алгоритмы

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

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

Введенный в R2017b