¿Cómo determina VMD el número de capas de descomposición (1): Descomposición de modo variable óptimo (OVMD) --- Determinación del número de capas de descomposición y tamaño de paso de actualización basado en la descomposición de VMD

La publicación de blog anterior ha descrito el mecanismo de descomposición de VMD. Con respecto a los parámetros, especialmente cómo determinar el número de capas de descomposición, este artículo brinda una solución: Descomposición en modo variable óptimo (OVMD), utilizando el método de frecuencia central Determinar el número de descomposición capas K, y use el índice residual para determinar el paso de actualización tau.

Hay muchos artículos sobre el uso del método de frecuencia central para determinar el número de capas de descomposición, tanto en el país como en el extranjero. Aquí está el código directamente.

tic
clc
clear all

load('IMF1_1.mat')
x=IMF1_1;
t=1:length(IMF1_1);

%--------- some sample parameters forVMD:对于VMD样品参数进行设置---------------
alpha = 2000;       % moderate bandwidth constraint:适度的带宽约束/惩罚因子
tau = 0.0244;          % noise-tolerance (no strict fidelity enforcement):噪声容限(没有严格的保真度执行)
K = 7;              % modes:分解的模态数
DC = 0;             % no DC part imposed:无直流部分
init = 1;           % initialize omegas uniformly  :omegas的均匀初始化
tol = 1e-7 ;        
%--------------- Run actual VMD code:数据进行vmd分解---------------------------
[u, u_hat, omega] = VMD(x, alpha, tau, K, DC, init, tol);
figure;
imfn=u;
n=size(imfn,1); %size(X,1),返回矩阵X的行数;size(X,2),返回矩阵X的列数;N=size(X,2),就是把矩阵X的列数赋值给N


for n1=1:n
    subplot(n,1,n1);
    plot(t,u(n1,:));%输出IMF分量,a(:,n)则表示矩阵a的第n列元素,u(n1,:)表示矩阵u的n1行元素
    ylabel(['IMF' ,int2str(n1)],'fontsize',11);%int2str(i)是将数值i四舍五入后转变成字符,y轴命名
end
 xlabel('样本序列','fontsize',14,'fontname','宋体');


%时间\itt/s
 toc;
 %----------------------计算中心频率确定分解个数K-----------------------------
#####################;%求矩阵列的平均值

El promedio es la frecuencia central calculada, porque es necesario determinar el número de capas de descomposición, por lo que debemos comenzar desde K = 1, aumentar continuamente la entrada y realizar un cálculo cada vez que se ingresa un valor K. ¿Cuál es el valor K de entrada final, por ejemplo, el último K=5 o K=11? Esto no se puede determinar, depende de los resultados de procesamiento específicos. La base para determinar el valor de K es: una vez que aparece una frecuencia similar, se determina que el valor de K en este momento es el mejor valor de K.

A través del cálculo del código anterior, calculamos el resultado de la frecuencia central bajo diferentes valores de k:

Preste atención, observamos el valor final de la descomposición de cada capa en cada situación de descomposición. Podemos ver que cuando el número de capas de descomposición es 7, la frecuencia central se ha estabilizado y el valor es 0.457155. Cuando el número de capas de descomposición es 8. , la frecuencia central El valor de la frecuencia es 0.457612, cuando el número de capas de descomposición es 9, la frecuencia central es 0.457802. Por lo tanto, se determina que el número de capas descompuestas es 7.

Después de determinar el número de capas de descomposición de VMD, se puede determinar aún más otro parámetro tau Aquí, el valor específico de tau solo se puede determinar después de determinar el número de capas de descomposición. El método específico es el método del índice residual (REI). Para obtener más información, consulte este documento: Pronóstico de velocidad del viento a corto plazo con baja pérdida de información basado en la generación de funciones de OSVD https://www.webofscience.com/wos/woscc/full-record/WOS:000474609400001

La fórmula específica correspondiente es:

                               

Aquí hay una breve explicación del significado específico: U representa el número de modos de descomposición, f representa la señal original y N representa el número de señales. Por lo tanto, esta fórmula puede entenderse simplemente como la comparación de la suma de cada modo de descomposición con la señal original, buscando el mínimo más cercano a la señal original. A continuación se muestra el código directamente:

 De hecho, este código, después de determinar el rango de tau, hace un bucle para descomponer continuamente VMD con el fin de alcanzar el valor mínimo de REI. Según la literatura, tau varía de 0 a 1 con un tamaño de paso de 0,01. Aquí me gustaría recordar nuevamente que la cantidad de capas de descomposición debe determinarse primero. Por ejemplo, la cantidad de capas de descomposición en el código anterior es 7. Después de ingresar K = 7, realice el siguiente cálculo iterativo. El resultado de la operación es el siguiente:

Aquí el valor mínimo lo encontramos en tau, que es el valor del parámetro tau que queremos seleccionar. La operación de encontrar el valor mínimo se puede encontrar directamente en MATLAB, o el valor se puede importar a EXCEL para buscar.

Aquí se visualiza la tau:

De esta manera, se encuentran tanto el número de capas de descomposición K como el paso de actualización tau, y el valor se lleva a la descomposición VMD, y el cálculo es correcto.

Si quieres conocer más detalles, puedes leer el documento anterior.

Supongo que te gusta

Origin blog.csdn.net/weixin_46062179/article/details/122276627
Recomendado
Clasificación