Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

fractalcoef

Coeficientes de filtro para la generación de ruido fractal.

Desde R2023b

Descripción

coeffs = fractalcoef devuelve los coeficientes de filtro para generar ruido fractal con una densidad espectral de potencia de 1/ f, donde f es la frecuencia. Para obtener más información sobre el filtrado de ruido, consulte filter.

Sugerencia

Puede utilizar los coeficientes generados para especificar la propiedad BiasInstabilityCoefficients de accelparams, gyroparams o magparams objeto.

ejemplo

coeffs = fractalcoef(numPoles) especifica el número de polos en los coeficientes del denominador del filtro.

ejemplo

coeffs = fractalcoef(numPoles,alpha) también especifica el valor alfa (α) para el ruido fractal con una densidad espectral de potencia de 1/ f α. Cuando α = 1, el ruido generado también se conoce como ruido rosa.

Ejemplos

contraer todo

Primero especifique la frecuencia, el número de muestras y el número de polos para la generación de ruido.

rng default % For repeatable results
Fs = 100;
numSamples = 2160000;
numPoles = 5;

Obtenga coeficientes de filtro usando la función fractalcoef .

coeffs = fractalcoef(numPoles);

Genera ruido blanco y filtra el ruido para obtener ruido rosa.

wn = randn(numSamples,1);
pn = filter(coeffs.Numerator,coeffs.Denominator,wn);

Generar variación de Allan del ruido rosa.

[avar,tau] = allanvar(pn,"octave",Fs);

Trama de la desviación de Allan del ruido rosa.

figure
adev = sqrt(avar);
loglog(tau, adev)
title("Allan Deviation of Pink Noise")
xlabel("\tau");
ylabel("\sigma(\tau)")
grid on
axis equal

Figure contains an axes object. The axes object with title Allan Deviation of Pink Noise, xlabel tau, ylabel sigma ( tau ) contains an object of type line.

Defina el número de muestras, el número de polos y los valores alfa utilizados para generar ruido fractal.

rng default % For repeatable results
numSamples = 1e4;
numPoles = 1e3;
alphaValues = [0.1,0.5,1,1.5,1.9];

Crea una serie de ruido blanco.

whiteNoise = randn(numSamples,1);

Genere ruido fractal con diferentes valores de alfa usando las funciones fractalcoef y filter . Trazar el ruido fractal generado.

figure
for ii = 1:numel(alphaValues)
    coef = fractalcoef(numPoles,alphaValues(ii));
    fractalNoise = filter(coef.Numerator,coef.Denominator,whiteNoise);
    subplot(numel(alphaValues),1,ii)
    plot(fractalNoise)
    title("\alpha = " + num2str(alphaValues(ii)))
end

Figure contains 5 axes objects. Axes object 1 with title alpha blank = blank 0.1 contains an object of type line. Axes object 2 with title alpha blank = blank 0.5 contains an object of type line. Axes object 3 with title alpha blank = blank 1 contains an object of type line. Axes object 4 with title alpha blank = blank 1.5 contains an object of type line. Axes object 5 with title alpha blank = blank 1.9 contains an object of type line.

Argumentos de entrada

contraer todo

Número de polos en los coeficientes del denominador del filtro, especificado como un entero positivo.

Ejemplo: 2

Tipos de datos: single | double

Valor alfa (α), especificado como un escalar en el rango (0,2). La función devuelve los coeficientes para generar ruido fractal con una densidad espectral de potencia de 1/ f α.

Ejemplo: 0.9

Tipos de datos: single | double

Argumentos de salida

contraer todo

Coeficientes para generar ruido fractal, devueltos como estructura. La estructura tiene dos campos:

  • Numerador: numerador de coeficientes, devuelto como 1.

  • Denominador: denominador de coeficientes, devuelto como un vector de escalares 1 por (P+1), donde P es el número de polos.

Referencias

[1] Kasdin, N. J. “Discrete Simulation of Colored Noise and Stochastic Processes and 1/fα Power Law Noise Generation.” Proceedings of the IEEE, vol. 83, no. 5, May 1995, pp. 802–27.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2023b

Consulte también

| |