noisepsd

Спектральная плотность степени фильтра из-за округлого шума

Описание

noisepsdOut = noisepsd(sysobj,L) вычисляет степень спектральную плотность (PSD) фильтра выхода, происходящую из-за округления шума. Округлый шум возникает из-за ошибок квантования в фильтре. PSD вычисляется как среднее значение по L судебные разбирательства.

noisepsdOut = noisepsd(___,Name,Value) задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.

noisepsdOut = noisepsd(sysobj,L,opts) использует объект опции, чтобы задать необязательные входные параметры вместо определения пар "имя-значение".

пример

noisepsdOut = noisepsd(sysobj,'Arithmetic',arithType) анализирует Системную object™ фильтра на основе арифметики, заданной в arithType вход.

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

Примеры

свернуть все

Вычислите PSD выхода шума, вызванного процессами квантования, в конечную импульсную характеристику фильтре с фиксированной точкой и прямой формой. Входной сигнал имеет тип данных с фиксированной точкой. The noisepsd функция выполняет анализ на основе типа данных заблокированного входа.

b = firgr(27,[0 .4 .6 1],[1 1 0 0]);
firfilt = dsp.FIRFilter('Numerator',b); % Create the filter object.
data = fi(randn(15,16),1,16,3);
output = firfilt(data);

Квантуйте фильтр в фиксированную точку. Постройте график hpsd данные. Это данные, следующие из вычисления PSD шума. Просмотреть данные можно в hpsd.data.

hpsd = noisepsd(firfilt,'Arithmetic','fixed');
plot(hpsd)

Figure contains an axes. The axes with title Power Spectral Density contains an object of type line.

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

свернуть все

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

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

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

Создайте opts объект с

opts = noisepsdopts(sysobj);

opts затем принимает noisepsd настройки из sysobj.

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

set(opts,'NormalizedFrequency',false,'Fs',48e3);

Арифметика, используемая в анализе, задается как 'double', 'single', или 'Fixed'. Вы не можете использовать 'Arithmetic' аргумент, если вы не знаете тип данных входов. Если вы не задаете 'Arithmetic' аргумент, то есть вы используете синтаксис noisepsdOut = noisepsd(sysobj), затем noisepsd функция применяет следующие правила:

  • Если Системный объект Unlocked - The noisepsd функция выполняет анализ двойной точности.

  • Если Системный объект Locked - The noisepsd функция выполняет анализ на основе типа данных заблокированного входа.

Если вы задаете 'Arithmetic' аргумент, то есть вы используете синтаксис noisepsdOut = noisepsd (sysobj, 'Arithmetic', arithType), noisepsd функция применяет эти правила в зависимости от значения, для которого вы задаете arithType.

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

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

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

Пример: b = firgr(27,[0 .4 .6 1],[1 1 0 0]); firfilt = dsp.FIRFilter('Numerator',b); noisepsdOut = noisepsd(firfilt);

Количество точек БПФ, используемых при вычислении PSD, заданное в виде положительного целого числа. Это значение определяет длину вектора данных PSD, показанного в Data поле noisepsdOut структура. Когда 'NFFT' имеет значение:

  • Нечетное целое число -- длина данных PSD определяется (NFFT + 1 )/2.

  • Четное целое число -- длина данных PSD задается (NFFT/2) + 1.

Когда не указано, NFFT по умолчанию является 512.

Примечание

Если заданные вами данные спектра вычисляются за половину интервала Найквиста, и вы не задаете соответствующий вектор частоты, вектор частоты по умолчанию принимает, что число точек в целом БПФ четное. Кроме того, опция построения графика для преобразования в целый или двусторонний спектр предполагает, что исходная вся длина БПФ ровна.

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

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

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

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

Частота дискретизации, заданная в Гц при 'NormalizedFrequency' установлено в false. Когда 'NormalizedFrequency' установлено в true, 'Fs' установлено в 'Normalized'.

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

Тип спектра сгенерированных данных PSD, заданный как:

  • 'Onesided' - Преобразует тип в спектр, который вычисляется за половину интервала Найквиста. Все свойства, затронутые новой частотной областью значений, настраиваются автоматически.

  • 'Twosided' - Преобразует тип в спектр, который вычисляется на протяжении всего интервала Найквиста. Все свойства, затронутые новой частотной областью значений, настраиваются автоматически. Если вы выбираете двусторонний расчет, можно также выбрать 'CenterDC' как true. В противном случае 'CenterDC' должен быть false.

Сдвиньте компонент нулевой частоты к центру двустороннего спектра.

  • Когда вы задаете 'SpectrumType' на 'Onesided', оно изменяется на 'Twosided' и данные преобразуются в двусторонний спектр.

  • Настройка 'CenterDC' на false смещает данные и значения частоты в объекте так, чтобы DC находился в левом крае спектра. Эта операция не влияет на 'SpectrumType' настройка свойств.

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

свернуть все

Объект данных, содержащий данные PSD, возвращенный как psd объект. Чтобы извлечь вектор PSD из noisepsdOut, введите следующее в MATLAB® командная строка:

get(noisepsdOut,'data')

Постройте график данных PSD с помощью plot(noisepsdOut). Средняя степень выходного шума (интеграл PSD) может быть вычислена с помощью avgpower, метод dspdata объекты:

avgpwr = avgpower(hpsd)

Ссылки

[1] Макклеллан, Джеймс Х., редактор. Компьютерные упражнения для обработки сигналов с использованием MATLAB 5. Prentice Hall, 1998.

См. также

Функции

Введенный в R2011a