dsp.DCBlocker

Блокируйте компонент (смещение) от входного сигнала

Описание

The dsp.DCBlocker Система object™ удаляет смещение постоянного тока из каждого канала (столбца) входного сигнала. Операция выполняется с течением времени, чтобы постоянно оценивать и удалять смещение постоянного тока.

Чтобы заблокировать компонент входного сигнала:

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

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

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

пример

dcblker = dsp.DCBlocker создает Системный объект блокировщика постоянного тока, dcblker, для блокировки компонента постоянного тока из каждого канала (столбца) входного сигнала.

пример

dcblker = dsp.DCBlocker(Name,Value) создает Системный объект блокировщика постоянного тока, dcblker, с каждым заданным набором свойств до заданного значения. Заключайте каждое имя свойства в одинарные кавычки.

Пример: dcblker = dsp. DCBlocker ('Алгоритм', 'конечная импульсная характеристика')

Свойства

расширить все

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

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

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

Алгоритм оценки смещения постоянного тока, заданный как одно из следующего:

  • 'IIR' - Объект использует рекурсивную оценку, основанную на узком, lowpass эллиптическом фильтре. Порядок наборов свойств порядок фильтра, а NormalizedBandwidth наборов свойств его полосу пропускания. Этот алгоритм обычно использует меньше памяти, чем алгоритм конечной импульсной характеристики, и является более эффективным.

  • 'FIR' - Объект использует нерекурсивную скользящую среднюю оценку, основанную на конечном количестве прошлых входных выборок. Длина наборов свойств количество выборок. Конечная импульсная характеристика имеет линейный фазовый отклик и не вызывает каких-либо искажений фазы в сигнале. БИХ требует меньше памяти и более эффективен в реализации.

  • 'CIC' - Объект использует CIC дециматор с коэффициентом десятикратного уменьшения 1, дифференциальная задержка которого вычисляется с помощью свойства NormalizedBandwidth. Он использует две секции, чтобы гарантировать, что первое ослабление бокового колеса находится по меньшей мере на 25 дБ ниже основного лепестка фильтра. Этот алгоритм требует входов с фиксированной точкой и может использоваться для генерации HDL-кода.

  • 'Subtract mean' -- Объект вычисляет средства столбцов матрицы входа и вычитает средства из входа. Этот метод не сохраняет состояние между входами.

Можно визуализировать ответы БИХ, конечной импульсной характеристики и CIC при помощи fvtool функция.

Нормированная полоса пропускания БИХ или CIC-фильтра, заданная как действительный скаляр, больший 0 или меньше 1. Нормированная шумовая полоса используется для оценки компонента постоянного тока входного сигнала.

Зависимости

Это свойство применяется только, когда вы задаете свойство Algorithm равным 'IIR' или 'CIC'.

Порядок эллиптического фильтра БИХ, который используется для оценки уровня DC, заданный как целое число, больше 3.

Зависимости

Это свойство применяется только, когда вы задаете свойство Algorithm равным 'IIR'.

Количество прошлых входных выборок, используемых в алгоритме конечной импульсной характеристики для оценки текущего среднего, заданное в виде положительного целого числа.

Зависимости

Это свойство применяется только, когда вы задаете свойство Algorithm равным 'FIR'.

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

Синтаксис

Описание

пример

dcblkerOut = dcblker(input) удаляет компонент постоянного тока из каждого канала (столбца) входа и возвращает выход.

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

расширить все

Вход данных в объект блокировщика постоянного тока, заданный как вектор, матрица или N -D массив.

Пример: t = (0: 0,001: 100) '; x = sin (30 * pi * t) + 1;

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

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

расширить все

Сигнал с удаленным компонентом постоянного тока, возвращенный как вектор, матрица или N массив -D. Выход размерностей совпадать с входом размерностей.

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

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

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

release(obj)

расширить все

fvtoolВизуализация частотной характеристики фильтров DSP
stepЗапуск алгоритма системного объекта
releaseОтпустите ресурсы и допустите изменения в значениях свойств системного объекта и входных характеристиках
resetСброс внутренних состояний Системного объекта

Примеры

свернуть все

Примечание.Если вы используете R2016a или более ранние версии, замените каждый вызов объекта эквивалентным синтаксисом шага. Например, obj (x) становится шагом (obj, x).

Удалите компонент постоянного тока входного сигнала с помощью БИХ, конечной импульсной характеристики и вычитайте алгоритмы средней оценки.

Создайте сигнал, состоящий из тонального сигнала 15 Гц, тонального сигнала 25 Гц и смещения постоянного тока.

t = (0:0.001:100)';
x = sin(30*pi*t) + 0.33*cos(50*pi*t) + 1;

Создайте три объектов постоянного тока для трех алгоритмов оценки.

dc1 = dsp.DCBlocker('Algorithm','IIR','Order', 6);
dc2 = dsp.DCBlocker('Algorithm','FIR','Length', 100);
dc3 = dsp.DCBlocker('Algorithm','Subtract mean');

В течение каждой секунды передайте входной сигнал через блокаторы постоянного тока. При реализации блокаторов постоянного тока с шагом 1 секунду можно наблюдать различия во времени сходимости.

for idx = 1 : 100
    range = (1:1000) + 1000*(idx-1);
    y1 = dc1(x(range));          % IIR estimate
    y2 = dc2(x(range));          % FIR estimate
    y3 = dc3(x(range));          % Subtract mean
end

Постройте график входных и выходных данных для трех блокаторов постоянного тока за первую секунду времени и покажите среднее значение для каждого сигнала. Средние значения для трех типов алгоритмов показывают, что FIR и Subtract mean алгоритмы сходятся быстрее.

plot(t(1:1000),x(1:1000), ...
    t(1:1000),y1, ...
    t(1:1000),y2, ...
    t(1:1000),y3);
xlabel('Time (sec)')
ylabel('Amplitude')
legend(sprintf('Input DC:%.3f',mean(x)), ...
    sprintf('IIR DC:%.3f',mean(y1)), ...
    sprintf('FIR DC:%.3f',mean(y2)), ...
    sprintf('Subtract mean DC:%.3f',mean(y3)));

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Input DC:1.000, IIR DC:0.011, FIR DC:-0.000, Subtract mean DC:-0.000.

Примечание.Если вы используете R2016a или более ранние версии, замените каждый вызов объекта эквивалентным синтаксисом шага. Например, obj (x) становится шагом (obj, x).

Сравните спектр входного сигнала со смещением постоянного тока со спектром того же сигнала после применения блокатора постоянного тока. Включите блокировщик постоянного тока, чтобы использовать FIR алгоритм оценки.

Создайте входной сигнал, состоящий из трех тонов, и который имеет смещение постоянного тока 1. Установите частоту дискретизации в 1 кГц и установите длительность сигнала в 100 секунд.

fs = 1000;
t = (0:1/fs:100)';
x = sin(30*pi*t) + 0.67*sin(40*pi*t) + 0.33*sin(50*pi*t) + 1;

Создайте объект блокировщика постоянного тока, который использует алгоритм конечной импульсной характеристики для оценки смещения постоянного тока.

dcblker = dsp.DCBlocker('Algorithm','FIR','Length',100);

Создайте спектральный анализатор с установленными на dBW модулями степени и частотная область значений [-30 30] для отображения частотной характеристики входного сигнала. Использование clone функция, создайте второй анализатор спектра, чтобы отобразить ответ выхода. Затем используйте Title свойство спектральных анализаторов маркировать их.

hsa = dsp.SpectrumAnalyzer('SampleRate',fs, ...
    'PowerUnits','dBW','FrequencySpan','Start and stop frequencies',...
    'StartFrequency',-30,'StopFrequency',30,'YLimits',[-200 20],...
    'Title','Signal Spectrum');

hsb = clone(hsa);
hsb.Title = 'Signal Spectrum After DC Blocker';

Передайте входной сигнал, x, через блокировщик постоянного тока, чтобы сгенерировать выходной сигнал, y.

y = dcblker(x);

Используйте первый анализатор спектра, чтобы отобразить частотные характеристики входного сигнала. Тоны с частотой 15, 20 и 25 Гц и компонент постоянного тока хорошо видны.

hsa(x)

Используйте второй анализатор спектра, чтобы отобразить частотные характеристики выхода сигнала. Компонент постоянного тока был удален.

hsb(y)

Алгоритмы

расширить все

Блокировщик постоянного тока вычитает компонент постоянного тока из входного сигнала. Можно оценить компонент постоянного тока с помощью алгоритма БИХ, конечной импульсной характеристики, CIC или вычесть среднее значение.

Ссылки

[1] Незами, М. «Эффективность алгоритмов основной полосы частот для тактических приемников, определяемых ПО прямого преобразования: коррекция разбаланса I/Q, отклонение изображения, удаление постоянного тока и канализация». MILCOM, 2002.

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

.

См. также

Функции

Объекты

Блоки

Введенный в R2014a