dsp.DCBlocker

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

Описание

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

Блокировать компонент DC входного сигнала:

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

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

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

Создание

Описание

пример

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

пример

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

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

Свойства

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

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

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

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

Алгоритм для оценки DC возместил в виде одного из следующего:

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

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

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

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

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Синтаксис

Описание

пример

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

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

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

Ввод данных к блокировщику DC возражает в виде вектора, матрицы или N-D массив.

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

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

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

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

Сигнал с удаленным компонентом DC, возвратился как вектор, матрица, или N-D array.The выходные размерности совпадает с входными размерностями.

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

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

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

release(obj)

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

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

Примеры

свернуть все

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

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

Создайте сигнал, состоявший из тона на 15 Гц, тона на 25 Гц и смещения DC.

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

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

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

В течение каждой секунды времени передайте входной сигнал через блокировщики DC. Путем реализации блокировщиков DC с 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

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

Создайте входной сигнал, состоявший из трех тонов, и это имеет смещение DC 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, который использует КИХ-алгоритм, чтобы оценить смещение 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, через блокировщик DC, чтобы сгенерировать выходной сигнал, y.

y = dcblker(x);

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

hsa(x)

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

hsb(y)

Алгоритмы

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

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

Ссылки

[1] Nezami, M. “Оценка эффективности Основополосных Алгоритмов для Прямого Преобразования Тактическое программное обеспечение Заданные Приемники: Коррекция Разбаланса I/Q, Отклонение Изображений, Удаление DC и Формирование каналов”. MILCOM, 2002.

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

Смотрите также

Функции

Объекты

Блоки

Введенный в R2014a