降噪处理

news/2025/10/27 11:26:28/文章来源:https://www.cnblogs.com/wangkaichen/p/19168364
%% ========== 读取对齐后的数据并进行降噪处理 ==========
clear; clc; close all;% 加载对齐后的数据
fprintf('正在加载对齐后的数据...\n');
load('对齐后的数据_85点.mat', 'aligned_data', 'time_axis');% 设置参数
datasets_to_process = 4:12;  % 要处理的数据集
target_length = 85;  % 时间点数% 设置变量名称(19个变量,已去掉第6和19个)
var_names = {'变量1', '变量2', '变量3', '变量4', '变量5', '变量7', ...'变量8', '变量9', '变量10', '变量11', '变量12', '变量13', '变量14', ...'变量15', '变量16', '变量17', '变量18', '变量20', '变量21'};% 降噪参数设置
% Savitzky-Golay滤波器参数
sg_order = 3;        % 多项式阶数(推荐2-4)
sg_framelen = 11;    % 窗口长度(必须为奇数,推荐9-15)% 也可以选择其他降噪方法,取消注释以下代码:
% method = 'savitzky-golay';  % Savitzky-Golay滤波
% method = 'moving-average';  % 移动平均
% method = 'wavelet';         % 小波降噪
method = 'savitzky-golay';  % 默认使用SG滤波% 存储降噪后的数据
denoised_data = cell(12, 1);%% ========== 对每个数据集进行降噪处理 ==========
fprintf('\n开始降噪处理...\n');
fprintf('使用方法: %s\n', method);for i = datasets_to_processdata = aligned_data{i};[n, m] = size(data);denoised = zeros(n, m);% 对每个变量分别降噪for col = 1:msignal = data(:, col);switch methodcase 'savitzky-golay'% Savitzky-Golay滤波器denoised(:, col) = sgolayfilt(signal, sg_order, sg_framelen);case 'moving-average'% 移动平均滤波window_size = 7;denoised(:, col) = movmean(signal, window_size);case 'wavelet'% 小波降噪[denoised(:, col), ~] = wdenoise(signal, 'Wavelet', 'sym4', ...'DenoisingMethod', 'Bayes');endenddenoised_data{i} = denoised;fprintf('数据集 %d 降噪完成\n', i);
endfprintf('\n所有数据集降噪处理完成!\n');%% ========== 可视化对比(降噪前后) ==========
fprintf('\n开始生成对比图像...\n');% 设置颜色
colors_original = lines(9);
colors_denoised = colors_original * 0.7;  % 降噪后的颜色稍暗% 为每个变量创建对比图
for col = 1:19% 创建新图形(包含两个子图)figure('Position', [100, 100, 1400, 600]);% 子图1:降噪前subplot(1, 2, 1);hold on;plot_idx = 1;for i = datasets_to_processdata = aligned_data{i};plot(time_axis, data(:, col), 'LineWidth', 1.5, ...'Color', colors_original(plot_idx, :), ...'DisplayName', ['数据集 ' num2str(i)]);plot_idx = plot_idx + 1;endxlabel('时间步 (1-85)', 'FontSize', 11, 'FontWeight', 'bold');ylabel('数值', 'FontSize', 11, 'FontWeight', 'bold');title(['降噪前 - ' var_names{col}], 'FontSize', 13, 'FontWeight', 'bold');legend('Location', 'best', 'FontSize', 9, 'NumColumns', 2);grid on;xlim([1, target_length]);hold off;% 子图2:降噪后subplot(1, 2, 2);hold on;plot_idx = 1;for i = datasets_to_processdata = denoised_data{i};plot(time_axis, data(:, col), 'LineWidth', 1.8, ...'Color', colors_denoised(plot_idx, :), ...'DisplayName', ['数据集 ' num2str(i)], ...'LineStyle', '-');plot_idx = plot_idx + 1;endxlabel('时间步 (1-85)', 'FontSize', 11, 'FontWeight', 'bold');ylabel('数值', 'FontSize', 11, 'FontWeight', 'bold');title(['降噪后 - ' var_names{col}], 'FontSize', 13, 'FontWeight', 'bold');legend('Location', 'best', 'FontSize', 9, 'NumColumns', 2);grid on;xlim([1, target_length]);hold off;% 添加总标题sgtitle(['变量 ' num2str(col) ': ' var_names{col} ' - 降噪对比'], ...'FontSize', 15, 'FontWeight', 'bold');% 保存图像saveas(gcf, ['降噪对比_变量' num2str(col) '.fig']);saveas(gcf, ['降噪对比_变量' num2str(col) '.png']);close(gcf);fprintf('已完成变量 %d/%d 的对比图\n', col, 19);
end%% ========== 创建单独的降噪后图像(与原格式一致) ==========
fprintf('\n开始生成降噪后的单独图像...\n');colors = lines(9);
for col = 1:19figure('Position', [100, 100, 1000, 600]);hold on;plot_idx = 1;for i = datasets_to_processdata = denoised_data{i};plot(time_axis, data(:, col), 'LineWidth', 1.8, ...'Color', colors(plot_idx, :), ...'DisplayName', ['数据集 ' num2str(i)], ...'Marker', 'none');plot_idx = plot_idx + 1;endxlabel('时间步 (1-85)', 'FontSize', 12, 'FontWeight', 'bold');ylabel('数值', 'FontSize', 12, 'FontWeight', 'bold');title(['变量 ' num2str(col) ': ' var_names{col} ' (降噪后)'], ...'FontSize', 14, 'FontWeight', 'bold');legend('Location', 'best', 'FontSize', 10, 'NumColumns', 2);grid on;xlim([1, target_length]);hold off;saveas(gcf, ['降噪后_变量' num2str(col) '.fig']);saveas(gcf, ['降噪后_变量' num2str(col) '.png']);close(gcf);fprintf('已完成变量 %d/%d 的降噪后图像\n', col, 19);
end%% ========== 保存降噪后的数据为.dat和.xlsx格式 ==========
fprintf('\n开始保存降噪后的数据文件...\n');for idx = 1:length(datasets_to_process)i = datasets_to_process(idx);data_to_save = denoised_data{i};% 生成文件名(06到14)file_number = sprintf('%02d', i + 2);dat_filename = [file_number '_te.dat'];xlsx_filename = [file_number '_te.xlsx'];% 保存为.dat文件(空格分隔)dlmwrite(dat_filename, data_to_save, 'delimiter', ' ', 'precision', '%.8f');fprintf('已保存: %s\n', dat_filename);% 保存为.xlsx文件col_headers = var_names;if exist('writematrix', 'file')% MATLAB R2019a及以上writecell([col_headers; num2cell(data_to_save)], xlsx_filename);else% 旧版本MATLABxlswrite(xlsx_filename, col_headers, 1, 'A1');xlswrite(xlsx_filename, data_to_save, 1, 'A2');endfprintf('已保存: %s\n', xlsx_filename);
end%% ========== 保存降噪后的完整数据 ==========
save('降噪后的数据_85点.mat', 'denoised_data', 'time_axis', 'method', ...'sg_order', 'sg_framelen');
fprintf('\n已保存: 降噪后的数据_85点.mat\n');%% ========== 生成降噪效果评估报告 ==========
fprintf('\n========== 降噪效果评估 ==========\n');% 计算信噪比改善
snr_improvement = zeros(length(datasets_to_process), 19);
smoothness_improvement = zeros(length(datasets_to_process), 19);for idx = 1:length(datasets_to_process)i = datasets_to_process(idx);original = aligned_data{i};denoised = denoised_data{i};for col = 1:19% 计算噪声水平(使用一阶差分的标准差)noise_original = std(diff(original(:, col)));noise_denoised = std(diff(denoised(:, col)));% 噪声减少百分比snr_improvement(idx, col) = (1 - noise_denoised/noise_original) * 100;% 平滑度改善(二阶差分)smooth_original = std(diff(original(:, col), 2));smooth_denoised = std(diff(denoised(:, col), 2));smoothness_improvement(idx, col) = (1 - smooth_denoised/smooth_original) * 100;end
endfprintf('平均噪声减少: %.2f%%\n', mean(snr_improvement(:)));
fprintf('平均平滑度改善: %.2f%%\n', mean(smoothness_improvement(:)));% 创建评估热图
figure('Position', [100, 100, 1200, 500]);
subplot(1, 2, 1);
imagesc(snr_improvement');
colorbar;
xlabel('数据集编号', 'FontSize', 11);
ylabel('变量编号', 'FontSize', 11);
title('噪声减少百分比 (%)', 'FontSize', 13, 'FontWeight', 'bold');
set(gca, 'XTick', 1:9, 'XTickLabel', datasets_to_process, 'YTick', 1:19);
colormap(jet);subplot(1, 2, 2);
imagesc(smoothness_improvement');
colorbar;
xlabel('数据集编号', 'FontSize', 11);
ylabel('变量编号', 'FontSize', 11);
title('平滑度改善百分比 (%)', 'FontSize', 13, 'FontWeight', 'bold');
set(gca, 'XTick', 1:9, 'XTickLabel', datasets_to_process, 'YTick', 1:19);
colormap(jet);sgtitle('降噪效果评估', 'FontSize', 15, 'FontWeight', 'bold');
saveas(gcf, '降噪效果评估.fig');
saveas(gcf, '降噪效果评估.png');
close(gcf);fprintf('\n========== 所有处理完成! ==========\n');
fprintf('总共生成:\n');
fprintf('  - %d 个对比图(.fig和.png)\n', 19);
fprintf('  - %d 个降噪后图像(.fig和.png)\n', 19);
fprintf('  - %d 个.dat文件\n', length(datasets_to_process));
fprintf('  - %d 个.xlsx文件\n', length(datasets_to_process));
fprintf('  - 1 个降噪后的数据.mat文件\n');
fprintf('  - 1 个降噪效果评估图\n');

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/947411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年可靠的食品保鲜制氮机最新TOP品牌厂家排行

2025年可靠的食品保鲜制氮机最新TOP品牌厂家排行食品保鲜制氮机行业概述在食品保鲜领域,制氮机已成为延长产品保质期、保持食品新鲜度的关键设备。随着食品工业对保鲜技术要求的不断提高,制氮机在食品包装、储存和运…

技术赋能智慧政务:政府呼叫中心的 AI 应用场景与实践难点

近年来,政府热线与政务呼叫中心在便民服务体系中扮演着越来越重要的角色。无论是“12345”热线、行政审批咨询,还是投诉受理、政策解读,电话和在线咨询已成为群众与政府沟通的主要渠道。然而,随着来电量激增与业务…

12348 热线的标准化建设:服务流程、话术规范与质量评估体系

12348 热线作为公共法律服务体系的重要组成部分,承担着为群众提供法律咨询、援助指引和纠纷调解等职能。然而,许多地方热线在实际运行中仍面临不少问题:服务标准不一、话术缺乏统一、接线质量参差不齐、管理者难以量…

2025 年纤维喷涂厂家最新推荐榜,聚焦企业技术实力与市场口碑深度解析

引言 为助力建筑及工业领域从业者精准选择优质纤维喷涂产品,本次推荐榜基于中国建筑节能协会 2024 - 2025 年度行业测评数据编制。测评采用 “三维九项” 评估体系,从技术维度(材料性能、工艺创新、设备水平)、市场…

电商呼叫中心的功能与优势解析

在竞争激烈的电商行业,客服体验往往决定了用户的复购率与品牌口碑。促销期订单暴增、售后咨询量攀升、退换货纠纷集中等问题,使得电商企业的客服部门面临巨大压力。传统呼叫中心系统虽然能满足基础接听需求,但在应对…

吱吱企业即时通讯既可以聊天,又是企业办公协同的利器

在数字化办公浪潮下,企业对高效沟通和办公协同的需求日益迫切。吱吱企业即时通讯作为一款集通讯办公为一体的企业即时通讯软件,不仅实现了即时聊天的安全性、即时性和便捷性,更凭借其强大的办公协同功能,成为企业运…

2025年10月美白精华产品推荐榜:功效实测与成分对比

入秋以后,紫外线强度虽降,但夏季累积的暗沉、色斑与糖化黄气开始集中显现,不少用户把“提亮肤色、淡化痘印、均匀肤质”列为10月护肤首要任务。小红书联合益普索发布的《2025中国功效护肤白皮书》显示,美白精华在功…

2025无缝钢管厂家推荐榜:天津大无缝钢铁领衔,Q345B/C 无缝钢管、高压合金管优质供应商精选

2025年工业制造、能源输送等领域需求升级,无缝钢管作为核心基础材料,其材质稳定性、规格适配性成为市场关注焦点。其中 Q345B、Q345C、无缝钢管的力学性能、高压合金管的耐高压特性,更是工业场景的关键选择标准。经…

从“基因融合”到“3-5轮筛选”,噬菌体展示技术为何能精准富集特异性分子?

在生物医药研发中,“从海量分子里找到能精准结合靶标的那一个”,是很多实验的核心目标。而噬菌体展示技术,正是凭借 “基因与分子绑定 + 多轮筛选富集” 的设计,成为解决这一问题的经典工具。它的原理看似复杂,实…

C# Web开发教程(九)标识框架[Identity]

标识(Identity)框架Authentication和Authorization- Authentication: 认证,你是谁 - Authorization: 权限,你有什么权限1、标识(Identity)框架: 采用基于角色(Role)的访问控制- (Role-Based Access Control,简称RBA…

2025NFC与电子标签推荐榜:深圳中签科技领跑,NFC 标签/芯片/卡、电子芯片/标签高效应用方案精选

2025 年物联网场景持续深化,NFC 芯片、电子标签作为设备互联的核心组件,需求覆盖零售溯源、智能穿戴、物流管理等多个领域。其中 NFC 标签的兼容性、电子芯片的稳定性成为市场选择关键,经技术实力与应用反馈筛选,以…

行业震动!罗永浩数字人电商直播首秀创下AI直播新标杆!

继5月以4 小时 GMV 破 5000 万的真人直播首秀引爆电商后,"直播界老将" 罗永浩再度以创新姿态回归 —— 其数字人形象于 6 月 15 日登陆电商直播间,以 1300 万 + 观看人次、5500 万元 GMV 的亮眼数据,刷新…

2025充电桩推荐榜:山东康姆勒电力领跑,直流/电动重卡/公共/快充/重卡/160kw/400kW /群充/新能源/充电桩高效补能方案实力之选

2025 年新能源出行需求持续攀升,充电桩作为核心补能设施,其效率与适配性成为市场焦点。其中直流充电桩的快充能力、群充充电桩的多车服务特性,更是用户关注重点。经技术实力与市场反馈筛选,以下企业展现出强劲竞争…

2025年有实力冷拔丝优质厂家推荐榜单

2025年有实力冷拔丝优质厂家推荐榜单 在建筑、制造、五金等行业中,冷拔丝作为一种重要的金属材料,广泛应用于桁架、管桩、网片、制钉等领域。选择一家实力雄厚、品质可靠的冷拔丝厂家,能够确保产品质量稳定、供货及…

2025修护/二硫化硒去屑/香氛/控油蓬松/ 洗发水推荐榜:MASIL 玛丝兰领衔,修护 / 去屑 / 控油蓬松品类的实力之选

在2025年的洗护市场中,洗发水品类持续细分,修护、去屑、香氛、控油蓬松等需求日益明确。经过市场口碑与技术实力筛选,以下品牌凭借专业表现脱颖而出,其中西安悦己容生物科技旗下的 MASIL 玛丝兰尤为亮眼。 西安悦己…

2025-10-27 在浏览器打开网站A输入数字后变成小动物,其他网站为正常数字输入 ==》 修改字体

最近遇到一个奇怪的问题,就是生产的pc端给客户使用时,客户发现输入的数字变成了小动物,不仅如此,不用输入,其他只要涉及到数字的都会变成小动物。 远程过去,确实如此,原以为是客户自己安装的输入法问题,但是把…

2025年知名的导热油电加热器实力厂家TOP推荐榜

2025年知名的导热油电加热器实力厂家TOP推荐榜 在工业加热领域,导热油电加热器因其高效、稳定、安全等特性,被广泛应用于石油、化工、电力、冶金等行业。随着技术的不断进步,市场对电加热器的性能、安全性和智能化…

2025年知名的不锈钢雕塑最新TOP品牌厂家排行

2025年知名的不锈钢雕塑最新TOP品牌厂家排行不锈钢雕塑作为现代城市景观的重要组成部分,以其耐腐蚀、高强度、美观大方等特点,在公共艺术、商业空间和私人定制领域广受欢迎。随着2025年城市更新和艺术需求的持续增长…

2025年热门的输送带厂家推荐及选择指南

2025年热门的输送带厂家推荐及选择指南 输送带作为工业运输系统中的核心部件,广泛应用于矿山、冶金、水泥、港口、电力等行业。随着工业自动化程度的提高,市场对输送带的质量、耐用性和定制化需求日益增长。选择一家…

2025年比较好的破碎机TOP实力厂家推荐榜

2025年比较好的破碎机TOP实力厂家推荐榜 在矿山开采、建筑拆除、冶金化工等领域,破碎机作为核心设备之一,其性能、稳定性和售后服务直接影响生产效率。随着技术的进步,2025年的破碎机市场涌现出一批技术领先、口碑…