freqrespest

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

Описание

пример

[h,w] = freqrespest(sysobj) вычисляет оценку частотной характеристики входной Системы фильтра 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)')

Входные параметры

свернуть все

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

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

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

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

opts = freqrespopts(sysobj);

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

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

Анализируйте Системный объект фильтра, на основе арифметики, заданной в arithType входной параметр. arithType может быть установлен в 'double'единственный, или '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

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

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

свернуть все

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

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

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

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

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

Функции

Введенный в R2011a