【信号处理】基于均分原理的同步信号分割与建模附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月前
|
算法 计算机视觉
永磁同步电机的矢量控制PMSM仿真+simulink仿真建模(matlab仿真与图像处理)
永磁同步电机的矢量控制PMSM仿真+simulink仿真建模(matlab仿真与图像处理)
99 1
|
15天前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
2月前
|
机器学习/深度学习 算法 计算机视觉
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
30 2
|
2月前
|
机器学习/深度学习 算法
基于自适应支持向量机的matlab建模与仿真,不使用matlab的SVM工具箱函数
基于自适应支持向量机的matlab建模与仿真,不使用matlab的SVM工具箱函数
|
2月前
|
算法 机器人 vr&ar
基于双目RGB图像和图像深度信息的三维室内场景建模matlab仿真
基于双目RGB图像和图像深度信息的三维室内场景建模matlab仿真
|
3月前
|
Perl
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
|
3月前
【数值分析】迭代法求方程的根(附matlab代码)
【数值分析】迭代法求方程的根(附matlab代码)
|
3月前
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
|
3月前
【数值分析】二分法求方程的根(附matlab代码)
【数值分析】二分法求方程的根(附matlab代码)
|
2月前
|
算法
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
36 0

热门文章

最新文章