exponenta event banner

freqrespest

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

Описание

пример

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

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

  • При выполнении фильтрации с фиксированной точкой переполнение не происходит

  • В сложениях и умножениях с фиксированной точкой не происходит значительного квантования.

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

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

[h,w] = freqrespest(sysobj,L,Name,Value) использует Name,Value пар в качестве входных аргументов для указания необязательных параметров теста. Введите имя параметра в качестве входного аргумента в одинарных кавычках, за которым следует возможное значение параметра.

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

[h,w] = freqrespest(sysobj,'Arithmetic',arithType) анализирует объект System фильтра на основе арифметики, указанной в arithType вход.

freqrespest(sysobj,___) без выходного аргумента запускает FVTool и показывает оценку отклика величины объекта фильтра.

Примеры

свернуть все

Оцените частотную характеристику FIR-фильтра с фиксированной точкой.

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)')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Frequency response estimated by filtering, Freq. response computed by quantizing coefficients only.

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

свернуть все

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

Типы данных: single | double

Объект Options для указания необязательных входных параметров вместо указания пар имя-значение.

Создать opts с использованием freqrespopts функция.

opts = freqrespopts(sysobj);

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

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

Анализ объекта System фильтра на основе арифметики, указанной в arithType вход. arithType может иметь значение 'double', 'single', или 'fixed'. Инструмент анализа предполагает использование фильтра двойной точности, если арифметический ввод не задан и объект «Система фильтра» находится в разблокированном состоянии.

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

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

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

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

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: firFilt = design(fdesign.lowpass(.4,.5,1,60),'equiripple','Systemobject',true); [h,w] = freqrespest(firFilt,10,'NFFT',1024);

Количество точек БПФ, используемых при вычислении оценки частотного отклика, определяемого как положительное целое число. Это значение определяет длину вектора частотной характеристики h и длина частотного вектора w. Если не указано, NFFT по умолчанию: 512.

Типы данных: single | double

Укажите, следует ли использовать нормированную частоту или линейную частоту:

  • true - Используйте нормированную частоту. Если не указано, функция по умолчанию имеет значение true.

  • false - Использовать линейную частоту. При указании false, необходимо указать частоту выборки Fs.

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

Типы данных: single | double

Диапазон спектра, используемый при вычислении оценки частотного отклика, определяется следующим образом:

  • half

  • whole

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

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

свернуть все

Оценка комплексного частотного отклика, возвращаемого в виде вектора. Длина вектора равна NFFT значение. По умолчанию этот вектор имеет длину 512.

Типы данных: double
Поддержка комплексного номера: Да

Частоты, на которых комплексный частотный отклик h оценивается, возвращается как вектор. Длина вектора равна NFFT значение. По умолчанию этот вектор имеет длину 512.

Типы данных: double

См. также

Функции

Представлен в R2011a