精华内容
下载资源
问答
  • 今天的作业是求两幅图像的MSE、SNR、PSNR、SSIM.代码如下: clc; close all; X = imread('q1.tif');% 读取图像 Y=imread('q2.tif'); figure;% 展示图像 subplot(1, 3, 1); imshow(X); title('q1...

      今天的作业是求两幅图像的MSE、SNR、PSNR、SSIM.代码如下:

    clc;
    close all;
    X = imread('q1.tif');%             读取图像
    Y=imread('q2.tif');
    figure;%                           展示图像
    subplot(1, 3, 1); imshow(X); title('q1');
    subplot(1, 3, 2); imshow(Y); title('q2');
    %                                  使得图像每个像素值为浮点型
    X = double(X); 
    Y = double(Y); 
    
    A = Y-X;
    B = X.*Y;
    subplot(1,3,3);imshow(A);title('作差');
    MSE = sum(A(:).*A(:))/numel(Y);%  均方根误差MSE,numel()函数返回矩阵元素个数
    SNR = 10*log10(sum(X(:).*X(:))/MSE/numel(Y));%信噪比SNR
    PSNR = 10*log10(255^2/MSE);%      峰值信噪比PSNR
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %以下为结构相似度SSIM
    ux=sum(X(:).*X(:))/numel(X);
    uy=sum(Y(:).*Y(:))/numel(Y);
    sigmoidx=sum(X(:).*X(:)-ux)/numel(X);
    sigmoidy=sum(Y(:).*Y(:)-uy)/numel(Y);
    sigmoidxy=sum(B(:).*B(:))/(numel(B)*ux*uy)-ux*uy;
    SSIM=(2*ux*uy)*(2*sigmoidxy)/(ux*ux+uy*uy)/(sigmoidx*sigmoidx+sigmoidy*sigmoidy);
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    display(MSE);%均方根误差MSE
    display(SNR);%信噪比SNR
    display(PSNR);%峰值信噪比PSNR
    display(SSIM);%结构相似性SSIM
    

      接下来,让我们看一下代码的输出。

     

    MSE =153.6263
    
    SNR =19.7617
    
    PSNR =26.2661
    
    SSIM =-1.5281e+26
    

      

     

      根据观察,两幅图像可能来自于连拍,图片中的内容几乎完全一致。仅仅是对应的像素点产生了偏移。上图图三反应的是两幅图像作差以后的结果。根据均方根误差MSE,我们发现从数据上两幅图存在有巨大差异。这显然不符合我们的观察。作为图像质量评价指标,客观评价MSE与人眼的主观判断产生出入,这说明MSE并不是一个合适的指标。原因是:MSE指标的核心在于两幅图像相应像素点之间差值的平方和。这直接导致了该指标对于图像的空间分布没有“全局”认识,而只是局限于单纯的像素“个体”。

      而SNR和PSNR,在本例中取得了较好的效果。不过,个人认为在高熵图像中容易失效,在具有足够多中心点的着色过的Vornoi图和其平移图像中,SNR和PSNR将会难有成效。

      对于SSIM,SSIM综合考虑了两幅图像的均值、方差,以及他们的协方差,从而在本例中取得了非常好的效果。

    2019-03-04

    23:14:07

    转载于:https://www.cnblogs.com/lyxyhhxbk/p/10474055.html

    展开全文
  • 使用matlab分析一段声音信号的均方根

    千次阅读 热门讨论 2020-02-22 07:12:13
    均方根值(RMS)也称作为效值,它的计算方法是先平方、再平均、然后开方。本文给出了matlab实现它的代码,并不是直接调用函数,所以非常易读。

    最近需要对一段声音信号(0.1秒采集一次)进行分析,用到了均方根。

    先看结果,如下图所示,位于上方的是原始波形,一共1600多个点,位于下方的是均方根之后的波形,一共160多个点,每10个点取均方根。

    什么是均方根,它的物理意义是什么?

    均方根值(RMS)也称作为效值,它的计算方法是先平方、再平均、然后开方。如下图所示。它的物理意义是表达有效值比平均值更加合理,比如幅度为100V而占空比为0.5的方波信号,如果按平均值计算,它的电压只有50V,而按均方根值计算则有70.71V。

    参考:均方根值一般在什么情况下取,有何意义?

    算法分析:每隔固定的点数,将每个点求平方,然后都加起来,将累加之和除以点数,再开方。

    下面使用matlab采用编程的方式实现这个过程

    fid = fopen('e:/test/16.txt');%读取声音文件
    format = '%d';%整数形式
    y = fscanf(fid,format);%将文件内容放进数组
    n=length(y);%获取数组长度
    test= y-mean(y);%减去平均值
    
    n_junf=round(n/10)-1;%这个数字是最大可以显示的,否则可能显示不出来,必须减去1
    for i=1:n_junf-1;
    youxiao(i)= sum(test((i*10+1):(i*10+10)).^2)  %这是求平方和
    end;
    youxiao=sqrt(youxiao);%开方
    subplot(2,1,1);plot(test,'-+');grid;%显示原始数据
    
    subplot(2,1,2);plot(youxiao);grid; %显示均方根数据

    运行结果如下:

     

    展开全文
  • 时域计算代码相对简单,下列代码主要来自求助matlab时域分析程序-峰值、均方根、裕度、峭度_百度知道。不过原文中求“峭度因子”的方法不对,即“Kr = sum(y.^4)/sqrt(sum(y.^2)))”,求峭度直接用函数kurtosis就行...

    时域计算代码相对简单,下列代码主要来自求助matlab时域分析程序-峰值、均方根、裕度、峭度_百度知道。不过原文中求“峭度因子”的方法不对,即“Kr = sum(y.^4)/sqrt(sum(y.^2)))”,求峭度直接用函数kurtosis就行。

    %x=0:0.1:2*pi;
    %y=sin(x);			%信号
    y=normrnd(600,1,1000,1);   %生成平均值为600,标准差为1的1000*1的矩阵
    plot(y);
    ma = max(y); 			%最大值
    mi = min(y); 			%最小值	
    me = mean(y); 			%平均值
    pk = ma-mi;			%峰-峰值
    av = mean(abs(y));		%绝对值的平均值(整流平均值)
    va = var(y);			%方差
    st = std(y);			%标准差
    ku = kurtosis(y);		%峭度
    sk = skewness(y);               %偏度
    rm = rms(y);			%均方根
    S = rm/av;			%波形因子
    C = pk/rm;			%峰值因子
    I = pk/av;			%脉冲因子
    xr = mean(sqrt(abs(y)))^2;
    L = pk/xr;			%裕度因子

    原始信号为平均值为600,标准差为1的数列:

    计算结果为:

    关于均方根、峰值因子、脉冲因子、裕度因子、峭度因子、波形因子和偏度等概念的理解可以参考我之前的文章信号的各种时域分析方法的理解(峰值因子、脉冲因子、裕度因子、峭度因子、波形因子和偏度等)

    欢迎关注我的专栏与信号处理有关的那些东东

    文章如要转载请私信与我联系,并注明来源知乎专栏与信号处理有关的那些东东作者Mr.括号。

    展开全文
  • 实现matlab编程实现关于图像处理的一些简单的操作,加深对图像处理后图像性能评估的理解:  clc; close all; X = imread('1.jpg'); X=rgb2gray(X); Y=X; Y = imnoise(Y, 'salt & pepper');%添加椒盐...

    实现matlab编程实现关于图像处理的一些简单的操作,加深对图像处理后图像性能评估的理解: 

    1. clc; close all;
    2. X = imread('1.jpg');
    3. X=rgb2gray(X);
    4. Y=X;
    5. Y = imnoise(Y, 'salt & pepper');%添加椒盐噪声,也可以改成其他噪声
    6. A=fspecial('average',3); %生成系统预定义的3X3滤波器  
    7. Z=filter2(A,Y)/255; %均值滤波
    8.  
    9. %Z=medfilt2(Y,[3,3]);%中值滤波
    10. %A=fspecial('gaussian'); %高斯滤波卷积核
    11. %Z=filter2(A,Y)/255;   %用生成的高斯序列进行滤波
    12.   
    13. figure; 
    14. subplot(1, 3, 1); imshow(X); title('原图像');
    15. subplot(1, 3, 2); imshow(Y); title('加噪声图像');
    16. subplot(1, 3, 3); imshow(Z); title('滤波后图像');
    17.  
    18. X = double(X);  
    19. Z = double(Z);  
    20.  
    21. D = Z-X;
    22. MSE = sum(D(:).*D(:))/numel(Z);%均方根误差MSE
    23. PSNR = 10*log10(255^2/MSE);%峰值信噪比
    24. MAE=mean(mean(abs(D)));%平均绝对误差
    25.  
    26. w = fspecial('gaussian', 11, 1.5);  %window 加窗  
    27. K(1) = 0.01;                      
    28. K(2) = 0.03;                      
    29. L = 255;       
    30. Z = double(Z);  
    31. X = double(X);  
    32. C1 = (K(1)*L)^2;  
    33. C2 = (K(2)*L)^2;  
    34. w = w/sum(sum(w));  
    35. ua   = filter2(w, Z, 'valid');%对窗口内并没有进行平均处理,而是与高斯卷积,  
    36. ub   = filter2(w, X, 'valid'); % 类似加权平均  
    37. ua_sq = ua.*ua;  
    38. ub_sq = ub.*ub;  
    39. ua_ub = ua.*ub;  
    40. siga_sq = filter2(w, Z.*Z, 'valid') - ua_sq;  
    41. sigb_sq = filter2(w, X.*X, 'valid') - ub_sq;  
    42. sigab = filter2(w, Z.*X, 'valid') - ua_ub;  
    43. ssim_map = ((2*ua_ub + C1).*(2*sigab + C2))./((ua_sq + ub_sq + C1).*(siga_sq + sigb_sq + C2));  
    44. MSSIM = mean2(ssim_map);  
    45.  
    46. display(MSE);%均方根误差MSE
    47. display(PSNR);%峰值信噪比
    48. display(MAE);%平均绝对误差
    49. display(MSSIM);%结构相似性SSIM

    另外,常用于图像质量评价方法有:信噪比、峰值信噪比和结构相似性。

    均方根误差

    均方根误差在图像的质量评价中相当于一个中间的评价指标,很多后续的评价指标都是沿用均方根误差。均方根误差主要是评价已知图像和退化图像之间误差大小。其实这个指标跟最小二乘的原理多少有些类似,也跟统计知识的误差统计求标准差和方差是一样的。

    其基本公式为:

    RMSE = sqrt(1/mn * E(I - F))

    其中,E(I - F) 是退化图像与真实图像之间每个像素的差值的平方和

    峰值信噪比

    一般峰值信噪比在图像的评价中使用的较多,公式为:

    其中,MN是图形的大小,M*Nf 是真实图像,f∧是退化图像

    结构相似度

    结构相似度(SSIM)是来源于结构相似理论,用来测量两幅图像的结构相似性大小,其最大值为1。尤其反映了图像的轮廓,细节等的相似度。结构相似度可以表示为:

    其中,l()表示亮度变化,c()表示差异变化,s()是结构变化。

    其中,表示两幅图像,uf 和 ug 表示图像的均值,σf和σg 表示它们的方差,σfg表示它们的协方差。C1,C2,C3为比较小的常数,用来确保分母不等于零。

    展开全文
  • MATLAB求解峰值、均值、平均幅值、方差、均方根、方根幅值、最值、峭度、斜度、裕度指标、波形指标、脉冲指标、峰值指标、峭度指标 朋友给了份文档,要求计算标题上的这些值,原本计划用Python计算,奈何还不是太...
  • 基于UKF的匀速直线运动仿真及误差分析,提供了详细的基于matlab代码和运行结果分析
  • 误差分析计算公式及matlab代码实现(均方误差MSE,平均绝对误差MAE,平均绝对百分比误差MAPE,均方百分比误差MSPE,均方根误差RMSE,残差平方和SSE)
  • matlab实现频谱分析代码。用Matlab产生正弦波,矩形波,以及白噪声信号,并显示各自...3.做出上述三种信号的均方根图谱,功率图谱,以及对数均方根图谱 4.用IFFT傅立叶反变换恢复信号,并显示恢复的正弦信号时域波形图
  • 残差平方和(SSE) 计算公式: 代码实现: sse = sum((YReal - YPred).^2); 均方误差(MSE) 计算公式: 代码实现: mse = sqrt(sum((YReal - YPred).^2))./2;...代码实现: ...代码实现 ...均方根误差(R
  • 时域特征值的代码实现可以参考:时域特征值提取的MATLAB代码实现(均方根、峰值因子、脉冲因子、裕度因子、峭度因子、波形因子和偏度等) 文章如要转载请私信与我联系,并注明来源知乎专栏与信号处理有关的那些东东...
  • 解答:采用贝叶斯正则化算法‘trainbr’训练BP网络,目标误差goal=1×10^-3,学习率lr=0.05,最大迭代次数epochs=500,拟合附加有白噪声的正弦样本数据,拟合数据均方根误差为0.0054,拟合后的图形用以下代码可以得出...
  • 一、网络结构 三层网络结构,输入层->...选择损失函数为均方根损失函数 链式法则计算损失到各个权值的偏导 隐层 -> 输出层 ϑEϑWij=ϑEϑOutoi∗ϑOutoiϑInoi∗ϑInoiϑWij=−(targetoi−outoi)∗o...
  • 计算机实习报告 MATLAB 对卡尔曼滤波的仿真实现 MATLAB 对卡尔曼滤波的仿真实现 实验目的 基于卡尔曼滤波原理...2用均方根误差评价算法的精度均方根误差定义为 M为仿真次数k为离散时间点的索引值为第j次仿真时第K拍的
  • 误差分析计算公式及matlab代码实现(均方误差MSE,平均绝对误差MAE,平均绝对百分比误差MAPE,均方百分比误差MSPE,均方根误差RMSE,残差平方和SSE)
  • 计算均方根误差; 计算峰值信噪比; 进行结果输出; 三、设计与实现: 设计思路: 加载路径,包括函数文件路径和文件夹目录路径; 对所要评价的图片进行读取; 编写MSE函数,进行计算均方根误差,函数主要思想是...
  • 基于python与matlab的TOA定位算法性能仿真仿真要求仿真方案的设计matlab仿真代码python仿真代码仿真结果 仿真要求 要求一:编写两个函数TOA_LLOP和TOA_CHAN得到...求均方根误差 函数toallop 取出矩阵的行数、列数 将矩
  • 容积卡尔曼滤波(Cubature Kalman filtering)的Matlab例子,可以正常运行,还有用于多维的例子,以及均方根容积卡尔曼滤波的程序将在以后上传。。。
  • %trainRMSE:模型对训练数据的均方根误差 %testRMSE:模型对测试数据的均方根误差 %最后输出模型对测试数据的拟合图 %说明: %由于交叉验证的原因,对不用的测试数据分组不同,所以n也有不同 clear all fid=fopen; ...
  • %trainRMSE:模型对训练数据的均方根误差 %testRMSE:模型对测试数据的均方根误差 %最后输出模型对测试数据的拟合图 %说明: %由于交叉验证的原因,对不用的测试数据分组不同,所以n也有不同 clear all fid=fopen; ...
  • 粒子滤波算法

    2017-12-24 12:46:10
    利用粒子滤波算法跟踪平面内一个点目标,并且给出了详细的matlab代码,以及均方根误差分析
  • 2dof_suspension.rar

    2020-04-23 15:54:00
    matlab代码给出了簧载质量、非簧载质量在随机路面输入下的振动响应,也包含了车身加速度、悬架动挠度、相对动载荷的频响函数分析,最后还给出了加权加速度均方根值的计算方法。要先加载key.mat才能运行simulink模型...
  • 基于FFT的信号频谱分析

    千次阅读 2019-08-30 10:47:31
    做出两种种信号的均方根图谱,功率图谱,以及对数方均根图谱。 用IFFT傅里叶反变换恢复信号,并显示时域波形图 正弦波的信号频谱分析 正弦波源代码 clear all clc %*************************生成正弦信号************...
  • 两序列皮尔逊互相关系数计算

    千次阅读 2019-01-27 10:52:21
    在信号去噪处理中,通常可以使用 信噪比、均方根误差、互相关系数 来评估去噪信号与原始信号的相似程度。  互相关系数计算公式:    matlab代码实现: %////////////////////////// 方法一 /////////////////...
  • 快速便捷地移动光标,包括变化量,均方根值,均值,y / x和 幅度读数。 H。支持子图,每个子图都有单独的光标控制和读出功能。 一世。峰/谷查找器,显示扩展历史记录和度量标准前缀。 j。具有可选颜色和...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

matlab均方根代码

matlab 订阅