exponenta event banner

dsp. DCBlocker

Компонент блока постоянного тока (смещение) от входного сигнала

Описание

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

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

  1. Создать dsp.DCBlocker и задайте его свойства.

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

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

Создание

Описание

пример

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

пример

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

Пример: dcblker = dsp. DCBlocker ('Алгоритм', 'КИХ')

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

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

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

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

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

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

Можно визуализировать ответы IIR, FIR и CIC с помощью fvtool функция.

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Описание

пример

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Примечание.Если используется 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).

Сравните спектр входного сигнала со смещением постоянного тока со спектром того же сигнала после применения блокировщика постоянного тока. Включить блокировку DC для использования 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;

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

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)

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

hsb(y)

Алгоритмы

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

Блокировщик постоянного тока вычитает компонент постоянного тока из входного сигнала. Компонент DC можно оценить с помощью алгоритма среднего значения IIR, FIR, CIC или вычитания.

Ссылки

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

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

.
Представлен в R2014a