dsp.Differentiator

Прямой КИХ формы fullband фильтр дифференциатора

Описание

dsp.Differentiator Система object™ применяет fullband фильтр дифференциатора на входной сигнал, чтобы дифференцировать все его частотные составляющие. Этот объект использует КИХ equiripple создание фильтра, чтобы спроектировать фильтр дифференциатора. Идеальная частотная характеристика дифференциатора D(ω)=jω для πωπ. Можно спроектировать фильтр с минимальным порядком с заданным порядком. Эта фиксированная точка поддержки объектов операции.

Отфильтровать каждый канал вашего входа:

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

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

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

Создание

Описание

пример

DF = dsp.Differentiator возвращает дифференциатор, DF, который независимо фильтрует каждый канал входа в зависимости от времени с помощью данных технических требований проекта.

DF = dsp.Differentiator(Name,Value) наборы каждое имя свойства к заданному значению. Незаданные свойства имеют значения по умолчанию.

Свойства

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

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

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

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

Опция, чтобы спроектировать фильтр минимального порядка в виде логического скаляра. Фильтр имеет 2 степени свободы. Когда вы устанавливаете это свойство на

  • true — Объект проектирует фильтр с минимальным порядком, который соответствует PassbandRipple значение.

  • false — Объект проектирует фильтр с порядком, который вы задаете в FilterOrder свойство.

Это свойство не является настраиваемым.

Порядок фильтра в виде нечетного положительного целого числа.

Это свойство не является настраиваемым.

Зависимости

Можно задать порядка фильтра только когда 'DesignForMinimumOrder' установлен в false.

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

Максимальная неравномерность в полосе пропускания в дБ в виде положительного действительного скаляра.

Это свойство не является настраиваемым.

Зависимости

Можно задать неравномерность в полосе пропускания только когда 'DesignForMinimumOrder' установлен в true.

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

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

Это свойство не является настраиваемым.

Свойства фиксированной точки

Word и дробные длины коэффициентов в виде numerictype без знака или со знаком объект. Значение по умолчанию, numerictype(1,16), соответствует числовому текстовому объекту со знаком с 16-битными коэффициентами. Чтобы дать самую лучшую точность, дробная длина вычисляется на основе содействующих значений.

Это свойство не является настраиваемым.

Размер слова выхода совпадает с размером слова входа. Объект вычисляет дробную продолжительность выхода, таким образом, что целый динамический диапазон выхода может быть представлен без переполнения. Для получения дополнительной информации о том, как объект вычисляет дробную продолжительность выхода, см. Правила Точности Фиксированной точки для Предотвращения Переполнения в КИХ-Фильтрах.

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

Это свойство не является настраиваемым.

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

Синтаксис

Описание

пример

y = DF(x) применяет fullband фильтр дифференциатора к входному сигналу, xY дифференцируемая версия x.

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

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

Ввод данных в виде вектора или матрицы. Если входной сигнал является матрицей, каждый столбец матрицы обработан как независимый канал. Количество строк во входном сигнале обозначает длину канала. Характеристики типа данных (двойная, одна, или фиксированная точка) и действительно-комплексные характеристики (действительный или оцененный комплекс) должны быть тем же самым для входных данных и выходных данных.

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

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

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

Дифференцируемый сигнал, возвращенный как вектор или матрица, одного размера, тип данных и сложность как входной сигнал, x.

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

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

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

release(obj)

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

getFilterПолучите базовый КИХ-фильтр
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным step синтаксис. Например, myObject (x) становится шагом (myObject, x).

Оцените групповую задержку КИХ-фильтра линейной фазы с помощью dsp.TransferFunctionEstimator объект сопровождается dsp.PhaseExtractor и dsp.Differentiator объекты. Групповой задержкой КИХ-фильтра линейной фазы дают$GD = -(d\theta(\omega)/d\omega) = - \frac{N}{2}$, где$\theta(\omega)$ информация о фазе фильтра,$\omega$ действительно ли частота, вектор, и N является порядком фильтра.

Настройте объекты

Создайте линейную фазу FIR фильтр lowpass. Установите порядок к 200, частоту полосы пропускания к 255 Гц, неравномерность в полосе пропускания к 0,1 дБ и затухание в полосе задерживания к 80 дБ. Задайте частоту дискретизации 512 Гц.

Fs = 512;
LPF = dsp.LowpassFilter('SampleRate',Fs,'PassbandFrequency',255,...
    'DesignForMinimumOrder',false,'FilterOrder',200);

Чтобы оценить передаточную функцию фильтра lowpass, создайте средство оценки передаточной функции. Задайте окно, чтобы быть Hann. Установите длину БПФ на 1 024 и количество спектральных средних значений к 200.

TFE = dsp.TransferFunctionEstimator('FrequencyRange','twosided',...
    'SpectralAverages',200,'FFTLengthSource','Property',...
    'FFTLength',1024);

Чтобы извлечь развернутую фазу из частотной характеристики фильтра, создайте экстрактор фазы.

PE = dsp.PhaseExtractor;

Чтобы дифференцировать фазу$\theta$, создайте фильтр дифференциатора. Это значение используется в вычислении групповой задержки.

DF = dsp.Differentiator;

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

Gain1 = 512/pi;
Gain2 = -1;
VBFilter = dsp.VariableBandwidthFIRFilter('CutoffFrequency',10,...
    'SampleRate',Fs);

Чтобы просмотреть групповую задержку фильтра, создайте объект графика массивов.

AP = dsp.ArrayPlot('PlotType','Line','YLimits',[-500 400],...
    'YLabel','Amplitude','XLabel','Number of samples');

Запустите алгоритм

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

Niter = 1000; % Number of iterations
for k = 1:Niter
        x = randn(512,1);  % Input signal = white Gaussian noise
        y = LPF(x);   % Filter noise with Lowpass FIR filter
        H = TFE(x,y); % Compute transfer function estimate
        Phase = PE(H); % Extract the Unwrapped phase
        phaseaftergain1 = Gain1*Phase;
        DiffOut = DF(phaseaftergain1); % Differentiate the phase
        phaseaftergain2 = Gain2 * DiffOut;
        VBFOut = VBFilter(phaseaftergain2); % Smooth the group delay
        AP(VBFOut); % Display the group delay
end

Как вы видите, групповая задержка фильтра lowpass равняется 100.

Создайте волну FM на сигнале поставщика услуг на 100 Гц, произведенном на уровне 1,5 кГц.

Fc = 1e2;   % Carrier
Fs = 1.5e3; % Sample rate
sinewave = dsp.SineWave('Frequency',10,...
                            'SamplesPerFrame',1e3,...
                            'SampleRate',Fs);

Преобразуйте сигнал FM в сигнал AM.

ts = timescope(2,...
                      'TimeSpanSource','Property',...
                      'TimeSpan',0.3,...
                      'BufferLength',10*Fs,...
                      'SampleRate',Fs,...
                      'ShowGrid',true,...
                      'YLimits',[-1.5 1.5],...
                      'LayoutDimensions',[2 1]);

df = dsp.Differentiator;

tic
while toc<2.2
    x = step(sinewave);
    fm_y = modulate(x,Fc,Fs,'fm');
    am_y = step(df,fm_y);
    step(ts,fm_y,am_y);
end

release(df);
release(ts);

Алгоритмы

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

Ссылки

[1] Orfanidis, Софокл Дж. Введение в обработку сигналов. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996.

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

Преобразование фиксированной точки
Спроектируйте и симулируйте системы фиксированной точки с помощью Fixed-Point Designer™.

Введенный в R2016a