dsp.Channelizer

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

Описание

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

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

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

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

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

Создание

Описание

пример

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

Больше о

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

Алгоритмы

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

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

Введенный в R2017b