dsp.ComplexBandpassDecimator

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

Описание

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

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

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

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

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

Создание

Описание

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 Используя Системные объекты (MATLAB).

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

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

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

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

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

    BW=Fs/D

    где

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

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

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

    D=пол(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)')

Пропустите входной сигнал через комплексную полосу пропускания 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

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