【信号处理】基于均分原理的同步信号分割与建模附matlab代码

简介: 【信号处理】基于均分原理的同步信号分割与建模附matlab代码

 💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥

📝目前更新:🌟🌟🌟智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真。

                       

                             🎉🎉欢迎您的到来🎉🎉


               ⛅⛅⛅ 📃CSDN主页:Matlab科研室🌈🌈🌈


             📚📚📚📋所有代码目录见微信公众号:天天Matlab👨•💻👨•💻👨•💻

1 内容介绍

在本文中,我们提出了一种基于 EquiPartition 原则 (EP) 的信号时间间隔分割方法。 根据 EP,信号被分割成段,在重建中给出相等的误差,选择最合适的模型来描述每个段。 此外,这些片段在内容域中是等效的,因为信号被分割成由相同数量的系数建模的片段。 所提出的方法已成功应用于不同类型的信号,例如:生理、语音、人体运动、金融时间序列。 最后,所提出的方法在误差标准、信号建模和信号维度的变化上非常灵活,从而产生了一种用于信号分割和建模的鲁棒方法。

2 仿真代码

%This code is a simple (not speed optimized) implementation of EP  

% based Simultaneous Segmentation and Modelling of Signals, see papers [1-3].

%

close all;

clear all;

S = 7;%number of coefficients

N = 3;%number of segments

%mode = 1;  %FFT

%mode = 2;  %Polynomial method

%mode = 3;  %Wavelet method

mode = 4;  %Selection between FFT + Polynomial method + Wavelet (basis selection)

file = 'data\synSignal3Seg-noise_0_025.txt'; %data file

%read data

fid = fopen(file, 'r');

a = fscanf(fid, '%g', [inf]);    

a = a';

fclose(fid);

y = a';

figure;

plot(y);

xlabel('samples');

title('signal');

%compute distance matrix

warning('off','all');

[d,meth] = getDistanceFromSignal(y,4,S,1);

%write distance matrix

fileD = sprintf('%s_D.txt',file(1:length(file)-4));

fid = fopen(fileD, 'w');

for i=1:size(d,1),

   fprintf(fid,'%f ',d(i,:));

   fprintf(fid,'\n');

end

fclose(fid);

%%%EP starts

command = sprintf('ep %s %d data\\ epRes_signal4SegN1-noise',fileD,N);

dos(command);

[Sol1,error1] =  getBestSolution(d,'solutionsEQP.txt',N,1);

[Sol2,error2] =  getBestSolution(d,'solutions.txt',N,2);

if error1 < error2,

   Sol = round(Sol1);

else

   Sol = round(Sol2);

end

fclose(fid);

%Sol stores the best EP solution

Segments = Sol;

[y_,error,method] =  getReconstruction(y,Segments,mode,S,1);

figure;

hold on;

plot(y,'LineWidth',1.2);

hold on;

plot(y_,'r');

hold on;

%plot(x(points),0,'gs','MarkerFaceColor','g','MarkerSize',6);

for i=2:length(Segments)-1,

   plot([Segments(i) Segments(i)],[min(y) max(y)],'-.k');

end

for i=1:length(Segments)-1,

   if method(i) == 1,

       text(-10+(Segments(i)+Segments(i+1))/2,(min(y)+max(y))/2,'Fourier');

   elseif method(i) == 2,

       text(-10+(Segments(i)+Segments(i+1))/2,(min(y)+max(y))/2,'Polynomial');

   else

       text(-10+(Segments(i)+Segments(i+1))/2,(min(y)+max(y))/2,'Wavelets');

   end

end

s = sprintf('N = %d,  Error = %2.4f, S = %d ',N,error, S);

title(s);

legend('Original','Reconstruction','Segmentation');

xlabel('samples');

3 运行结果

image.gif编辑

image.gif编辑

image.gif编辑

4 参考文献

[1] C. Panagiotakis, K. Athanassopoulos and G. Tziritas, The equipartition of curves,Computational Geometry: Theory and Applications, Vol. 42, No. 6-7, pp. 677-689, 2009.

[2] C. Panagiotakis and G. Tziritas, Signal Segmentation and Modelling based on Equipartition Principle,  International Conference on Digital Signal Processing, 2009.

[3] C. Panagiotakis and G. Tziritas, Simultaneous Segmentation and Modelling of Signals based on an Equipartition Principle, 20th International Conference for Pattern Recognition  (ICPR), 2010.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

5 往期回顾扫扫下方二维码


相关文章
|
2月前
|
存储 算法 数据可视化
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
83 2
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
216 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
139 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
105 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
6月前
|
机器学习/深度学习 数据可视化 算法
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
58 0
|
7月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
7月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
7月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
7月前
|
供应链 算法
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)