dsp.ComplexBandpassDecimator

Извлеките поддиапазон частоты с помощью односторонней (комплексной) полосы пропускания decimator

Описание

dsp.ComplexBandpassDecimator Система object™ извлекает определенный поддиапазон частот с помощью односторонней, многоступенчатой, комплексной полосы пропускания decimator. Объект определяет полосу пропускания интереса с помощью заданного CenterFrequency, DecimationFactor и Bandwidth значения.

Извлекать поддиапазон частоты с помощью комплексной полосы пропускания decimator:

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

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

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

Создание

Описание

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

пример

bpdecim = dsp.ComplexBandpassDecimator(d) создает комплексную полосу пропускания decimator объект с DecimationFactor набор свойств к d.

пример

bpdecim = dsp.ComplexBandpassDecimator(d,Fc) создает комплексную полосу пропускания decimator объект с DecimationFactor набор свойств к d, и CenterFrequency набор свойств к Fc.

пример

bpdecim = dsp.ComplexBandpassDecimator(d,Fc,Fs) создает комплексную полосу пропускания decimator объект с DecimationFactor набор свойств к d, CenterFrequency набор свойств к Fc, и SampleRate набор свойств к Fs.

Пример: dsp.ComplexBandpassDecimator(48e3/1e3,2e3,48e3);

bpdecim = dsp.ComplexBandpassDecimator(Name,Value) создает комплексную полосу пропускания decimator объект с каждым заданным набором свойств к заданному значению. Заключите каждое имя свойства в кавычки. Можно использовать этот синтаксис с любыми предыдущими комбинациями входных аргументов.

Пример: dsp.ComplexBandpassDecimator(48e3/1e3,2e3,48e3,'CenterFrequency',1e3);

Свойства

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

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

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

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

Центральная частота желаемой полосы в Гц в виде действительного, конечного числового скаляра в области значений [-SampleRate/2, SampleRate/2].

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

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

Параметры создания фильтра в виде:

  • 'Decimation factor' – Объект задает фактор децимации через Decimation Factor свойство. Полоса пропускания интереса (BW) вычисляется с помощью следующего уравнения:

    BW=Fs/D

    где

    • Fs – Частота дискретизации задана через SampleRate свойство.

    • D Фактор децимации.

  • 'Bandwidth' – Объект задает полосу пропускания через Bandwidth свойство. Фактор децимации (D) вычисляется с помощью следующего уравнения:

    D=floor(FsBW+TW)

    где

    • Fs – Частота дискретизации задана через SampleRate свойство.

    • BW – Полоса пропускания интереса.

    • TW – Ширина перехода задана через TransitionWidth свойство.

  • 'Decimation factor and bandwidth' – Фактор децимации и полоса пропускания интереса заданы через DecimationFactor и Bandwidth свойства.

Фактор, которым можно уменьшать полосу пропускания входного сигнала в виде положительного целого числа. Формат кадра (количество строк) входного сигнала должен быть кратным фактору децимации.

Зависимости

Это свойство применяется, когда вы устанавливаете Specification к любому 'Decimation factor' или 'Decimation factor and bandwidth'.

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

Затухание в полосе задерживания фильтра в дБ в виде конечной положительной скалярной величины.

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

Ширина перехода фильтра в Гц в виде положительной скалярной величины.

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

Ширина диапазона частот интереса в виде действительной положительной скалярной величины в Гц.

Зависимости

Это свойство применяется, когда вы устанавливаете Specification к любому 'Bandwidth' или 'Decimation factor and bandwidth'.

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

Неравномерность в полосе пропускания фильтра в виде положительной скалярной величины в дБ.

Зависимости

Это свойство применяется, когда вы устанавливаете Specification к любому 'Bandwidth' или 'Decimation factor and bandwidth'.

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

Отметьте, чтобы минимизировать количество комплексных коэффициентов фильтра в виде:

  • true – Первая стадия многоступенчатого фильтра является полосой пропускания (комплексные коэффициенты) сосредоточенный на заданной центральной частоте. Первая стадия сопровождается смесительным этапом, который гетеродинирует сигнал к DC. Остающиеся этапы фильтра, все с действительными коэффициентами, следуют.

  • false – Входной сигнал сначала передается через различные этапы многоступенчатого фильтра. Все этапы являются полосой пропускания (комплексные коэффициенты). Сигнал затем гетеродинирован к DC если MixToBaseband true, и смещение частоты, следующее из децимации, является ненулевым.

Отметьте, чтобы смешать сигнал к основной полосе в виде:

  • true – Объект гетеродинирует отфильтрованный, подкошенный сигнал к DC. Этот этап смешивания запускается на уровне выходной частоты дискретизации фильтра.

  • false – Объект пропускает смесительный этап.

Зависимости

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

Частота дискретизации входного сигнала в Гц в виде действительной положительной скалярной величины.

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

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

Синтаксис

Описание

y = bpdecim(x) фильтрует действительный или комплексный входной сигнал, x, произвести выход, y. Выход содержит поддиапазон частот, заданных свойствами Системного объекта. Системный объект фильтрует каждый канал входного сигнала независимо в зависимости от времени. Формат кадра (первая размерность) x должен быть кратным фактору децимации.

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

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

Ввод данных в виде вектора или матрицы. Количество строк во входе должно быть кратным фактору децимации.

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

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

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

Выход комплексной полосы пропускания decimator, возвращенный как вектор или матрица. Выход содержит поддиапазон частот, заданных свойствами Системного объекта. Количество строк (формат кадра) в выходном сигнале является 1/D временами количество строк во входном сигнале, где D является фактором децимации. Количество каналов (столбцы) не изменяется.

Тип данных выхода - то же самое как тип данных входа. Выходной сигнал является всегда комплексным.

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

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

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

release(obj)

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

costСтоимость внедрения комплексной полосы пропускания decimator
freqzЧастотная характеристика многоскоростного многоступенчатого фильтра
infoИнформация о Системном объекте фильтра
visualizeFilterStagesВизуализируйте этапы фильтра
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Вычислите стоимость внедрения комплексной полосы пропускания decimator использование cost функция.

Создайте dsp.ComplexBandpassDecimator объект. Установите DecimationFactor к 12, CenterFrequency к 5 000 Гц, и SampleRate к 44 100 Гц.

cbp = dsp.ComplexBandpassDecimator(12,5000,44100)
cbp = 
  dsp.ComplexBandpassDecimator with properties:

                CenterFrequency: 5000
                  Specification: 'Decimation factor'
               DecimationFactor: 12
            StopbandAttenuation: 80
                TransitionWidth: 100
    MinimizeComplexCoefficients: true
                     SampleRate: 44100

Вычислите стоимость внедрения cbp использование cost функция.

c = cost(cbp)
c = struct with fields:
                      NumCoefficients: 201
                            NumStates: 379
    RealMultiplicationsPerInputSample: 44.3333
          RealAdditionsPerInputSample: 43.8333

Вычислите комплексную частотную характеристику комплексной полосы пропускания decimator использование freqz функция.

Создайте dsp.ComplexBandpassDecimator объект. Установите DecimationFactor к 12, CenterFrequency к 5 000 Гц, и SampleRate к 44 100 Гц. Вычислите и отобразите частотную характеристику.

cbp = dsp.ComplexBandpassDecimator(12,5000,44100);
[h,f] = freqz(cbp);
plot(f,20*log10(abs(h)))
grid on
xlabel('Frequency (Hz)')
ylabel('h (dB)')

Figure contains an axes object. The axes object contains an object of type line.

Пропустите входной сигнал через комплексную полосу пропускания decimator и визуализируйте отфильтрованный спектр в спектре анализатор.

Инициализация

Создайте dsp.ComplexBandpassDecimator Система object™ с центральным набором частоты к 2 000 Гц, полосой пропускания набора интереса к 1 000 Гц и набора частоты дискретизации к 48 кГц. Фактор децимации вычисляется как отношение частоты дискретизации к полосе пропускания интереса. Вход к decimator является синусоидой с продолжительностью системы координат 1 200 выборок с тонами на уровне 1 625 Гц, 2 000 Гц и 2 125 Гц. Создайте dsp.SpectrumAnalyzer определите объем, чтобы визуализировать спектр сигнала.

Fs = 48e3;
CF = 2000;
BW = 1000;
D  =  Fs/BW;
FrameLength = 1200;
bpdecim = dsp.ComplexBandpassDecimator(D,CF,Fs);

sa = dsp.SpectrumAnalyzer('SampleRate',Fs/D,...
    'YLimits',[-120 40],...
    'FrequencyOffset',CF);

tones = [1625 2000 2125];
sin = dsp.SineWave('SampleRate',Fs,'Frequency',tones,...
    'SamplesPerFrame',FrameLength);

Визуализируйте этапы фильтра

Используя visualizeFilterStages функция, можно визуализировать ответ каждого отдельного этапа фильтра с помощью FVTool.

visualizeFilterStages(bpdecim)

Фильтр дисплейного отображения info

info функционируйте информация об отображениях о полосе пропускания decimator.

fprintf('%s',info(bpdecim))
Overall Decimation Factor       : 48
Bandwidth                       : 1000 Hz
Number of Filters               : 5
Real multiplications per Input Sample: 14.708333
Real additions per Input Sample      : 13.833333
Number of Coefficients               : 89
Filters:                         
   Filter 1:
   dsp.FIRDecimator     - Decimation Factor   : 2 
   Filter 2:
   dsp.FIRDecimator     - Decimation Factor   : 2 
   Filter 3:
   dsp.FIRDecimator     - Decimation Factor   : 2 
   Filter 4:
   dsp.FIRDecimator     - Decimation Factor   : 3 
   Filter 5:
   dsp.FIRDecimator     - Decimation Factor   : 2 

Поток в и сигнал фильтра

Создайте цикл for, чтобы запуститься для 1 000 итераций. В каждой итерации, потоке в 1 200 выборках (одна система координат) шумной синусоиды и применяют комплексную полосу пропускания decimator на каждую систему координат входного сигнала. Визуализируйте спектр ввода и вывода в спектре анализатор, sa.

for index = 1:1000
    x = sum(sin(),2) +  1e-4*randn(FrameLength,1);
    z = bpdecim(x);
    sa(z);
end

Полоса пропускания decimator с центральной частотой на уровне 2 000 Гц и полосой пропускания 1 000 Гц передает три тона синусоиды на уровне 1 625 Гц, 2 000 Гц и 2 125 Гц.

Измените центральную частоту decimator к 2 400 Гц и отфильтруйте сигнал.

release(bpdecim);
bpdecim.CenterFrequency = 2400
bpdecim = 

  dsp.ComplexBandpassDecimator with properties:

                CenterFrequency: 2400
                  Specification: 'Decimation factor'
               DecimationFactor: 48
            StopbandAttenuation: 80
                TransitionWidth: 100
    MinimizeComplexCoefficients: true
                     SampleRate: 48000

Сконфигурируйте спектр анализатор, чтобы показать полосу пропускания интереса, [-1900, 2900] Гц.

release(sa)
sa.FrequencyOffset = 2400;

Поток в данных и фильтре сигнал.

for index = 1:1000
    x = sum(sin(),2) +  1e-4 * randn(FrameLength,1);
    z = bpdecim(x);
    sa(z);
end

Тоны на уровне 2 000 Гц и 2 125 Гц передаются через decimator, в то время как тон на уровне 1 625 Гц отфильтрован.

Алгоритмы

Комплексная полоса пропускания decimator спроектирована путем применения комплексного преобразования сдвига частоты на прототипном фильтре lowpass. Прототип lowpass в этом случае является многоскоростным, многоступенчатым фильтром конечной импульсной характеристики (FIR). Желаемый сдвиг частоты применяется только к первой стадии. Последующие этапы масштабируют желаемый сдвиг частоты своими соответствующими совокупными факторами децимации. Для получения дополнительной информации смотрите Комплексный БПФ Проекта и Изменения масштаба Полосового фильтра.

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

Введенный в R2018a
Для просмотра документации необходимо авторизоваться на сайте