Прямой КИХ формы fullband фильтр дифференциатора
dsp.Differentiator
Система object™ применяет fullband фильтр дифференциатора на входной сигнал, чтобы дифференцировать все его частотные составляющие. Этот объект использует КИХ equiripple создание фильтра, чтобы спроектировать фильтр дифференциатора. Идеальная частотная характеристика дифференциатора для . Можно спроектировать фильтр с минимальным порядком с заданным порядком. Эта фиксированная точка поддержки объектов операции.
Отфильтровать каждый канал вашего входа:
Создайте dsp.Differentiator
объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.
возвращает дифференциатор, DF
= dsp.DifferentiatorDF
, который независимо фильтрует каждый канал входа в зависимости от времени с помощью данных технических требований проекта.
наборы каждое имя свойства к заданному значению. Незаданные свойства имеют значения по умолчанию.DF
= dsp.Differentiator(Name,Value
)
Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release
функция разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.
DesignForMinimumOrder
— Спроектируйте фильтр минимального порядкаtrue
(значение по умолчанию) | false
Опция, чтобы спроектировать фильтр минимального порядка в виде логического скаляра. Фильтр имеет 2 степени свободы. Когда вы устанавливаете это свойство на
true
— Объект проектирует фильтр с минимальным порядком, который соответствует PassbandRipple
значение.
false
— Объект проектирует фильтр с порядком, который вы задаете в FilterOrder
свойство.
Это свойство не является настраиваемым.
FilterOrder
— Порядок фильтраПорядок фильтра в виде нечетного положительного целого числа.
Это свойство не является настраиваемым.
Можно задать порядка фильтра только когда 'DesignForMinimumOrder'
установлен в false
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
PassbandRipple
— Максимальная неравномерность в полосе пропусканияМаксимальная неравномерность в полосе пропускания в дБ в виде положительного действительного скаляра.
Это свойство не является настраиваемым.
Можно задать неравномерность в полосе пропускания только когда 'DesignForMinimumOrder'
установлен в true
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
ScaleCoefficients
— Масштабируйте коэффициенты фильтраfalse
(значение по умолчанию) | true
Опция, чтобы масштабировать коэффициенты фильтра в виде логического скаляра. Когда вы устанавливаете это свойство на true
, объект масштабирует коэффициенты фильтра, чтобы сохранить входной динамический диапазон.
Это свойство не является настраиваемым.
CoefficientsDataType
— Word и дробные длины коэффициентовnumerictype(1,16)
(значение по умолчанию) | numerictype
объектWord и дробные длины коэффициентов в виде numerictype
без знака или со знаком объект. Значение по умолчанию,
numerictype(1,16)
, соответствует числовому текстовому объекту со знаком с 16-битными коэффициентами. Чтобы дать самую лучшую точность, дробная длина вычисляется на основе содействующих значений.
Это свойство не является настраиваемым.
Размер слова выхода совпадает с размером слова входа. Объект вычисляет дробную продолжительность выхода, таким образом, что целый динамический диапазон выхода может быть представлен без переполнения. Для получения дополнительной информации о том, как объект вычисляет дробную продолжительность выхода, см. Правила Точности Фиксированной точки для Предотвращения Переполнения в КИХ-Фильтрах.
RoundingMethod
— Округление метода для выходных операций фиксированной точки'Floor'
(значение по умолчанию) | 'Ceiling'
| 'Convergent'
| 'Nearest'
| 'Round'
| 'Simplest'
| 'Zero'
Округление метода для выходных операций фиксированной точки в виде вектора символов. Для получения дополнительной информации об округляющихся режимах смотрите Точность и Область значений.
Это свойство не является настраиваемым.
x
— Ввод данныхВвод данных в виде вектора или матрицы. Если входной сигнал является матрицей, каждый столбец матрицы обработан как независимый канал. Количество строк во входном сигнале обозначает длину канала. Характеристики типа данных (двойная, одна, или фиксированная точка) и действительно-комплексные характеристики (действительный или оцененный комплекс) должны быть тем же самым для входных данных и выходных данных.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fi
Поддержка комплексного числа: Да
y
— Дифференцируемый сигналДифференцируемый сигнал, возвращенный как вектор или матрица, одного размера, тип данных и сложность как входной сигнал, x
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fi
Поддержка комплексного числа: Да
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
dsp.Differentiator
getFilter | Получите базовый КИХ-фильтр |
Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным step
синтаксис. Например, myObject (x) становится шагом (myObject, x).
Оцените групповую задержку КИХ-фильтра линейной фазы с помощью dsp.TransferFunctionEstimator
объект сопровождается dsp.PhaseExtractor
и dsp.Differentiator
объекты. Групповой задержкой КИХ-фильтра линейной фазы дают, где
информация о фазе фильтра,
действительно ли частота, вектор, и 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;
Чтобы дифференцировать фазу, создайте фильтр дифференциатора. Это значение используется в вычислении групповой задержки.
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);
Дифференциатор вычисляет производную сигнала. Частотной характеристикой идеального фильтра дифференциатора дают , заданный на интервале Найквиста .
Частотная характеристика антисимметрична и линейно пропорциональна частоте.
dsp.Differentiator
возразите действиям как фильтру дифференциатора. Этот объект уплотняет двухступенчатый процесс в один. Для проекта минимального порядка, объектное использование обобщенный КИХ-алгоритм создания фильтра Remez. Для заданного проекта порядка объект использует Парки-McClellan оптимальный equiripple КИХ-алгоритм создания фильтра. Фильтр спроектирован как линейный фильтр фазы Type-IV FIR с Прямой структурой формы.
Идеальному дифференциатору дали антисимметричную импульсную характеристику . Следовательно . Дифференциатор должен иметь нулевой ответ на нулевой частоте.
КИХ-фильтр дифференциатора линейной фазы
Импульсной характеристикой антисимметричного КИХ-фильтра линейной фазы дают , где M является длиной фильтра. Поскольку фильтр антисимметричен, можно использовать этот тип КИХ-фильтра, чтобы спроектировать КИХ-дифференциаторы линейной фазы.
Рассмотрите проект КИХ-дифференциаторов линейной фазы на основе Чебышевского критерия приближения.
Если M является нечетным, частотная характеристика с действительным знаком КИХ-фильтра, Час (ω), имеет характеристики тот Час (0) = 0 и Час (π) = 0. Этот фильтр удовлетворяет условию нулевого ответа на нулевой частоте. Однако это не fullband потому что Час (π) = 0. Этот дифференциатор имеет линейный ответ по ограниченному частотному диапазону [0 2πfp], где fp является пропускной способностью дифференциатора. Абсолютная погрешность между желаемым ответом и Чебышевскими увеличениями приближения как ω увеличивается от 0 до 2πfp.
Если M является четным, частотная характеристика с действительным знаком КИХ-фильтра, Час (ω), имеет характеристики тот Час (0) = 0 и Час (π) ≠ 0. Этот фильтр удовлетворяет условию нулевого ответа на нулевой частоте. Это - fullband и этот проект результаты по значительно меньшей ошибке приближения, чем сопоставимые дифференциаторы нечетной длины. Следовательно, ровная длина (нечетный порядок) дифференциаторы предпочтена в практических системах.
[1] Orfanidis, Софокл Дж. Введение в обработку сигналов. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996.
Указания и ограничения по применению:
Смотрите системные объекты в Генерации кода MATLAB (MATLAB Coder).
Этот объект также поддерживает использование генерации кода SIMD технология Intel AVX2, когда входной сигнал имеет тип данных single
или double
.
Технология SIMD значительно улучшает производительность сгенерированного кода.
dsp.BiquadFilter
| dsp.FIRFilter
| dsp.HighpassFilter
| dsp.VariableBandwidthFIRFilter
| dsp.VariableBandwidthIIRFilter
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.