精华内容
下载资源
问答
  • matlab 高斯回归函数

    2014-02-20 19:56:44
    MATLAB 用的高斯回归分析的工具箱 可以训练之后预测 添加到path里之后就可以用了。
  • 一个画高斯三维图像的matlab脚本文件,可以画出漂亮的图像
  • 工业煤气基于 MATLAB 仿真的泄漏扩散影响研究 摘要本文的研究目的是研究企业范围空间煤气泄漏的扩散规律和影响范围 采用 matlab 模拟煤气泄漏后 CO 的浓度分布和扩散距离规律通过建立煤气泄 漏扩散数学模型, 对其...
  • 满意答案lszfowc4702014.08.13采纳率:43%等级:13已帮助:29031人matlab中有自带的高斯滤波函数h = fspecial('gaussian', hsize, sigma),其中hsize是滤波器尺寸,sigma是标准差。若要自己实现的话:function h = ...

    满意答案

    02ae427d08e371d7e90d5b995e828d6d.png

    lszfowc470

    2014.08.13

    02ae427d08e371d7e90d5b995e828d6d.png

    采纳率:43%    等级:13

    已帮助:29031人

    matlab中有自带的高斯滤波函数h = fspecial('gaussian', hsize, sigma),其中hsize是滤波器尺寸,sigma是标准差。

    若要自己实现的话:

    function h = gau_fil( hsize, sigma)

    siz = (hsize-1)/2;

    [x,y] = meshgrid(-siz(2):siz(2),-siz(1):siz(1));

    arg = -(x.*x + y.*y)/(2*sigma*sigma);

    h = exp(arg);

    h(h

    sumh = sum(h(:));

    if sumh ~= 0,

    h = h/sumh;

    end;

    end

    调用时在command window输入:(例如大小为3*3,标准差1)

    gau_fil([3 3], 1)

    得到结果:

    ans =

    0.0751 0.1238 0.0751

    0.1238 0.2042 0.1238

    0.0751 0.1238 0.0751追答:

    追答:

    00分享举报

    展开全文
  • MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1. WGN:产生高斯白噪声  y = wgn(m,n,p) 产生一个m行n列的...
        
    MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。
    1. WGN:产生高斯白噪声 
    y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。 
    y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗。 
    y = wgn(m,n,p,imp,state) 重置RANDN的状态。
    在数值变量后还可附加一些标志性参数: 
    y = wgn(…,POWERTYPE) 指定p的单位。POWERTYPE可以是'dBW', 'dBm'或'linear'。线性强度(linear power)以瓦特(Watt)为单位。 
    y = wgn(…,OUTPUTTYPE) 指定输出类型。OUTPUTTYPE可以是'real'或'complex'。
    2. AWGN:在某一信号中加入高斯白噪声 
    y = awgn(x,SNR) 在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。 
    y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为'measured',则函数将在加入噪声之前测定信号强度。 
    y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN的状态。 
    y = awgn(…,POWERTYPE)指定SNR和SIGPOWER的单位。POWERTYPE可以是'dB'或'linear'。如果POWERTYPE是'dB',那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是'linear',那么SNR作为比值来度量,而SIGPOWER以瓦特为单位。
    注释 
    1. 分贝(decibel,dB):分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB),用待表示的量与参考值之比取对数,再乘以20作为电平的分贝数(功率的电平值改乘10)。 
    2. 分贝瓦(dBW, dB Watt):指以1W的输出功率为基准时,用分贝来测量的功率放大器的功率值。 
    3. dBm (dB-milliWatt):即与1milliWatt(毫瓦)作比较得出的数字。 
    0 dBm = 1 mW 
    10 dBm = 10 mW 
    20 dBm = 100 mW 
    也可直接用randn函数产生高斯分布序列,例如:

    程序代码
    y=randn(1,2500); 
    y=y/std(y); 
    y=y-mean(y); 
    a=0.0128; 
    b=sqrt(0.9596); 
    y=a+b*y;

    就得到了 N ( 0.0128, 0.9596 ) 的高斯分布序列
    产生指定方差和均值的随机数
    设某个随机变量x均值为mu,方差为var^2,若要产生同样分布的随机变量y,但使新的随
    机变量参数改变,均值为mu_1,方差为var_1^2,可以用如下公式进行变换:
    y=var_1/var*(x-mu)+mu_1,其中x为随机变量,其余为常数(原分布参数)。
    具体到正态分布,若要产生均值为u,方差为o^2的M*N的随机数矩阵,可以用
    y=o*randn(M,N)+u得到。
    对于均匀分布,若要产生[a,b]区间的均匀分布的M*N的随机数矩阵,则可以用
    y=rand(M,N)*(b-a)+a得到。
    %===========================================================%
    上述资料基本上完整地描述了原始问题,不过有几点内容附带说明一下:
    1. 首先更正一个错误,我认为在“生成N ( 0.0128, 0.9596 ) 的高斯分布序列”的程序中,应该改为以下的代码:

    程序代码
    y=randn(1,2500); 
    y=y-mean(y); 
    y=y/std(y); 
    a=0.0128; 
    b=sqrt(0.9596); 
    y=a+b*y;
    2. 上面资料最后部分隐含了一个出自zhyuer 版友的结论:
    %==========================zhyuer===================================%
    1)         rand产生的是[0,1]上的均匀分布的随机序列
    2)         randn产生均值为0,方差为1的高斯随机序列,也就是白噪声序列;
    %===================================================================%
    也就是说,可以直接使用上面两个函数对原始信号添加噪声(例如y=x+rand(length(x),1)或者y=x+randn(length(x),1))
    3.事实上,无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。即,wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。下面就我熟悉的“向已知信号添加某个信噪比(SNR)的高斯白噪声”来说明一下,不过如果大家阅读过awgn的实现代码就不用看下去了,呵呵。从上述可知,这个任务可以使用awgn函数实现,具体命令是:awgn(x,snr,’measured’,'linear’),命令的作用是对原信号f(x)添加信噪比(比值)为SNR的噪声,在添加之前先估计信号f的强度。这里涉及三个问题:在awgn这个函数中,SNR是如何计算的?什么是信号的强度?awgn函数具体是如何添加噪声的?事实上,前两个问题是相关的,因为根据定义,SNR就是信号的强度除以噪声的强度,所以,首先来讲讲信号的强度。其实信号的强度指的就是信号的能量,在连续的情形就是对f(x)平方后求积分,而在离散的情形自然是求和代替积分了。在matlab中也是这样实现的,只不过多了一个规范化步骤罢了:
        sigPower = sum(abs(sig(:)).^2)/length(sig(:))
    这就是信号的强度。至此,SNR的具体实现也不用多说了(注:由于采用的是比值而非db,所以与下面“计算信噪比”所使用的方式不同,即没有求对数步骤)。
    最后说说awgn函数具体是如何添加噪声的。事实上也很简单,在求出f的强度后,结合指定的信噪比,就可以求出需要添加的噪声的强度noisePower=sigPower/SNR。由于使用的是高斯白噪声即randn函数,而randn的结果是一个强度为1的随机序列(自己试试sum(randn(1000,1).^2)/1000就知道了,注意信号的长度不能太小)。于是,所要添加的噪声信号显然就是:sqrt(noisePower)*randn(n,1),其中n为信号长度。
    展开全文
  • 文章目录前言一、空域卷积二、频域滤波三,高斯函数四,matlab代码高斯函数空域卷积高斯函数频域卷积总结 前言 卷积:函数空间域的卷积的傅里叶变换是函数傅里叶变换的乘积。对应地,频率域的卷积与空间域的乘积...


    前言

    卷积:函数空间域的卷积的傅里叶变换是函数傅里叶变换的乘积。对应地,频率域的卷积与空间域的乘积存在对应关系。


    给定频率域滤波器,可对其进行傅里叶逆变换得到对应的空域滤波器;滤波在频域更为直观,但空域适合使用更小的滤波模板以提高滤波速度。因为相同尺寸下,频域滤波器效率高于空域滤波器,故空域滤波需要一个更小尺寸的模板近似得到需要的滤波结果。

    一、空域卷积

    将模板在图像中逐像素移动,将卷积核的每个元素分别和图像矩阵对应位置元素相乘并将结果累加,累加和作为

    模板中心对应像素点的卷积结果。通俗的讲,卷积就是对整幅图像进行加权平均的过程,每一个像素点的值,都

    由其本身和邻域内的其他像素值经过加权平均后得到。

    二、频域滤波

    频率域是由傅里叶变换和频率变量 (u,v)定义的空间,频域滤波处理过程:先对图像进行傅里叶变换,转换至频率

    域,在频域使用滤波函数进行滤波,最后将结果反变换至空间域。即:
    (1)计算原始图像f(x,y)的DFT,得到F(u,v)。
    (2)将频谱F(u,v)的零频点移动到频谱图的中心位置。
    (3)计算滤波器函数H(u,v)与F(u,v)的乘积G(u,v)。
    (4)将频谱G(u,v)的零频点移回到频谱图的左上角位置。
    (5)计算第(4)步计算结果的傅里叶反变换g(x,y)。
    (6)取g(x,y)的实部作为最终滤波后的结果图像。
    按照该步骤,在MATLAB中很容易编程实现频域滤波。滤波能否取得理想结果的关键取决于频域滤波函数H(u,v),常常称之为滤波器,或滤波器传递函数。因为它在滤波中抑制或滤除了频谱中某些频率的分量,而保留其他一些频率不受影响。
    在这里插入图片描述

    三,高斯函数

    公式:在这里插入图片描述


    高斯函数的特殊性:高斯函数傅里叶变换仍是高斯函数,但标准差已经变化,频域标准差越大(高斯函数越宽),变换后空域标准差越小(高斯函数越窄)。

    四,matlab代码

    高斯函数空域卷积

    首先,加载图片并添加高斯噪声

    t=imread('E:\matlab DMP\lenaG.bmp');
    [m,n,z]=size(t);
    y1=0+10*randn(m,n);%二维高斯分布矩阵 0是均值 20是标准差
    y2=0+20*randn(m,n);%二维高斯分布矩阵 0是均值 20是标准差
    y1=uint8(y1);
    y2=uint8(y2);
    %加上噪声
    t1=t+y1;
    t2=t+y2;
    figure;
    subplot(2,2,1),imshow(t),title('原图');
    subplot(2,2,3),imshow(t1),title('加入均值为0,标准差为10的高斯噪声后');
    subplot(2,2,4),imshow(t2),title('加入均值为0,标准差为20的高斯噪声后');
    
    

    在这里插入图片描述
    然后,fspecial函数建立高斯核,与噪声图片卷积

    在这里插入代码片
    fi = fspecial('gaussian',[m,n],10);
    x=1:m;
    y=1:n;
    [X,Y] = meshgrid(x,y);
    figure 
    mesh(X',Y',fi)
    title('低通高斯滤波器')
    xlabel('x')
    ylabel('y')
    zlabel('z')
    
    K1=conv2(fi,t1,'same')/255;
    
    K2=conv2(fspecial('gaussian',[m,n],20),t1,'same')/255;
    K3=conv2(fspecial('gaussian',[m,n],30),t1,'same')/255;
    K4=conv2(fspecial('gaussian',[m,n],5),t1,'same')/255;
    K5=conv2(fspecial('gaussian',[m,n],3),t1,'same')/255;
    K6=conv2(fspecial('gaussian',[m,n],1),t1,'same')/255;
    
    figure;
    subplot(3,3,1),imshow(t1),title('高斯噪声');
    subplot(3,3,4),imshow(K1),title('高斯过滤,标准差10');
    subplot(3,3,5),imshow(K2),title('高斯过滤,标准差20');
    subplot(3,3,6),imshow(K3),title('高斯过滤,标准差30');
    subplot(3,3,7),imshow(K4),title('高斯过滤,标准差5');
    subplot(3,3,8),imshow(K5),title('高斯过滤,标准差3');
    subplot(3,3,9),imshow(K6),title('高斯过滤,标准差1'); 
    
    
    
    

    结果:在这里插入图片描述
    如下图,标准差越大,过滤后的图片越模糊,当标准差为1时,噪声的过滤效果较好。
    在这里插入图片描述

    高斯函数频域卷积

    F = fft2(t1)/(m*n);
    Fc = fftshift(F);
     
    
    H1 = fspecial('gaussian',[m,n],10  );
    H2 = fspecial('gaussian',[m,n],20  );
    H3 = fspecial('gaussian',[m,n],30  );
    H4 = fspecial('gaussian',[m,n],5  );
    H5 = fspecial('gaussian',[m,n],3  );
    H6 = fspecial('gaussian',[m,n],1  );
    
     
    G1 = H1.*Fc;
    G2 = H2.*Fc;
    G3 = H3.*Fc;
    G4 = H4.*Fc;
    G5 = H5.*Fc;
    G6 = H6.*Fc;
    
    g1 = ifft2(G1);
    g1 = im2uint8(mat2gray(abs(g1)));
    
    g2 = ifft2(G2);
    g2 = im2uint8(mat2gray(abs(g2)));
    
    g3 = ifft2(G3);
    g3 = im2uint8(mat2gray(abs(g3)));
    
    g4 = ifft2(G4);
    g4 = im2uint8(mat2gray(abs(g4)));
    
    g5 = ifft2(G5);
    g5 = im2uint8(mat2gray(abs(g5)));
    
    g6 = ifft2(G6);
    g6 = im2uint8(mat2gray(abs(g6)));
    
    figure('name','频域高斯滤波');
    subplot(3,3,1),imshow(t1),title('高斯噪声');
    subplot(3,3,4),imshow(g1),title('高斯过滤,标准差10');
    subplot(3,3,5),imshow(g2),title('高斯过滤,标准差20');
    subplot(3,3,6),imshow(g3),title('高斯过滤,标准差30');
    subplot(3,3,7),imshow(g4),title('高斯过滤,标准差5');
    subplot(3,3,8),imshow(g5),title('高斯过滤,标准差3');
    subplot(3,3,9),imshow(g6),title('高斯过滤,标准差1'); 
    
    

    在这里插入图片描述

    总结

    在空域里进行高斯滤波时,标准差sigma越大,滤波后的图片越模糊;
    在频域里进行高斯滤波时,标准差sigma越小,滤波后的图片越模糊。

    展开全文
  • Matlab实现高斯函数的三维显示1.前言2.代码3.结果展示 1.前言 最近学习中用到了高斯函数(二维高斯分布),特记录下实现代码及一些注意事项。 2.代码 %设置渐变色:figure => 编辑 => 图形属性 %去掉网格,并使...

    Matlab实现高斯函数的三维显示

    1.前言

    最近学习中用到了高斯函数(二维高斯分布),特记录下实现代码及一些注意事项。

    2.代码

    %设置渐变色:figure => 编辑 => 图形属性
    %去掉网格,并使之光滑:surf(X, Y, Z); shading interp;
    %设置坐标轴宽度:调整linewidth属性对应值
    
    
    % 绘制二维高斯曲面
    % 公式: p(z) = exp(-(z-u)^2/(2*d^2)/(sqrt(2*pi)*d)
    % x y 变量
    X = 0 : 1 : 100;
    Y = 0 : 1 : 100;
    
    % 方差
    d02= 1000;
    cc = 50;
    
    % 均值(25, 25)
    Z = zeros(101, 101);
    for row = 1 : 1 : 101
        for col = 1 : 1 : 101
            Z(row, col) = (X(row) - cc) .* (X(row)-cc) + (Y(col) - cc) .* (Y(col) - cc);
        end
    end
    
    Z = -Z/(2*d02);
    
    Z = exp(Z) / (sqrt(2*pi) * sqrt(d02));
    % 显示高斯曲面
    surf(X, Y, Z);
    % 去掉图像上的网格,即使之光滑
    shading interp 
    

    3.结果展示

    高斯函数三维显示

    展开全文
  • 计算一维高斯函数: exp(-log(2)*(2*(x-x0)./FWHM).^(2*floor(abs(order)))); 在哪里: x = 坐标x0 = 功能中心FWHM = 函数的全宽半最大值阶 = 高斯阶 正态高斯是 1 阶的。 注意 FWHM = (1/e 半宽)/sqrt(2*log(2)) ...
  • 该程序生成一个二维高斯。 然后程序尝试使用 MatLab 函数“lsqcurvefit”拟合数据,以找到二维高斯的位置、方向和宽度。... 二维高斯函数由函数“D2GaussFunctionRot.m”和“D2GaussFunction.m”定义
  • [使用Matlab进行拟合是图像处理中线条变换的一个重点内容,本文将详解Matlab中的直线拟合和曲线拟合用法。...高斯函数的一阶、二阶导数也可以进行高通滤波,比如canny算子中用到的是高斯函数的一阶导数,LOG算...
  • 语法: y2 = pdf('Normal',x,mu,sigma) 范例 x=[-20:0.1:20] y2 = pdf('Normal',x,1,5) plot(x,y2)
  • 高斯卷积模板(高斯函数)Matlab代码,可实现二维高斯卷积模板的生成功能。M文件,可用记事本打开。
  • 高斯核分为水平方向和垂直方向,先后对图像进行卷积处理,可提高处理速度。function output=gaussFilter(I,sigma)output=I;ksize=double(uint8(3*sigma)*2+1);%窗口大小一半为3*sigmawindow = fspecial('gaussian'...
  • matlab awgn函数加入高斯白噪声

    千次阅读 2020-09-15 21:36:23
    awgn函数可以将白色高斯噪声添加到信号中。
  • MATLAB编程(4)——MATLAB绘制二维高斯函数的三维图

    万次阅读 多人点赞 2019-01-15 22:55:47
    本篇博文记录使用MATLAB绘制二维高斯函数的三维图。 用到的MATLAB函数——mesh()(绘制三维线框图)和surf()(绘制三维表面图)。 MATLAB命令窗口输入>> doc 函数名,可以查看相关函数的帮助文档。...
  • MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1.WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的高斯白...
  • matlab自带函数实现高斯滤波

    万次阅读 2015-06-26 18:14:31
    自己编写的高斯滤波已理解,可是matlab自带的高斯滤波函数却没有用过,这里记录一下。 %matlab自带函数实现灰度图高斯滤波 clear close all img=imread('lena.bmp'); sigma=6;%标准差大小 window=double(uint8(3*...
  • % gauss.mfunction x = gauss(A,B)%The sizes of matrices A,B are supposed to be NA x NA and NA xNB.%This function solves Ax = B by Gauss elimination algorithm.NA = size(A,2); [NB1,NB] = size(B);...
  • matlab高斯2D模糊的函数

    千次阅读 2015-01-28 15:40:52
    %% A more precise description of matlab FFT operations if Method == 2.1 F_max = 0.5*(1/delta_x);  delta_k = (2*F_max)/(rows*2);  [Kx, Ky] = meshgrid((-rows:1:rows-1)*delta_k,(-cols:1:...
  • MATLAB图像处理中关于自定义双峰函数twomodegauss的应用。
  • matlab 高斯白噪声.zip

    2020-07-10 08:53:48
    matlab高斯白噪声的生成,是自己用代码生成的,不是直接调用matlab画高斯白噪声的函数,需要手动编码的朋友可以下载
  • DerOfGauss(sigma,n,m) 计算高斯函数的近似导数
  • matlab中各种高斯相关函数

    千次阅读 2016-09-21 20:26:00
    matlab中各种高斯相关函数matlab高斯函数, 高斯分布最常见的是产生服从一维标准正态分布的随机数 n=100;x=randn(1,n) 实现服从任意一维高斯分布的随机数 u=10;sigma=4;x=sigma*randn(1,n)+u 产生服从多元高斯...
  • Matlab 高斯 Chi方 右尾函数 Q函数

    千次阅读 2015-06-29 13:54:15
    function [P]=Qchipr2(nu,lambda,x,epsilon) % % This program computes the right-tail probability % of a central or noncentral chi-squared PDF. % % Input Parameters: % % nu = Degrees of freedom (1,
  • x=[-100:1:99];y=x; [X,Y]=meshgrid(x,y); for k=1:1:200 for m=1:1:200 D(k,m)=(k-100)^2+(m-100)^2; end end H=exp(-D/2/100); surf(X,Y,H);

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,698
精华内容 679
关键字:

matlab高斯函数

matlab 订阅