精华内容
下载资源
问答
  • matlab实现光谱平滑

    2021-04-22 15:06:49
    Spectral SmoothingThis MATLAB exercise processes a designated frame of voiced speech from a user specified speech file, using a designated window and calculates the log magnitude spectrum of the STFT ...

    Spectral Smoothing

    This MATLAB exercise processes a designated frame of voiced speech from a user specified speech file, using a designated window and calculates the log magnitude spectrum of the STFT of the windowed frame of speech. Next the exercise does LPC analysis of the speech frame using a pth-order predictor and computes the log magnitude spectrum of the LPC polynomial. Finally cepstral analysis is performed with the cepstrum liftered using a low frequency lifter (with lowest retained quefrency specified by the user). The exercise plots the three log magnitude spectrums on a common plot for comparison of the three log magnitude spectrums.

    展开全文
  • MATLAB曲线平滑的办法

    万次阅读 多人点赞 2016-05-18 17:41:35
    发现了两个MATLAB自带的曲线平滑函数:smooth和spcrv 一、smooth 自己感觉:平滑效果还可以 1.语法 (1)函数 smooth(Y) smooth(Y,SPAN)%SPAN是滑动平均的点数,即“几点滑动平均” smooth(Y,SPAN,METHOD) (2)...

    发现了两个MATLAB自带的曲线平滑函数:smooth和spcrv

    一、smooth

    自己感觉:平滑效果还可以

    1.语法

    (1)函数

    smooth(Y)

    smooth(Y,SPAN)%SPAN是滑动平均的点数,即“几点滑动平均”

    smooth(Y,SPAN,METHOD)

    (2)METHOD:

    %loess:局部回归,加权的线性最小均方,2阶多项式模型
    %rloess:'loess'的增强版,在回归过程中,给极端值分配的权重小。超出6倍绝对离差的极端值,权重为0
    %'moving':滑动平均(默认)。低通滤波器,滤波器系数=span的倒数
    %'lowess':局部回归。线性最小均方加权,1阶多项式模型。
    %'sgolay':Savitzky-Golay filter。
    %‘rlowess’:‘lowess’的增强版。在回归过程中,给极端值分配的权重小。超出6倍绝对离差的极端值,权重为0

    (3)注意

    对增强版的算法而言,极端值的影响可以忽略

    (4)例子1(来自MATLAB)

    %-----------画出原始数据和平滑后的数据----
    [xx,ind] = sort(x);%排序,ind-索引,xx-排序后的数据(从小到大)
    subplot(2,1,1)
    plot(xx,y(ind),'b.',xx,yy1(ind),'r-')
    set(gca,'YLim',[-1.5 3.5])
    legend('Original Data','Smoothed Data Using ''loess''','Location','NW')
    subplot(2,1,2)
    plot(xx,y(ind),'b.',xx,yy2(ind),'r-')
    set(gca,'YLim',[-1.5 3.5])
    legend('Original Data','Smoothed Data Using ''rloess''','Location','NW')

    (5)例子2(来自MATLAB)

    clc,clear
    load count.dat  %(24×3)一天24小时,3个交通路口的车流量
    %1°滑动平均滤波器,5小时的span。平滑全部数据
    c = smooth(count(:));
    C1 = reshape(c,24,3);
    %画图(原始数据,平滑后的数据)
    subplot(3,1,1)
    plot(count,':');
    hold on
    plot(C1,'-');
    title('Smooth C1 (All Data)')
    %2°相同的滤波器。分别对每列数据进行平缓。
    C2 = zeros(24,3);
    for I = 1:3,
        C2(:,I) = smooth(count(:,I));
    end
    %画图(原始数据、平滑后的数据)
    subplot(3,1,2)
    plot(count,':');
    hold on
    plot(C2,'-');
    title('Smooth C2 (Each Column)')
    %3°画出两次滑动后的数据的差值
    subplot(3,1,3)
    plot(C2 - C1,'o-')
    title('Difference C2 - C1')

    二、spcrv

    %20160518:spcrv函数
    %目前可最做到,对原来的曲线进行平滑
    %原理:增加点,平滑曲线
    %(自己感觉)效果:可以平滑,但是:1°无法获得平滑后的曲线方程   2°平滑前后,曲线的起始点,y值大小不同


    %% ------例子0----------------
    points=[0 0 1 1 0 -1 -1 0 0;0 0 0 1 2 1 0 -1 -2];
    figure(3)
    plot(points(1,:),points(2,:),':');
    values=spcrv(points,3);
    hold on;plot(values(1,:),values(2,:));hold off


    %% ------------例子1---------------------------
    x=[0 0.1 0.16 0.27 0.41 0.48 0.59 0.8];
    y=[5 9 70 118 100 17 0 5];
    y1=[22.8 22.8 22.8 22.8 22.8 22.8 22.8 22.8];
    values1=spcrv([[x(1) x x(end)];[y(1) y y(end)]],3,1000);
    values2=spcrv([[x(1) x x(end)];[y1(1) y1 y1(end)]],3,1000);
    plot(values1(1,:),values1(2,:),'r',values2(1,:),values2(2,:),'b')

    %% ----------------------例子2-----------------
    x1=[18.5931 19.2468 19.58193333 19.96586667 20.0985 20.2678 30.95973333];
    y=[3.66 7.15 11.74 21.53 31.24 60.51 86.5]
    values = spcrv([[x1(1) x1 x1(end)];[y(1) y y(end)]],3);
    plot(values(1,:),values(2,:),'k');

    展开全文
  • 基于MATLABGUI的谱线平滑处理第41 卷 第6 期 核 技 术 Vol.41, No.62018 年6 月 NU...

    基于MATLABGUI的谱线平滑处理

    第41 卷 第6 期 核 技 术 Vol.41, No.6

    2018 年6 月 NUCLEAR TECHNIQUES June 2018

    基于MATLAB GUI 的谱线平滑处理

    1,2 1 2 2 2 2 2 2

    陈 伟 莫 磊 周建斌 方 方 洪 旭 丁卫撑 喻 杰 周 伟

    1 (成都航空职业技术学院信息工程学院 成都 610100 )

    2 (成都理工大学核技术与自动化工程学院 成都 610059 )

    摘要 谱线平滑可以去除实测核能谱中的统计涨落并保留谱峰重要信息。首先介绍了高斯平滑和 Savitzky-

    Golay (SG)平滑的原理与实现方法,然后基于矩阵实验室图形界面开发环境(Matrix Laboratory Graphical User

    Interface, MATLAB GUI)设计了谱线分析工具,对谱数据进行在线实时和离线批量处理。最后对石墨预衍射X

    荧光分析仪实测的U 标准样数据作平滑分析,并引入相关系数来评价平滑效果。实验结果表明:当谱峰幅值

    较大时,高斯平滑的平滑度指标较好,当谱峰幅值较小时,SG 平滑显现优势;高斯平滑的参数设置较灵活,

    但运算较复杂,需用到矩阵计算,SG 平滑的算法较简洁,代码执行时间更短。因此,实际工程应用中,应综

    合考虑在维持较好平滑度和相关系数指标的情况下,合理选择平滑方法和参数。

    关键词 谱线平滑,平滑度,相关系数,MATLAB GUI

    中图分类号 TL311.1

    DOI: 10.11889/j.0253-3219.2018.hjs.41.060401

    Research on the spectrum smoothing method based on MATLAB GUI

    CHEN Wei1,2 MO Lei1 ZHOU Jianbin2 FANG Fang2 HONG Xu2 DING Weicheng2

    2 2

    YU Jie ZHOU Wei

    1(College of Information Engineering, Chengdu Aeronautic Polytechnic, Chengdu 610100, China)

    2(College of Nuclear Technology and Automation Engineering, Chengdu University of Technology, Chengdu 610059, China)

    Abstract [Background] Spectrum smoothing can remove the statistical fluctuations in the measured energy

    spectrum and retain important information of the spectral peaks. Each spectrum

    展开全文
  • 光谱测量数据处理matlab

    千次阅读 多人点赞 2020-10-31 22:54:45
    光谱测量数据处理matlab) 一、数据格式 二、数据处理 2.1 数据导出 2.2 数据处理 2.3 处理结果 三、地物光谱特征分析 3.1 光谱曲线平滑 3.2 光谱曲线一阶导数


    一、数据格式

    导出文件:

    在这里插入图片描述

    文件内容:

    在这里插入图片描述

    内容说明:

    Columnname
    1Wavelengths (nanometers)
    2Reference Values (see below)
    3Target Values (see below)
    4Reflectance (percent)

    二、数据处理

    2.1 数据导出

    将光谱仪测的不同地物的光谱数据以SVC软件中导出到计算机中,并按不同地物类型存储在不同Excel表格中。

    2.2 数据处理

    (一)原理公式

    在这里插入图片描述
    实验采用垂直测量方法,计算公式为

    在这里插入图片描述
    式中,L——测得地物反射辐射通量,Rr 为白板反射率(已知) ; Lr 为测得白板反射辐射能量;

    (二)处理步骤

    Step1:共100多组数据,观察每个数据的图片结合实地记录筛选可以利用的数据

    Step2:由于仪器光谱突变,将筛选好的数据进行在SVC HR软件中的平滑操作(overlay)

    Step3:将处理后的数据去除文件头,生成裸数据并保存到txt文本文件中

    Step4:求每类地物的光谱数据平均值,生成每类地物的光谱数据

    Step5:由于白板反射率波段和每类地物的光谱波段不匹配,对实测数据进行插值

    Step6:根据反射率公式选取文件中第四列数据(百分比)与白板反射率的相乘操作

    Step7:根据不同需要进行制图输出

    (三)matlab处理代码

    %----------------------------------------------------------------
    %光谱处理代码
    %
    %时间:2019619%----------------------------------------------------------------
    %去除文件头代码
    %输入.sig文件
     fileFolder=fullfile('E:\2019-06-11-下');
     %引号内是需要遍历的路径,填绝对路径,然后保存在fileFolder
     dirOutput = dir(fullfile(fileFolder,'*.sig'));
     %引号内是文件的后缀,写'.txt'则读取后缀为'.txt'的文件
     fileNames = {dirOutput.name};
     %将所有文件名,以矩阵形式按行排列,保存到fileNames中
     
     for i=fileNames
         i_trace = strcat('E:\2019-06-11-下\',i)%将字符串组合起来
         i_trace=char(i_trace)
         i=char(i)
         ind=findstr(i-1,'.');
         i=i(1:ind)
         M = dlmread(i_trace,'',25,0)
         i_trace_txt=strcat('E:\2019-06-11-下\',i,'txt')
         %num1, num2, num3, num4]=textread(i_trace,'%f %f %f f','headerlines',29);
         % A={num1,num2,num3,num4};
         % eval(['T',num2str(n),'=','load(i_trace{1,1})',';']);
         dlmwrite(i_trace_txt, M, 'delimiter', '\t','precision', 6,'newline', 'pc')
        
     end
    
    %生成平均值代码
     clc;
     clear all;
     close all;
     fileFolder=fullfile('E:\txt\柏油路');
     %引号内是需要遍历的路径,填绝对路径,然后保存在fileFolder
     dirOutput=dir(fullfile(fileFolder,'*.txt'));
     %引号内是文件的后缀,写'.txt'则读取后缀为'.txt'的文件
     fileNames={dirOutput.name};
     %将所有文件名,以矩阵形式按行排列,保存到fileNames中
     sumM = zeros(741,2);
    
     for i=fileNames
         i
        i_trace = strcat('E:\txt\柏油路\',i); %将字符串组合起来
         i_trace=char(i_trace);
         i = char(i);
         ind=findstr(i,'.');
         i=i(1:ind-1);
         M = dlmread(i_trace,'',0,0);
         sumM(:,1) = M(:,1);
         sumM(:,2) = sumM(:,2) + M(:,4);
         %i_trace_txt=strcat('E:\2019-06-11-下\ave.txt''.txt');
         %dlmwrite(i_trace_txt, M, 'delimiter', '\t','precision', ,'newline', 'pc') 
     end
     sumM;
     aveM(:,1)=sumM(:,1);
     aveM(:,2)=sumM(:,2)/11.0;
     aveM
     save('E:\txt\柏油路\ave.txt','aveM','-ascii');
    
    %插值以及计算反射率代码
    clc;
    clear all;
    close all;
    fileName='E:\txt\110-116   118-121小路\ave.txt';
    [Target_Lambda,Target_Percent]=textread('E:\txt\110-116   118-121小路\ave.txt','%f %f','headerlines',0);
    % M = dlmread('E:\txt\柏油路\ave.txt','',0,0)
    % title('柏油路光谱曲线',);
    [Whiteboard_Lambda,Whiteboard_Reflectance]= textread('E:\白板定标文件.txt',' %f %f','headerlines',10);
    Target_interp = interp1(Target_Lambda,Target_Percent,Whiteboard_Lambda);
    Target_Reflectance=Target_interp.*Whiteboard_Reflectance;
    A=zeros(957,2);
    A(:,1)=Whiteboard_Lambda;
    A(:,2)=Target_Reflectance;
    save('E:\txt\110-116   118-121小路\光谱曲线.txt','A','-ascii');
    
    

    处理后导出数据

    %制图输出
     figure,
     plot(Whiteboard_Lambda,Target_Reflectance);
     hold on;
     plot(Whiteboard_Lambda,Target_interp);
     legend('柏油路反射率','柏油路百分比原图像', 'Location', 'SouthEast');
     xlabel('波段(nm)','fontsize',12,'fontweight','bold','color','b');
     ylabel('反射率/百分比(%)','fontsize',12,'fontweight','bold','color','b');
     title('柏油路反射率和百分比','fontsize',15,'fontweight','bold');
     grid on;
     figure,
     plot(Whiteboard_Lambda,Target_Reflectance);
     % legend('柏油路反射率', 'Location', 'SouthEast');
     xlabel('波段(nm)','fontsize',12,'fontweight','bold','color','b');
     ylabel('反射率(%)','fontsize',12,'fontweight','bold','color','b');
     title('柏油路反射率','fontsize',15,'fontweight','bold');
     grid on;
    

    2.3 处理结果

    在这里插入图片描述

    三、地物光谱特征分析

    3.1 光谱曲线平滑

    (一)处理代码

    % smooths平滑操作代码
    Reflectance_Smooth = smooth(Target_Reflectance,30,'lowess');
    figure,
    plot(Whiteboard_Lambda,Reflectance_Smooth);
    

    (二)处理结果

    在这里插入图片描述

    3.2 光谱曲线一阶导数

    (一)处理代码

    % 一阶导数代码
    figure,
    plot(Whiteboard_Lambda,Reflectance_Smooth);
    h=get(gca,'children')
    x = get(h,'XData');
    y = get(h,'YData');
    dy = diff(y) ./ diff(x);
    axis tight;
    plot(x(1:end-1),dy,'r')
    xlabel('波段(nm)','fontsize',12,'fontweight','bold','color','b');
    ylabel('导数','fontsize',12,'fontweight','bold','color','b');
    title('柏油路反射率:一阶导数','fontsize',15,'fontweight','bold');
    % legend('柏油路反射率:一阶导数');
    grid on; 
    

    (二)处理结果

    在这里插入图片描述

    展开全文
  • 自己常用的程序 解压直接可用,各种光谱数据预处理代码matlab 预处理 光谱数据 平滑求导 中心化散射校正
  • 几个可选的子例程可用,包括棚车平滑,基于色差的温度校正,基于波长窗口优化的误差最小化和自动旋转功能,可以校正入射光与光谱仪狭缝不正交。 未来的改进包括:使软件尽可能地独立于硬件,提高代码的注释和效率,...
  • 使用matlab光谱数据取平均

    千次阅读 多人点赞 2019-12-10 17:18:49
    处理光谱数据时由于外界因素造成测量光谱的稳定性,为了获得更精准和较好的数据我们需要对光谱数据取平均,本脚本就可实现对光谱数据每隔K列取一次平均。 (不需要修改代码,运行以后只需要按照弹出的界面输入值...
  • 数据预处理 1 剔除异常值及平滑处理 测量数据在其采集与传输过程中 由于环境干扰或人为因素有可 能造成个别数据不切合实际或丢失 这种数据称为异常值 为了恢复 数据的客观真实性以便将来得到更好的分析结果 有必要...
  • Matlab,SG滤波器

    2021-04-20 03:41:06
    该楼层疑似违规已被系统折叠隐藏此楼查看此楼functionY=fpeaks%fpeaks函数,生成高斯峰信号,返回一个总的模拟信号向量Peaks=load('peaks.txt');...
  • 几种常用信号平滑去噪的方法(附Matlab代码)

    万次阅读 多人点赞 2020-07-31 20:44:36
    几种常用信号平滑去噪的方法(附Matlab代码)1 滑动平均法1.0 移动平均法的方法原理1.1 matlab内自带函数实现移动平均法1.2 利用卷积函数conv()实现移动平均法1.3 利用filter滤波函数实现移动平均法1.4 移动平均的...
  • 光谱预处理算法(matlab版本)

    千次阅读 2021-11-08 11:37:48
    近红外光谱分析技术属于交叉领域,需要化学、计算机科学、生物科学等多领域的合作。为此,在(北邮邮电大学杨辉华老师团队)指导下,近期准备开源传统的pls,svm,ann,rf等经典算法,以及sg,msc,一阶导,二阶导等...
  • matlab光谱预处理

    千次阅读 2018-03-30 11:56:00
    1.1mapminmax处理,按行逐行将数据归一化到-1-1,若6次采集的549波段的高光谱数据,如矩阵A为549*6,直接mapminmax(A),表示对于每一个波段,将不同批次采集的数据归一化,消除掉采集时外界因素对单波段的影响;...
  • 平滑滤波是光谱分析中常用的预处理方法之一,处理的方法有很多,这里我们使用make_interp_spline插值法对折线图进行平滑处理。 官方帮助文档:scipy.interpolate.make_interp_spline 处理前的图 处理后的图 源码...
  • 采用傅里叶变换进行平滑操作 clc close all; clear all; I = imread('Rice.png'); c = imhist(I); plot(c, 'b'); %直方图,蓝色 cf = fft(c); cf1 = cf; cf1(11:256-9) = 0; cr1 = ifft(cf1); hold on; plot(cr1, ...
  • MATLAB光谱图像处理基础

    千次阅读 2021-03-11 13:17:10
    介绍高光谱图像的基本知识,便通过MATLAB对高光谱图像进行基本的处理。 文章目录前言一、高光谱图像二、MATLAB光谱图像处理1.加载.MAT文件数据2.图像的显示3.图像维度变换总结 前言 高光谱图像是一个立方体结构...
  • SVC便携式光谱仪测量数据处理 上图为svc光谱仪,参数如下: 一、去除测量光谱数据文件头 %去除文件头代码 clear; clc; %输入.sig文件 fileFolder=fullfile('F:\_test\大叶子\'); %引号内是需要遍历的路径,填...
  • 光谱图像处理之目标检测技术一、高光谱图像处理之目标检测1、高光谱图像目标检测的发展趋势和研究现状: 20世纪80年代末,美国的一些研究机构开始利用高光谱图像数据进行目标检测方面的研究。自上世纪九十年代,...
  • sm4datapreview 读取活动目录中的 .sm4 文件,并通过存储在文件中的第一个 IV 和/或 dIdV 曲线生成具有(平坦化)地形扫描和(平滑化)光谱数据的空间数据的 .png 预览。 该程序旨在帮助我们进行数据存档,特别是在...
  • matlab 怎样画颜色渐变曲线

    万次阅读 2012-10-26 00:47:07
    t=[linspace(0,2*pi) nan]; x=sin(t);y=cos(2*t);z=sqrt(t);%所要绘制的曲线方程 patch(x,y,z,z,'edgecolor','flat','facecolor','none') view(3);grid on;colorbar
  • 基于Matlab的图像增强(三)

    千次阅读 2020-12-01 22:03:06
    2.图像的频率域处理 2.1图像的频率域平滑 2.1.1理想低通滤波器(ILPF) 2.1.2Butterworth低通滤波器 2.1.3指数低通滤波器(ELPF) 2.1.4梯形低通滤波器(TLPF) 2.2图像的频率域锐化 2.2.1理想高通滤波器(IHPF) 2.2.2...
  • 1.1 数据预处理(平滑

    千次阅读 2020-07-19 12:19:29
    一.主要内容: 1.数据的平滑处理 2.数据的标准化处理 ...数据的平滑处理,主要用到MATLAB的smooth函数。 原理(以yy=smooth(y);举例): yy(1)=y(1) yy(2)=(y(1)+y(2)+y(3))/3 yy(3)=(y(1)+y(2)+y(3)+
  • 近红外光谱基线校正---drPLS

    千次阅读 2020-04-26 16:57:14
    本期介绍的近红外光谱基线校正算法来自于 中南大学的阳春华老师 于2019年发表的论文,题目是:Baseline correction method based on doubly reweighted penalized least squares ,论文下载链接百度文库或者...
  • 空间曲线 例:求方程组的空间曲线 1。化为参数方程组 x=t y=sqrt[t(1-t)] z=sqrt[1-x^2-y^2] 2。 程序 t=0:0.001:1; x=t; y=sqrt(t.*(1-t)); z=sqrt(1-x.^2-y.^2); plot3(x,y,z,z,-y,z) 其中.*为数组相乘,.^为数组...
  • 空间曲线 例:求方程组的空间曲线 1。化为参数方程组 x=t y=sqrt[t(1-t)] z=sqrt[1-x^2-y^2] 2。 程序 t=0:0.001:1; x=t; y=sqrt(t.*(1-t)); z=sqrt(1-x.^2-y.^2); plot3(x,y,z,z,-y,z) 其中.*为数组相乘,.^为数组...
  • matlab中做数据拟合是非常常见的事,而又以多项式拟合最为常用,下面简单介绍一下常见的多项式拟合的方法: 多项式拟合 1. 多项式拟合命令 x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 8 5 2 4 10 30]; %导入拟合的...
  • 在元音和响辅音的产生中,声源谱经过声腔的调制,原来谐波振幅不再随频率的升高而依次递减,而是有的加强,有的减弱,形成有起伏的新的包络曲线曲线峰巅位置的频率值和声腔共鸣频率是一致的。就元音来说,头三个...
  • ENVI5.3新特性介绍

    千次阅读 2018-07-20 16:31:16
    在ENVI5.3版本中,支持更多的传感器和数据格式,新增和改进图像处理算法,更加人性化操作界面,面向对象特征提取工具FX整合激光雷达处理功能,与ArcGIS一体化集成,全新的摄影测量扩展模块,更方便快捷ENVI二次开发...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 155
精华内容 62
关键字:

matlab光谱曲线平滑处理

matlab 订阅