function [Best_K,Best_alpha] = KL_VMD(y,alpha)
% y:为待分解的时域信号
% u:分解模式的集合
% omega:估计模式中心频率
% K:分解的模态数
% alpha:惩罚因子,也称平衡参数
% VMD分解的输入参数
tau = 0; % 噪声容忍度
DC = 0; % 无直流分量
init = 1; % 初始化中心频率为均匀分布
tol = 1e-7; % 收敛准则容忍度
f_min = inf;
for K = 2:10
[u, ~, omega] = VMD(y, alpha, tau, K, DC, init, tol);
[~, sortIndex] = sort(omega(end,:));
u = u(sortIndex,:);
% 计算K-L散度(相对熵)
sum = zeros(1,K);
y = y';
for i = 1:K
sum(i) = K_L(y,u(i,:));
end
[f,idx] = min(sum,[],2);
if f<f_min
f_min = f;
idx_min = idx;
end
toc;
end
% 最优K值
Best_K = idx_min+1; % 根据最优的K值,寻找最优的惩罚因子
f_min=inf;
for alpha = 100:50:2000
[u, ~, omega] = VMD(y, alpha, tau, Best_K, DC, init, tol);
[~, sortIndex] = sort(omega(end,:));
u = u(sortIndex,:);
% 计算K-L散度(相对熵)
sum = zeros(1,Best_K);
y = y';
for i = 1:Best_K
sum(i) = K_L(y,u(i,:));
end
[f,~] = min(sum,[],2);
if f<f_min
f_min = f;
Best_alpha = alpha;
end
toc;
end
end

Radar_LFM
- 粉丝: 1w+
最新资源
- 新建文件夹 (4).zip
- 宫颈癌细胞病例图像分类识别系统设计
- mmexport1754329269574.jpg
- 基于MATLAB的材料力学程序设计
- 基于FPGA的课程设计售货机资料齐全详细文档优秀项目
- 【自动控制领域】PID算法详解及其调参技巧:工业与生活中的广泛应用及实例解析
- 让 AI 聊天机器人更似真人!借助 AstrBot 模块智能识别用户意图以控制回复行为
- SF32LB52开发板硬件技术开发资料.zip
- BESS建立电池储能系统并网的模型
- Java JDK 1.8.0-241 完整版压缩包
- AndroidThings 图像识别
- C#创建OPCUA服务器/客户端(免授权,基于Open62541)
- Simpole-HR360-429
- 使用CUDA和OPENCL遥感影像正射校正
- faskapi自学记录数据库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



- 1
- 2
- 3
- 4
- 5
- 6
前往页