精华内容
下载资源
问答
  • MATLAB绘制SNR-BER图
    千次阅读
    2020-04-28 09:13:30

    对于三条线的SNR对数函数的图,用semilogy很合适,从EP那里学来的,超级简单,半天的时间就差不多搞定了。
    算是学过MATLAB的一点证明吧。

    有空继续添加,未完待续

    更多相关内容
  • matlab开发-SNR

    2019-08-23 13:47:43
    matlab开发-SNR。本matlab练习计算并绘制量化语音文件的信噪比。
  • matlab程序,用于SNR信噪比,可直接在程序中以函数名的形式调用,用于检测信号滤波的准确度。可用于初学者测试学习使用。
  • MATLAB 图像 SNR计算

    2018-01-21 17:09:25
    MATLAB编写的图像 SNR信噪比计算,m文件,输入图片参数可以直接运行
  • matlab实现SNR,SNDR,THD,ENOB,SFDR的计算,运行时先将.txt文件放入指定目录
  • matlab方位角计算代码
  • 现在,对于 SNR 的特定值,将此噪声添加到信号中(因为噪声是加性的 -AWGN),模拟信道噪声和大小为 15k 或 20k 的噪声信号向量到达接收器的影响。 现在根据最大似然原理实现您自己的简单接收器决策过程。 这是显然...
  • Matlab中的snr

    万次阅读 2019-05-05 15:22:47
    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以瓦特为单位。

     

    例子:

    X= sqrt(2)*sin(0:pi/1000000:6*pi);                %产生正弦信号

    Y = awgn(X,10,'measured');                          %加入信噪比为10db的噪声,加入前预估信号的功率(强度)

    sigPower = sum(abs(X).^2)/length(X)            %求出信号功率

    noisePower=sum(abs(Y-X).^2)/length(Y-X)   %求出噪声功率

    SNR=10*log10(sigPower/noisePower)          %由信噪比定义求出信噪比,单位为db

    matlab中snr(信噪比)

     

    二  matlab中信噪比的添加方法:

    1. 发端首先进行能量归一化

    2. 在收端根据同样的采样率计算1bit长度的能量即Eb

    3. SNR=10log(ebno)=> ebno=Eb/N0 => N0=Eb/ebno

    4. N0=2(sigma)^2 => sigma=sqrt(N0/2)

    5. noise=sigma*randn(1,0) 添加高斯白噪声

     

    三 Matlab中计算信噪比方式:

    1.代码部分

    function snr=SNR(I,In)

    % 计算信号噪声比函数

    % I :original signal

    % In:noisy signal(ie. Original signal + noise signal)

    % snr=10*log10(sigma2(I2)/sigma2(I2-I1))

     

    [row,col,nchannel]=size(I);

     

    snr=0;

    if nchannel==1%gray image

    Ps=sum(sum((I-mean(mean(I))).^2));%signal power

    Pn=sum(sum((I-In).^2));%noise power

    snr=10*log10(Ps/Pn);

    elseif nchannel==3%color image

    for i=1:3

    Ps=sum(sum((I(:,:,i)-mean(mean(I(:,:,i)))).^2));%signal power

    Pn=sum(sum((I(:,:,i)-In(:,:,i)).^2));%noise power

    snr=snr+10*log10(Ps/Pn);

    end

    snr=snr/3;

    end

     

     

     

    2.检验带噪信号的信噪比      

                        信号能量              (纯信号)^2
    SNR信噪比=-----------------=--------------------------
                        噪声能量        (带噪信号-纯信号)^2

                                                                                            噪声的平均功率         噪声单边功率普密度*符号带宽

                                Eb/T     在限带情况下 T*B=1         Eb

                           = ----------  ==================    

                                 N0*B                                                 N0

    实际系统中噪声的单边功率普密度N0受温度和常数K决定的,在一定条件下为固定值;信噪比与信号能量的强弱成正比。在仿真中,为了简化模型,通常采用固定输入信号幅度,改变N0来起到SNR的变化。

    其中的Eb是在相干接收条件下解调后信号能量,而系统接收的信噪比通常是加在接收输入端,也就是解调前。为了令Eb在解调前后的能量统一,在发送端必须采用能量的归一化。

    归一化方法:

                _                   x(n) 

               x(n) =-------------------------- n属于(1,N) N为1bit内采样点数 

                          sqrt(Sum(x(n)^2))

     

    展开全文
  • MATLAB实现PSNR 和SSIM算法和一种针对模糊图像的无参考评价。(图像像素需要相同)
  • 此函数用于与 matices 或数据数组之间的比较
  • 一、MATLAB中自带的高斯白噪声的两个函数MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。1. WGN:产生高斯白噪声...

    一、MATLAB中自带的高斯白噪声的两个函数

    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以瓦特为单位。

    二、通过相关概念自编函数实现任意噪声的叠加及信噪比的计算

    在信号处理中经常需要把噪声叠加到信号上去,在叠加噪声时往往需要满足一定的信噪比,这样产生二个问题,其一噪声是否按指定的信噪比叠加,其二怎么样检验带噪信号中信噪比满足指定的信噪比。在MATLAB中可以用randn产生均值为0方差为1的正态分布白噪声,但在任意长度下x=randn(1,N),x不一定是均值为0方差为1(有些小小的偏差),这样对后续的计算会产生影响。在这里提供3个函数用于按一定的信噪比把噪声叠加到信号上去,同时可检验带噪信号中信噪比。1,把白噪声叠加到信号上去:function [Y,NOISE] = noisegen(X,SNR)% noisegen add white Gaussian noise to a signal.% [Y, NOISE] = NOISEGEN(X,SNR) adds white Gaussian NOISE to X.  The SNR is in dB.NOISE=randn(size(X));NOISE=NOISE-mean(NOISE);signal_power = 1/length(X)*sum(X.*X);noise_variance = signal_power / ( 10^(SNR/10) );NOISE=sqrt(noise_variance)/std(NOISE)*NOISE;Y=X+NOISE;其中X是纯信号,SNR是要求的信噪比,Y是带噪信号,NOISE是叠加在信号上的噪声。2,把指定的噪声叠加到信号上去有标准噪声库NOISEX-92,其中带有白噪声、办公室噪声、工厂噪声、汽车噪声、坦克噪声等等,在信号处理中往往需要把库中的噪声叠加到信号中去,而噪声的采样频率与纯信号的采样频率往往不一致,需要采样频率的校准。function [Y,NOISE] = add_noisem(X,filepath_name,SNR,fs)% add_noisem add determinated noise to a signal.% X is signal, and its sample frequency is fs;% filepath_name is NOISE's path and name, and the SNR is signal to noise ratio in dB.[wavin,fs1,nbits]=wavread(filepath_name);if fs1~=fswavin1=resample(wavin,fs,fs1);endnx=size(X,1);NOISE=wavin1(1:nx);NOISE=NOISE-mean(NOISE);signal_power = 1/nx*sum(X.*X);noise_variance = signal_power / ( 10^(SNR/10) );NOISE=sqrt(noise_variance)/std(NOISE)*NOISE;Y=X+NOISE;其中X是纯信号,filepath_name是指定噪声文件(.wav)的路径和文件名,SNR是要求的信噪比,fs是信号X的采样频率,Y是带噪信号,NOISE是叠加在信号上的噪声。3,检验带噪信号的信噪比信噪比的定义为信号能量              (纯信号)^2SNR=-----------------=--------------------------噪声能量        (带噪信号-纯信号)^2function snr=SNR_singlech(I,In)% 计算信噪比函数% I :original signal% In:noisy signal(ie. original signal + noise signal)snr=0;Ps=sum(sum((I-mean(mean(I))).^2));%signal powerPn=sum(sum((I-In).^2));           %noise powersnr=10*log10(Ps/Pn);其中I是纯信号,In是带噪信号,snr是信噪比以下给出调用上函数的例子可作参考:例一clear all; clc; close all;[filename,pathname]=uigetfile('*.wav','请选择语音文件:');[X,fs]=wavread([pathname filename]);[Y,NOISE] = noisegen(X,10);subplot 311; plot(X);subplot 312; plot(NOISE);subplot 313; plot(Y);mn=mean(NOISE)snr=SNR_singlech(X,Y)例二clear all; clc; close all;[filename,pathname]=uigetfile('*.wav','请选择语音文件:');[filename1,pathname1]=uigetfile('*.wav','请选择噪声文件:');filepath_name=[pathname1 filename1];[X,fs]=wavread([pathname filename]);[Y,NOISE] = add_noisem(X,filepath_name,10,fs);subplot 311; plot(X);subplot 312; plot(NOISE);subplot 313; plot(Y);mn=mean(NOISE)snr=SNR_singlech(X,Y)参考:http://www.ilovematlab.cn/forum.php?mod=viewthread&tid=54155,再次感谢原作者的无私分享。

    展开全文
  • Matlab计算THD、SNR、SINAD %计算THD、SNR、SINAD的脚本 clc;clear; datas = load('C:\test.txt'); %数据路径 fs = 100000; %采样率 NumHarmonics = 6; %谐波个数 THD = thd(datas,fs,NumHarmonics); %计算THD THD_P...

    Matlab计算THD、SNR、SINAD

    %计算THD、SNR、SINAD的脚本
    clc;clear;
    datas = load('C:\test.txt');    %数据路径
    fs = 100000;        %采样率
    NumHarmonics = 6;   %谐波个数
    THD = thd(datas,fs,NumHarmonics);   %计算THD
    THD_P = 100*(10^(THD/20));          %THD转换为百分比
    SNR = snr(datas,fs);                %计算SNR
    SINAD = sinad(datas,fs);            %计算SINAD
    %输出打印THD、SNR、SINAD
    fprintf('THD = %.10gdb\n',THD); 
    fprintf('THD_P = %.10g%%\n',THD_P); 
    fprintf('SNR = %.10gdB\n',SNR); 
    fprintf('SINAD = %.10gdB\n',SINAD); 
    
    展开全文
  • 函数 snr 以分贝或幅度计算信噪比。
  • 信噪比SNR MATLAB程序

    2016-06-08 16:08:26
    信噪比SNR的求解,MATLAB程序详解
  • matlab 计算SNR 源码.txt

    2021-01-30 20:16:13
    计算ADC的snr源码
  • matlabsnr-bler图

    千次阅读 2018-09-27 22:45:30
    基于在做完编译码之后需要测试ldpc编译码的snr-bler性能,在此,将测得的snr bler数据画出snr-bler图是工作的一小部分,为了便于工作,在matlab平台上写了一个m文件来实现此功能。 m文件中的代码如下: %作图一 a=...
  • MATLAB 练习使用统一量化器和 mu 律量化器之一或两者计算并绘制量化语音文件的 SNR,适用于一定范围的比特率和用户指定的 mu 值。
  • SNR MATLAB CODE

    2021-10-03 08:22:11
    unction SNR=SNR(K,J) N=J-K; L=(J-mean(mean(J))).^2; X=(N-mean(mean(N))).^2; a=sum(sum(L)); b=sum(sum(X)); SNR=20*log10(a/b);
  • MATLAB生成随机码元以及指定SNR数据

    千次阅读 2022-01-07 22:39:32
    MATLAB生成随机码元以及指定SNR数据tips生成随机码元【0或者1】生成随机码元【-1或者1】将随机数生成器重置为默认设置,以产生可重复的结果。生成一个白噪声随机向量生成指定SNR的数据 tips 1、生成随机码元【0或者...
  • 转~~ SNR + Eb/N0

    2021-04-18 16:45:33
    SNR,或者我们平时说的信噪比,其实是一个不精确的...Q:在《现代通信系统——使用matlab》一书中,一些调制方式的MonteCarlo仿真性能曲线中,横轴是用Eb/No来表示的,而matlab代码是用的却是SNR,很多人都说这两个信...
  • MATLAB中wnoise的解释如下:WNOISE Generate noisy wavelet testdata.X = WNOISE(FUN,N)returns values of the test functiongiven by FUN, on a2^N sample of [0,1].[X,XN] =WNOISE(FUN,N,SQRT_SNR) returns the ...
  • EbNo(EbN0)和SNR

    2021-05-07 02:49:08
    A1:因为要加入高斯白噪声信道,高斯白噪声信道的噪声参数是与SNR直接相关的,所以要将EbNo转换为SNR。Q2:为什么仿真要用EbNo,而不用SNR呢?A1:因为用EbNo可以直观的看到系统性能,比如采用只采用QPSK,那么BER...
  • 它使用符号学和 100000 符号表示传输。
  • 转载自:http://blog.csdn.net/han____shuai/article/details/510873831、MATLAB中自带的高斯白噪声的两个函数MATLAB中产生高斯白噪声很是方便,能够直接应用两个函数,一个是WGN,另外一个是AWGN。WGN用于产生高斯...
  • 仿真在LTE中16QAM和64QAM信号的SNR与误码率间的关系。即实现了误码率与SNR间的关系,又实现了误比特率与SNR间的关系,还实现了添加高斯白噪声时的实际效果与理论值间的差别比较
  • QPSK(AWGN)中理论误码率与实际误码率的比较。
  • 《常用MATLAB函数详解及用法》由会员分享,可在线阅读,更多相关《常用MATLAB函数详解及用法(10页珍藏版)》请在人人文库网上搜索。1、随机信号产生随机信号产生 rand:产生:产生均匀分布均匀分布的随机数的随机数 ...
  • matlab 一维二维小波分析处理,并比较不同小波去噪方法的去噪效果,指标为SNR和MSE

空空如也

空空如也

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

matlab snr

matlab 订阅
友情链接: yonttrxcts.zip