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) использует объект опции, чтобы задать необязательные входные параметры вместо определения пар "имя-значение".

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

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

Примеры

свернуть все

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

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

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

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

opts = freqrespopts(sysobj);

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

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

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

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

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

  • Состояние Системного объекта 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отрицательное и положительное значения появляются на графике. Если вы выбираете falseDC появляется в источник осей.

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

свернуть все

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

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

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

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

См. также

Функции

Введенный в R2011a