Matlab中计算信噪比方式

基础知识 | 2008-06-05 09:48:58 | 阅读 32959 次 | 评论(1)
Matlab中计算信噪比方式:

%===========================Happy===================================%
function snr=SNR(I,In)
% 计算信号噪声比函数
% by Qulei
% 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
%===================================================================%
自:http://www.chinavib.com/forum/viewthread.php?tid=31086&extra=page%3D1%26amp%3Bfilter%3Ddigest
文章评论,共1条
vfdff(作者)
2009-09-04 00:37
1
C++ vector 类<br />
 matlab坐标轴函数<br />
<br />
专业&nbsp;&nbsp;&nbsp;2009-06-24 10:22&nbsp;&nbsp;&nbsp;阅读316&nbsp;&nbsp;&nbsp;评论0&nbsp;&nbsp;&nbsp;字号: 大大&nbsp;&nbsp;中中&nbsp;&nbsp;小小 1.绘制二维曲线的最基本函数plot <br />
2.双纵坐标函数plotyy <br />
3. <br />
坐标控制 <br />
函数的调用格式为: <br />
axis([xmin xmax ymin ymax zmin zmax]) <br />
axis函数功能丰富,常用的用法还有: <br />
axis equal 纵、横坐标轴采用等长刻度 <br />
axis square 产生正方形坐标系(缺省为矩形) <br />
axis auto 使用缺省设置 <br />
axis off 取消坐标轴 <br />
axis on 显示坐标轴 <br />
grid on/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。 <br />
box on/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。 <br />
4.图形窗口的分割 <br />
subplot函数的调用格式为: <br />
subplot(m,n,p) <br />
5.绘制二维图形的其他函数 <br />
1. 其他形式的线性直角坐标图 <br />
在线性直角坐标系中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别是: <br />
bar(x,y,选项) <br />
stairs(x,y,选项) <br />
stem(x,y,选项) <br />
fill(x1,y1,选项1,x2,y2,选项2,…) <br />
6.极坐标图 <br />
polar函数用来绘制极坐标图,其调用格式为: <br />
polar(theta,rho,选项) <br />
其中theta为极坐标极角,rho为极坐标矢径,选项的内容与plot函数相似。 <br />
7.对数坐标图形 <br />
MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为: <br />
semilogx(x1,y1,选项1,x2,y2,选项2,…) <br />
semilogy(x1,y1,选项1,x2,y2,选项2,…) <br />
loglog(x1,y1,选项1,x2,y2,选项2,…) <br />
8.对函数自适应采样的绘图函数 <br />
fplot函数的调用格式为: <br />
fplot(fname,lims,tol,选项) <br />
9.绘制三维曲线的最基本函数 <br />
plot3函数与plot函数用法十分相似,其调用格式为: <br />
plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n) <br />
10.三维曲面 <br />
1.平面网格坐标矩阵的生成 <br />
(1)利用矩阵运算生成。 <br />
x=a:dx:b; y=(c:dy:d)'; <br />
X=ones(size(y))*x; <br />
Y=y*ones(size(x)); <br />
(2)利用meshgrid函数生成。 <br />
x=a:dx:b; y=c:dy:d; <br />
[X,Y]=meshgrid(x,y); <br />
10.绘制三维曲面的函数 <br />
surf函数和mesh函数的调用格式为: <br />
mesh(x,y,z,c) <br />
surf(x,y,z,c) <br />
标准三维曲面 <br />
sphere函数的调用格式为: <br />
[x,y,z]=sphere(n) <br />
cylinder函数的调用格式为: <br />
[x,y,z]=sphere(R,n) <br />
MATLAB还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。 <br />
<br />
11.其他三维图形 <br />
条形图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是bar3、pie3和fill3。此外,还有三维曲面的等高线图。等高线图分二维和三维两种形式,分别使用函数contour和contour3绘制。
游客请输入验证码
浏览1861241次