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единственный, или 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