freqrespest

Оценка частотной характеристики через фильтрацию

Синтаксис

[h,w] = freqrespest(sysobj,L)
[h,w] = freqrespest(sysobj,L,param1,value1,param2,value2,...)
[h,w] = freqrespest(sysobj,L,opts)
freqrespest(sysobj,...)

Описание

[h,w] = freqrespest(sysobj,L) оценивает частотную характеристику Системы фильтра object™, sysobj. Набор входных данных отфильтрован и затем формирование отношения между выходными данными и входными данными. Данные о тестовом воздействии включают синусоиды с равномерно распределенными случайными частотами.

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

L является количеством испытаний, чтобы использовать, чтобы вычислить оценку. Если вы не задаете это значение, значения по умолчанию L к 10. Больше испытаний генерирует более точную оценку ответа, но потребуйте, чтобы больше времени вычислило оценку.

h является оценкой комплексной частотной характеристики. w содержит вектор частот, на которых оценивается h.

[h,w] = freqrespest(sysobj,L,param1,value1,param2,value2,...) пары значения параметров (PV) использования как входные параметры, чтобы задать дополнительные параметры для теста. Эти параметры являются допустимыми парами PV. Введите названия параметра как входные параметры в одинарных кавычках. Следующая таблица обеспечивает допустимые параметры для [h, w].

'ParameterName'

Значение по умолчанию

Описание

NFFT

512

Количество БПФ указывает на использование.

NormalizedFrequency

true

Укажите, использовать ли нормированную частоту или линейную частоту. Значениями является true (использование, нормированная частота), или false (используют линейную частоту). Когда вы задаете false, необходимо предоставить частоту дискретизации Fs.

Fs

normalized

Задайте частоту дискретизации, когда NormalizedFrequency будет false. Никакое значение по умолчанию. Необходимо установить NormalizedFrequency на false прежде, чем установить значение для Fs.

SpectrumRange

half

Задайте область значений спектра, которая будет использоваться в качестве whole или half (значение по умолчанию).

CenterDC

false

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

ArithmeticARITHАнализируйте Системный объект фильтра, на основе арифметики, заданной во входе ARITH. ARITH может быть установлен в double, single или fixed. Аналитический инструмент принимает фильтр с двойной точностью, когда арифметический вход не задан, и Системный объект фильтра находится в разблокированном состоянии.

freqrespest требует знания типа входных данных. Анализ не может быть выполнен, если тип входных данных не доступен. Если вы не задаете параметр Arithmetic, т.е. используете синтаксис [h,w] = freqrespest(sysobj), то следующие правила касаются этого метода:

  • Состоянием Системного объекта является Unlockedfreqrespest выполняет анализ двойной точности.

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

Когда вы действительно задаете параметр Arithmetic, т.е. используете синтаксис [h,w] = freqrespest(sysobj,'Arithmetic', ARITH), рассматриваете следующие правила для этого метода. То, которое применяет правило, зависит от значения, которое вы устанавливаете для параметра Arithmetic.

ValueСостояние системного объектаПравило
ARITH = 'double'Unlockedfreqrespest выполняет анализ с двойной точностью.
Lockedfreqrespest выполняет анализ с двойной точностью.
ARITH = 'single'Unlockedfreqrespest выполняет анализ с одинарной точностью.
Lockedfreqrespest выполняет анализ с одинарной точностью.
ARITH = 'fixed'Unlockedfreqrespest производит ошибку, потому что тип входных данных фиксированной точки неизвестен.
LockedЕсли тип входных данных является двойным или одним, то freqrespest производит ошибку, потому что тип входных данных фиксированной точки неизвестен.
Когда входные данные имеют фиксированную точку, freqrespest выполняет анализ на основе заблокированного типа входных данных.

Следующие Системные объекты Фильтра поддерживаются этой аналитической функцией:

[h,w] = freqrespest(sysobj,L,opts) использует объект, opts, чтобы задать дополнительные входные параметры. Эта спецификация не сделана непосредственно путем определения пар PV как входных параметров. Создайте opts с

opts = freqrespopts(sysobj);

Поскольку opts является объектом, вы используете set, чтобы изменить значения параметров в opts, прежде чем вы будете использовать его с freqrespest. Например, вы могли задать новую частоту дискретизации с

set(opts,'fs',48e3); % Same as opts.fs=48e3

freqrespest(sysobj,...) без выходного аргумента запускает FVTool.

freqrespest может также вычислить частотную характеристику плавающих фильтров с двойной точностью. Такие фильтры не могут быть преобразованы в форму передаточной функции, не вводя значительный раунд от ошибок, которые влияют на вычисление частотной характеристики freqz. Примеры этих видов фильтров включают пространство состояний или образовывают решетку фильтры, особенно если они - старшие фильтры.

Примеры

свернуть все

Этот пример показывает тому, как оценить частотную характеристику КИХ-фильтра фиксированной точки.

firFilt = design(fdesign.lowpass(.4,.5,1,60),'equiripple','Systemobject',true);
dataIn = fi(randn(16,15),1,16,15);
dataOut = firFilt(dataIn); %#ok
[h,w] = freqrespest(firFilt); %#ok % This should be about the same as freqz.
release(firFilt);

Продолжая фильтр firFilt, измените FullPrecisionOverride на false и затем задайте размеры слова, и точность (дробные длины) применилась к выводу от внутренних операций сложения и умножения. После того, как вы установите слово и дробные длины, используйте freqrespest, чтобы вычислить оценку частотной характеристики для фильтра фиксированной точки.

firFilt.FullPrecisionOverride = false;
firFilt.ProductDataType = 'Custom';
firFilt.CustomProductDataType = numerictype(1,16,15);
firFilt.AccumulatorDataType = 'Custom';
firFilt.CustomAccumulatorDataType = numerictype(1,16,15);
firFilt.OutputDataType = 'Same as accumulator';
dataOut = firFilt(dataIn);
[h,w] = freqrespest(firFilt,2);
[h2,w2] = freqz(firFilt,512);
plot(w/pi,20*log10(abs([h,h2])))
legend('Frequency response estimated by filtering',...
'Freq. response computed by quantizing coefficients only');
xlabel('Normalized Frequency (\times\pi rad/sample)')
ylabel('Magnitude (dB)')

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

Функции

Введенный в R2011a