SNR=PsignalPnoise=10⋅log10∑x=1Nx∑y=1Nyf2(x,y)∑x=1Nx∑y=1Ny(f(x,y)−f^(x,y))2=20⋅log10∥f(x,y)∥∥f^(x,y)−f(x,y)∥=20⋅log10∥f(x,y)∥∥noise∥

根据信噪比(SNR)的值,是可以推知 noise 的:

∥noise∥=∥f(x,y)∥10SNR/20
  • 这里的 f(x,y)−f^(x,y) 其实就可以视为噪声;

    • 注意区别,噪声和含噪信号;
    • noisy = original + noise;
fucntion [noisy, noise] = addnoise(signal, noise, snr)
% signal:表示无噪图像,noise:噪声,snr,指定的 SNR 值; % 定义信噪比计算函数
SNR = @(signal, noisy) 20*log10(norm(signal)/norm(signal-noisy)); S = length(signal); N = length(noise);
assert(N >= S); R = randi(1+N-S);
noise = noise(R:R+S-1); noise = noise / norm(noise) * norm(signal) * 10^(0.05*snr);
% 上文给出的计算公式;
noisy = noise + signal; assert(abs(SNR(signal, noisy)) < 1e10*eps);

matlab 工具函数(一) —— 添加指定 SNR 的噪声的更多相关文章

  1. matlab 工具函数、matlab toolbox(工具箱)

    minimize.m:最小化可微多元函数 minimize.m:最小化一个可微的多元函数: Minimize a differentiable multivariate function,函数接口说明 ...

  2. matlab 工具函数 —— normalize(归一化数据)

    function x = normalize(x, mu, sigma) x = bsxfun(@minus, x, mu); x = bsxfun(@rdivide, x, sigma); end ...

  3. matlab 工具函数 —— logdet(A)

    当参数 A 是正定矩阵(positive definite)时,logdet 利用相关矩阵分解的性质,将比 log(det(A)) 获得更快的效率: function y = logdet(A) tr ...

  4. matlab 工具函数 —— axnote(在坐标轴上写文本内容)

    function axnote(string) font_size = get(0, 'DefaultAxesFontSize'); if 1 h1 = text(0.99, 0.05, string ...

  5. MyEclipse调用Matlab打包函数

    本文部分内容参考了http://www.360doc.com/content/15/1103/16/1180274_510463048.shtml 一.检查Java环境 对于已经装上JAVA环境的计算 ...

  6. 读<jQuery 权威指南>[6]--实用工具函数

    官方地址:http://api.jquery.com/category/utilities/ 一.数组和对象操作 1. $.each——遍历 $.each(obj,function(param1,pa ...

  7. 从零开始学习jQuery (九) jQuery工具函数

    一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些许秘籍. 我们经常要使用脚本处理各种业务逻辑, 最常见的就 ...

  8. jQuery源码分析-03扩展工具函数jQuery.extend

    // 扩展工具函数 jQuery.extend({ // http://www.w3school.com.cn/jquery/core_noconflict.asp // 释放$的 jQuery 控制 ...

  9. 我的第一个python web开发框架(10)——工具函数包说明(一)

    PS:原先是想直接进入功能开发,要用到什么函数时再创建,这样也容易熟悉每个函数的由来和使用方法,但考虑到这样操作,到时会经常在不同文件间切换,不好描述,容易造成混乱,所以还是使用函数库这种方式来说明. ...

随机推荐

  1. [Javascript] Validate Data with the Every() Method

    The every method returns true or false based on whether or not every item in the array passes the co ...

  2. thinkphp3.2.3 小程序获取手机号 php 解密

    首先是把这个文件夹放到\ThinkPHP\Library\Org里面 //zll 根据加密字符串和session_key和iv获取手机号 /** * [getphone description] * ...

  3. python高级学习目录

    1. Linux介绍.命令1.1. 操作系统(科普章节) 1.2. 操作系统的发展史(科普章节) 1.3. 文件和目录 1.4. Ubuntu 图形界面入门 1.5. Linux 命令的基本使用 1. ...

  4. iir调试记录

    1.目的 实现採样率fs=50MHz,通带为5MHz~15MHz.阻带衰减60dB的IIR带通滤波器 2.方案 採取直接型 3.具体设计 (1)确定滤波器的系数,系数和滤波器输出量化位宽 先依据要求的 ...

  5. Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词

    什么是Sphinx Sphinx 是一个全文检索引擎,一般而言,Sphinx是一个独立的搜索引擎,意图为其它应用提供快速.低空间占用.高结果相关度的全文搜索功能.Sphinx能够很easy的与SQL数 ...

  6. 【solr专题之四】关于VelocityResponseWriter 分类: H4_SOLR/LUCENCE 2014-07-22 12:32 1639人阅读 评论(0) 收藏

    一.关于Velocity的基本配置 在Solr中,可以以多种方式返回搜索结果,如单纯的文本回复(XML.JSON.CSV等),也可以返回velocity,js等格式.而VelocityResponse ...

  7. 解决duilib水平布局(HorizontalLayout)中控件位置计算错误的问题

    水平布局中的控件无法布满整个布局,右側留有缝隙 修正后的样子 原因是布局中的代码计算Padding时候逻辑不对导致 修正后的代码到https://github.com/CodeBees/duilib- ...

  8. [NPM] Pass arguments to npm scripts

    Often times you’ll have variations that you’ll want to make to your npm scripts and repeating yourse ...

  9. asp.net core2.1 部署centos7/linux系统 -- 安装部署(一)

    原文:asp.net core2.1 部署centos7/linux系统 -- 安装部署(一) 1.安装dotnet sdk(添加产品秘钥与yum源) 添加yum源:sudo rpm -Uvh htt ...

  10. Oracle 自己主动内存參数依赖性

    图例:在该图中使用了下面參数名称缩写: MT = MEMORY_TARGET MMT = MEMORY_MAX_TARGET ST = SGA_TARGET PAT = PGA_AGGREGATE_T ...