版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE 39数字信号处理2.1.2 采样频率采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。采样频率与声音频率之间有一定的关系,根据奎斯特理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。2.1.3 采样位数与采样频率采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的
2、二进制位数。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。每增加一个采样位数相当于力度范围增加了6dB。采样位数越多则捕捉到的信号越精确。对于采样率来说你可以想象它类似于一个照相机,44.1kHz意味着音频流进入计算机时计算机每秒会对其拍照达441000次。显然采样率越高,计算机摄取的图片越多,对于原始音频的还原也越加精确。2.2 语音信号的分析及处理方法2.2.1 语音的打开在matlab平台下,
3、利用wavread进行语音采集, 得到语音的分辨率、采样率以频率特性。2.2.2 语音信号的频谱分析画出语音信号的时域波形,利用函数fft对信号进行快速傅里叶变换,得到信号的频谱特性。2.2.3产生噪声信号利用matlab产生固定频率的交流噪声,并加到语音信号中去,得到被污染的语音信号,并播放语音信号,利用函数fft对噪声进行快速傅里叶变换,得到噪声的频谱特性。2.2.4 数字滤波器设计原理数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。在信号的过滤、检测和参数的估计等方面,经典数字滤波器是使
4、用最广泛的一种线性系统。数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。2.2.5数字滤波器的设计步骤不论是IIR滤波器还是FIR滤波器的设计都包括三个步骤:(1) 按照实际任务的要求,确定滤波器的性能指标。(2) 用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。根据不同的要求可以用IIR系统函数,也可以用FIR系统函数去逼近。(3) 利用有限精度算法实现系统函数,包括结构选择、字长选择等。2.2.6 IIR滤波器与FIR滤波器的性能比较FIR:Finite Impulse response,有限冲击
5、响应IIR:Infinite Impulse response,无限冲击响应从性能上来说,IIR滤波器传输函数的极点可位于单位圆内的任何地方,因此可用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高。但是这个高效率是以相位的非线性为代价的。选择性越好,则相位非线性越严重。相反,FIR滤波器却可以得到严格的线性相位,然而由于FIR滤波器传输函数的极点固定在原点,所以只能用较高的阶数达到高的选择性;对于同样的滤波器设计指标,FIR滤波器所要求的阶数可以比IIR滤波器高510倍,结果,成本较高,信号延时也较大;如果按相同的选择性和相同的线性要求来说,则IIR滤波器就必须加全通网络进行相位
6、较正,同样要大增加滤波器的节数和复杂性。整体来看,IIR滤波器达到同样效果阶数少,延迟小,但是有稳定性问题,非线性相位;FIR滤波器没有稳定性问题,线性相位,但阶数多,延迟大第三章 图形用户界面设计3.1 图形用户界面概念图形用户界面或图形用户接口(Graphical User Interface,GUI)是指采用图形方式显示的计算机操作环境用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简便易用。GUIDE是Matlab提供的图形用户界面开发环境,提供了一系列用于创建图形用户界面的工具,从而简化界面布局和编程工作。3.2 图形用户界面设计1GUI设计模板在MATLAB主窗
7、口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示图形用户界面的设计模板。MATLAB为GUI设计一共准备了4种模板,分别是Blank GUI(默认) 、GUI with Uicontrols(带控件对象的GUI模板) 、GUI with Axes and Menu(带坐标轴与菜单的GUI模板)与Modal Question Dialog(带模式问话对话框的GUI模板)。当用户选择不同的模板时,在GUI设计模板界面的右边就会显示出与该模板对应的GUI图形。2GUI设计窗口在GUI设计模板中选中一个模板,然后单击OK按钮,就会显示GUI设计窗口。选择不同的GUI设计模式时,
8、在GUI设计窗口中显示的结果是不一样的。GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等部分组成。GUI设计窗口的菜单栏有File、Edit、View、Layout、Tools和Help 6个菜单项,使用其中的命令可以完成图形用户界面的设计操作。3GUI设计窗口的基本操作在GUI设计窗口创建图形对象后,通过双击该对象,就会显示该对象的属性编辑器。例如,创建一个Push Button对象,并设计该对象的属性值。3.3 图形用户界面模块调试3.3.1 语音信号的读入与打开下面的一段程序是语音信号在MATLAB中的最简单表现,它实现了语音的读入打开,以及绘出了语音信号的波形频谱图。y,
9、fs,nbits=wavread(file);n = length (y) ; %求出语音信号的长度Y=fft(y,n); %傅里叶变换magX=abs(Y);angX=angle(Y);figure(1)subplot(2,2,1);plot(y);title(原始信号波形);subplot(2,2,2);plot(abs(Y);title(原始信号频谱)subplot(223);plot(magX);title(原始信号幅值);subplot(224);plot(angX);title(原始信号相位);程序运行可以听到声音,得到的结果如图3-1所示:图3-1 语音信号的读入与打开3.3.2
10、 加噪信号n = length (y) ; %求出语音信号的长度t=0:1/8000:2 zeros(1,23520-1);noise=rand(1,n);%sin函数产生噪声s=y+noise; %语音信号加入噪声figuresubplot(2,1,1);plot(s);title(加噪语音信号的时域波形);S=fft(s); %傅里叶变换subplot(2,1,2);plot(abs(S);title(加噪语音信号的频域波形)axis(0,2000,0,1000)图3-2 噪声波形3.3.3 N阶高通滤波器在这里,以5阶为例,其中wc为其3dB边缘频率,程序设计如下:x = y; %N介高
11、通滤波N=5;wc=0.3;b,a=butter(N,wc,high);X=fft(x);figuresubplot(321);plot(x);title(滤波前信号的波形);subplot(322);plot(X);title(滤波前信号的频谱);y=filter(b,a,x);Y=fft(y);subplot(323);plot(y);title(IIR滤波后信号的波形);subplot(324);plot(Y);title(IIR滤波后信号的频谱);z=fftfilt(b,x);Z=fft(z);subplot(325);plot(z);title(FIR滤波后信号的波形);subplo
12、t(326);plot(Z);title(FIR滤波后信号的频谱);得到结果如图3-3所示:图3-3 N阶高通滤波器3.3.4 N阶低通滤波器在这里,同样以5阶为例,其中wc为其3dB边缘频率,程序设计如下:x = y;%N介低通滤波N=5;wc=0.3;b,a=butter(N,wc);X=fft(x);figuresubplot(321);plot(x);title(滤波前信号的波形);subplot(322);plot(X);title(滤波前信号的频谱);y=filter(b,a,x);Y=fft(y);subplot(323);plot(y);title(IIR滤波后信号的波形);s
13、ubplot(324);plot(Y);title(IIR滤波后信号的频谱);z=fftfilt(b,x);Z=fft(z);subplot(325);plot(z);title(FIR滤波后信号的波形);subplot(326);plot(Z);title(FIR滤波后信号的频谱);得到结果如图3-4所示:图3-4 N阶低通滤波器3.3.5 2N阶带通滤波器2N阶带通滤波器的设计(在这里,以10阶为例,其中wc为其3dB边缘频率,wc=w1,w2,w1 wc w2),程序设计如下:x = y;%2N介带通滤波N=5;wc=0.3,0.6;b,a=butter(N,wc);X=fft(x);f
14、iguresubplot(321);plot(x);title(滤波前信号的波形);subplot(322);plot(X);title(滤波前信号的频谱);y=filter(b,a,x);Y=fft(y);subplot(323);plot(y);title(IIR滤波后信号的波形);subplot(324);plot(Y);title(IIR滤波后信号的频谱);z=fftfilt(b,x);Z=fft(z);subplot(325);plot(z);title(FIR滤波后信号的波形);subplot(326);plot(Z);title(FIR滤波后信号的频谱);得到结果如图3-5所示:
15、图3-5 带通滤波器3.4 图形用户界面制作MATLAB中图形用户界面的制作有两种方法:M文件和GUIDE,本设计采用GUIDE的方法制作GUI。1.新建一个空白GUI模板:进入MATLAB程序界面以后执行FileNewGUI过程,即可进入2.选择空白模板选项条,单击OK,一个空白GUI模板生成3.拖拉白色框的右下角调整界面大小,现在就可以开始设计GUI功能界面了。从左边控件框选择所需要的控件放置在GUI面板中,然后对各个控件进行编辑,包括位置、大小、颜色、名称以及编写回调函数等。本设计主要用到下拉菜单、坐标系、框架和按钮,现分别介绍。4.按钮设计:按钮键又称命令按钮或按钮,是小的长方形屏幕对
16、象,常常在对象本身标有文本。将鼠标指针移至对象,单击鼠标按钮执行由回调字符串所定义的动作。单击空间框左侧的Push Button按钮,在图形编辑框中确定其位置后单击鼠标左键即可放置现在开始编写回调函数,确定按钮功能。在按钮上单击鼠标右键,选择view- callbackscallback即可在M文件中找到该按钮的回调函数位置。然后编写功能函数,本设计中该按钮的功能是绘制原始波形,那么只需要读取语音信号并画出波形。本次课程设计的最终图形用户界面如图3-6所示图3-6 图形用户界面第四章 总结本设计圆满的完成了对语音信号的读取与打开,与课题的要求十分相符;本设计也较好的完成了对语音信号的频谱分析,
17、通过fft变换,得出了语音信号的频谱图;在滤波这一块,课题主要是从巴特沃斯滤波器入手来设计滤波器,也从一方面基本实现了滤波;初略的完成了界面的设计,但也存在相当的不足,只是很勉强的达到了打开语音文件、显示已定滤波前后的波形等图。语音信号处理是语音学与数字信号处理技术相结合的交叉学科,课题在这里不讨论语音学,而是将语音当做一种特殊的信号,即一种“复杂向量”来看待。也就是说,课题更多的还是体现了数字信号处理技术。从课题的中心来看,课题是希望将数字信号处理技术应用于某一实际领域,这里就是指对语音的处理。作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需将这些离散的量提取出来,就可以对其
18、进行处理了。在这里,用到了处理数字信号的强有力工具MATLAB,通过MATLAB里几个命令函数的调用,很轻易的在实际化语音与数字信号的理论之间搭了一座桥。课题的特色在于它将语音看作了一个向量,于是语音数字化了,则可以完全利用数字信号处理的知识来解决。我们可以像给一般信号做频谱分析一样,来给语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。最后,还利用了MATLAB的另一强大功能gui界面设计。设计出了一个简易的用户应用界面,可以让人实现界面操作。更加方便的进行语音的频谱分析与滤波处理。但由于知识能力有限,当中也存在相当的不足,特别体现在滤波与界面设计这一块。对滤波的研究,本文
19、只是举出了很小的一个方面,还有许多精髓都未能一一列举。至于用户界面的设计,由于笔者是初次接触,也未能有特别的掌握,仅就刚学习到的一些加以运用,于是设计的还是很粗燥。当然,这些问题与不足在今后的进一步学习中,我会一步一步的去进行解决。特别是对gui界面的设计,还有特别多的地方要学习。参考文献【1】(美) Sanjit K. Mitra著;孙洪, 余翔宇等译.数字信号处理实验指导书:MATLAB版.北京:电子工业出版社,2005【2】杨述斌,李永全. 数字信号处理实践教程.武汉:华中科技大学出版社,2007年1月【3】 余成波,杨菁,杨如民,等. 数字信号处理及 MATLAB 实现M. 北京:清华
20、大学出版社,2005.【4】 Hartung F, Kutter M. Multimedia Watermarking Techniques J. Proc. IEEE, 1999,87(7):1079-1107.小组分工数字信号处理课程设计简况表课程设计标题现场录音中语音信号的干扰去除指导教师 XX小组成员姓名性别学号成员分工XX(组长)男XXXXXXX查阅搜集资料,列举出相关文件;熟悉掌握MATLAB应用;对系统结构分析;编程;优化代码XX男XXXXXX查阅资料;熟悉掌握MATLAB应用;对系统进行分析;进行GUI界面制作;优化代码;撰写实验报告XX男XXXXXX查阅资料;熟悉掌握MATL
21、AB应用;对系统结构分析;编程;设计撰写报告XX男XXXXXXX查阅资料;对系统结构分析;编程;优化代码;撰写实验报告XX男XXXXXXXX查阅资料;熟悉掌握MATLAB应用;对系统结构分析;编程;撰写实验报告各成员出勤情况:满勤附录资料:MATLAB函数和命令的用法Binocdf二项式累积分布函数语法格式Y = binocdf(X,N,P)函数功能Y = binocdf(X,N,P) 计算X中每个X(i)的二项式累积分布函数,其中,N中对应的N(i)为试验数,P中对应的P(i)为每次试验成功的概率。Y, N, 和 P 的大小类型相同,可以是向量、矩阵或多维数组。输入的标量将扩展成一个数组,使
22、其大小类型与其它输入相一致。The values in N must all be positive integers, the values in X must lie on the interval 0,N, and the values in P must lie on the interval 0, 1.The binomial cdf for a given value x and a given pair of parameters n and p is The result, y, is the probability of observing up to x successes
23、 in n independent trials, where the probability of success in any given trial is p. The indicator function I(0,1,.,n)(i)ensures that x only adopts values of 0,1,.,n.示例若一个棒球队在一个赛季要比赛162场,每场比赛取胜的机会是50-50,则该队取胜超过100 场的概率为: 1-binocdf(100,162,0.5)ans = 0.0010433相关函数 HYPERLINK jar:file:/C:/Program%20Files
24、/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binofit.html binofit | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binoinv.html binoinv | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binopdf.html binopdf | HYPERLINK jar:fil
25、e:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binornd.html binornd | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binostat.html binostat | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/cdf.html cdf附:二项式
26、分布(binomial distribution )定义二项分布的概率密度函数为where k is the number of successes in n trials of a Bernoulli process with probability of success p.The binomial distribution is discrete, defined for integers k = 0, 1, 2, . n, where it is nonzero.背景The binomial distribution models the total number of success
27、es in repeated trials from an infinite population under the following conditions:Only two outcomes are possible on each of ntrials.The probability of success for each trial is constant.All trials are independent of each other.The binomial distribution is a generalization of the HYPERLINK jar:file:/C
28、:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/brn2ivz-2.html Bernoulli distribution; it generalizes to the HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/brn2ivz-84.html multinomial distribution.参数Suppose you are collecting data from a widget man
29、ufacturing process, and you record the number of widgets within specification in each batch of100. You might be interested in the probability that an individual widget is within specification. Parameter estimation is the process of determining the parameter, p, of the binomial distribution that fits
30、 this data best in some sense.One popular criterion of goodness is to maximize the likelihood function. The likelihood has the same form as the binomial pdf above. But for the pdf, the parameters (nandp) are known constants and the variable isx. The likelihood function reverses the roles of the vari
31、ables. Here, the sample values (the xs) are already observed. So they are the fixed constants. The variables are the unknown parameters. MLE involves calculating the value of p that give the highest likelihood given the particular set of data.The function HYPERLINK jar:file:/C:/Program%20Files/MATLA
32、B/R2010a/help/toolbox/stats/help.jar%21/binofit.html binofit returns the MLEs and confidence intervals for the parameters of the binomial distribution. Here is an example using random numbers from the binomial distribution with n=100 and p=0.9. r = binornd(100,0.9)r = 85 phat, pci = binofit(r,100)ph
33、at = 0.85pci = 0.76469 0.91355The MLE for parameterp is0.8800, compared to the true value of0.9. The 95% confidence interval forp goes from 0.7998 to0.9364, which includes the true value. In this made-up example you know the true value ofp. In experimentation you do not.示例The following commands gene
34、rate a plot of the binomial pdf for n = 10 and p = 1/2.x = 0:10;y = binopdf(x,10,0.5);plot(x,y,+) 相关内容 HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/bqt29ct.html l bqt290a-1 Discrete Distributions附:二项式分布(网上)定义若某事件概率为p,现重复试验n次,该事件发生k次的概率为:P=C(k,n)pk(1-p)(n-k)C(k,
35、n)表示组合数,即从n个事物中拿出k个的方法数。二项分布的概念考虑只有两种可能结果的随机试验,当成功的概率()是恒定的,且各次试验相互独立,这种试验在统计学上称为贝努里试验(Bernoullitrial)。如果进行n次贝努里试验,取得成功次数为X(X=0,1,n)的概率可用下面的二项分布概率公式来描述:P=C(X,n) X(1-)(n-X)式中的n为独立的贝努里试验次数,为成功的概率,(1-)为失败的 HYPERLINK /doc/5399415.html t _blank 概率,X为在n次贝努里试验中出现成功的次数,C(X,n)表示在n次试验中出现X的各种组合情况,在此称为二项系数(bino
36、mialcoefficient)。内容简介二项分布,伯努里分布:进行一系列试验,如果1. 在每次试验中只有两种可能的结果,而且是互相对立的;2. 每次实验是独立的,与其它各次试验结果无关;3. 结果事件发生的 HYPERLINK /doc/5399415.html t _blank 概率在整个系列试验中保持不变,则这一系列试验称为伯努力试验。在这试验中,事件发生的次数为一 HYPERLINK /doc/2273201.html t _blank 随机事件,它服从二次分布。二项分布可以用于可靠性试验。可靠性试验常常是投入n个相同的式样进行试验T小时,而只允许k个式样失败,应用二项分布可以得到通过
37、试验的概率。一个事件必然出现,就说它100%要出现。100%=1,所以100%出现的含义就是出现的概率P=1。即必然事件的出现概率为1。若掷一枚硬币,正面向上的结果的概率为0.5。反面向上的结果的概率也是0.5。则出现正面向上事件或者反面向上事件的概率就是0.5+0.5=1,即二者必居其一。若掷两次硬币,由独立事件的概率乘法定理那么两次都是正面(反面)向上的概率是0.50.5=0.25。另外第一个是正第二个是反的出现概率也是0.50.5=0.25。同理第一个反第二个正的出现概率也是0.50.5=0.25。于是一正一反的概率是前面两个情况的和,即0.25+0.25=20.25=0.5。它们的合计
38、值仍然是1。binopdf二项分布的概率密度函数语法格式Y = binopdf(X,N,P)函数功能Y = binopdf(X,N,P) 计算X中每个X(i)的概率密度函数,其中,N中对应的N(i)为试验数,P中对应的P(i)为每次试验成功的概率。Y, N, 和 P 的大小类型相同,可以是向量、矩阵或多维数组。输入的标量将扩展成一个数组,使其大小类型与其它输入相一致。N中的值必须是正整数,0 P 1 。对于给出的x和两个参数n和p,二项分布概率密度函数为其中 q = 1 p。 y为n次独立试验中成功x次的概率,其中,每次试验成功的概率为p。指示器函数 I(0,1,.,n)(x) 确保x 取值为
39、 0, 1, ., n。 示例一个质量检查技术员一天能测试200块电路板。假设有 2% 的电路板有缺陷,该技术员在一天的测试中没有发现有缺陷的电路板的概率是多少?binopdf(0,200,0.02)ans =0.0176质量检查技术员一天中最大可能检测出有缺陷的电路板是多少块?defects=0:200;y = binopdf(defects,200,.02);x,i=max(y);defects(i) ans =4相关函数 HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/binocdf
40、.html binocdf | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/binofit.html binofit | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/binoinv.html binoinv | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/binornd
41、.html binornd | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/binostat.html binostat | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/pdf.html pdfdlmread将以ASCII码分隔的数值数据文件读入到矩阵中语法格式M = dlmread(filename)M = dlmread(filename, delimiter)M = dl
42、mread(filename, delimiter, R, C)M = dlmread(filename, delimiter, range)函数功能M = dlmread(filename)读取有分隔符的ASCII数值数据文件filename,并把数据给到矩阵M中。文件名(filename)以字符串形式用单引号括起来。 dlmread 从文件的格式中推断分隔符。M = dlmread(filename, delimiter)指定分隔符delimiter。使用 t 代表制表符 tab 作为分隔。M = dlmread(filename, delimiter, R, C)R和C指定了数据读取数据
43、,其左上角的值位于文件中的第R行,第C列。R和C从0开始,所以R=0, C=0 指向文件中的第一个值。M = dlmread(filename, delimiter, range)读取由range = R1 C1 R2 C2指定的区域块, (R1,C1)是左上角,(R2,C2)是右下角。也可以使用电子表格表示法来指定,如range = A1.B7。备注All data in the input file must be numeric. dlmread does not read files that contain nonnumeric data, even if the specified
44、 rows and columns contain only numeric data.若没有指定分隔符,当从文件格式中推断分隔符时,连续的空格符当作一个分隔符对待。若指定了分隔符,则重复的分隔符将分别作为单独的分隔符对待。If you want to specify an R, C, or range input, but not a delimiter, set the delimiter argument to the empty string, (two consecutive single quotes with no spaces in between, ). For exampl
45、e,M = dlmread(myfile.dat, , 5, 2)In this case, dlmread treats repeated white spaces as a single delimiter.Dlmread将用0填充没有边界的区域。有多行的数据文件,若以非空格分隔符结束,例如分号,则导入后会多产生全0的一列在最后。Dlmread在导入任何复数时,将其作为一个整体导入到一个复数单元中。下面是有效的复数格式:i|jExample: 5.7-3.1ii|jExample: -7j嵌入了空格的复数是不正确的格式,空格将被认为是分隔符。示例例1Export a 5-by-8 test
46、 matrix M to a file, and read it with dlmread, first with no arguments other than the filename:M = gallery(integerdata, 100, 5 8, 0); dlmwrite(myfile.txt, M, delimiter, t)dlmread(myfile.txt)ans = 96 77 62 41 6 21 2 42 24 46 80 94 36 20 75 85 61 2 93 92 82 61 45 53 49 83 74 42 1 28 94 21 90 45 18 90
47、14 20 47 68Now read a portion of the matrix by specifying the row and column of the upper left corner:dlmread(myfile.txt, t, 2, 3)ans = 92 82 61 45 53 42 1 28 94 21 90 14 20 47 68This time, read a different part of the matrix using a range specifier:dlmread(myfile.txt, t, C1.G4)ans = 62 41 6 21 2 80
48、 94 36 20 75 93 92 82 61 45 74 42 1 28 94例2Export matrix M to a file, and then append an additional matrix to the file that is offset one row below the first:M = magic(3);dlmwrite(myfile.txt, M*5 M/5, )dlmwrite(myfile.txt, M/3, -append, . roffset, 1, delimiter, )type myfile.txt40 5 30 1.6 0.2 1.215
49、25 35 0.6 1 1.420 45 10 0.8 1.8 0.4 2.6667 0.33333 21 1.6667 2.33331.3333 3 0.66667When dlmread imports these two matrices from the file, it pads the smaller matrix with zeros:dlmread(myfile.txt) 40.0000 5.0000 30.0000 1.6000 0.2000 1.2000 15.0000 25.0000 35.0000 0.6000 1.0000 1.4000 20.0000 45.0000
50、 10.0000 0.8000 1.8000 0.4000 2.6667 0.3333 2.0000 0 0 0 1.0000 1.6667 2.3333 0 0 0 1.3333 3.0000 0.6667 0 0 0替代作为dlmread的替代,可使用导入向导。选择菜单 “File | Import Data” 激活导入向导。相关函数 HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/techdoc/help.jar%21/ref/dlmwrite.html dlmwrite | HYPERLINK jar:file:/D:/Progra
51、m%20Files/MATLAB/help/techdoc/help.jar%21/ref/textscan.html textscanfprintf写数据到文本文件或输出到命令窗口语法格式fprintf(fileID, format, A, .)fprintf(format, A, .)count = fprintf(.)函数功能fprintf(fileID, format, A, .) fileID为文件句柄,指定要写入的文件;format是用来控制所写数据格式的格式符;A是用来存放数据的矩阵。applies the format to all elements of array A an
52、d any additional array arguments in column order, and writes the data to a text file. fprintf uses the encoding scheme specified in the call to HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/techdoc/help.jar%21/ref/fopen.html fopen.fprintf(format, A, .) 将A中的数据按格式format输出到命令窗口。count = fprintf(.)
53、返回fprintf写的字节数。输入参数fileID取值为下面中的一种:从文件打开时所得到的文件句柄,为一个整数值。1 为标准输出设备(屏幕)。2 for standard error.fileID缺省时,输出到屏幕,即1为默认值。format单引号括起来的是 “转换控制字符串 ”,指定输出的格式。由下面给出的各部分的组合而成:百分号后紧跟的格式字符,如%s 。输出区域的宽度,精度,和其它选项(附加格式说明符)。要原样输出的文本(普通字符)。转义字符,包括:单引号% 百分号反斜线a响铃b退格符fForm feedn换行r回车t水平制表符v垂直制表符xN十六进制数, NN八进制数, N转换字符和可
54、选的操作符按以下顺序排列(包括空格):下表列出可用的转换字符和限定类型字符。数据类型转换说 明Integer, signed%d 或 %i十进制整数%ld 或 %li64-bit base 10 values%hd 或 %hi16-bit base 10 valuesInteger, unsigned%u十进制整数%o八进制整数(octal)%x十六进制整数 (hexadecimal), 使用字母 af%X十六进制整数 (hexadecimal), 使用字母AF%lu%lo%lx or %lX64-bit values, 十、八、十六进制整数%hu%ho%hx or %hX16-bit val
55、ues, 十、八、十六进制整数Floating-point number%f定点表示法%e指数表示法,如 3.141593e+00%E同 %e,但用E,如 3.141593E+00%g%e 或 %f的紧凑格式,没有尾部的0%G%E 或 %f的紧凑格式,没有尾部的0%bx or %bX%bo%bu双精度的十六、八、十进制数值如:%bx prints pi as 400921fb54442d18%tx or %tX%to%tu单精度的十六、八、十进制数值如:%tx prints pi as 40490fdbCharacters%c单个字符%s字符串附加格式说明符,包括:字段宽度Minimum nu
56、mber of characters to print. Can be a number, or an asterisk (*) to refer to an argument in the input list. For example, the input list (%12d, intmax) is equivalent to (%*d, 12, intmax).精度For %f, %e, or %E: Number of digits to the right of the decimal point.Example: %6.4f prints pi as 3.1416For %g o
57、r %G Number of significant digits.Example: %6.4g prints pi as 3.142Can be a number, or an asterisk (*) to refer to an argument in the input list. For example, the input list (%6.4f, pi) is equivalent to (%*.*f, 6, 4, pi).FlagsActionFlagExampleLeft-justify.%-5.2fPrint sign character (+ or ).+%+5.2fIn
58、sert a space before the value. % 5.2fPad with zeros.0%05.2fModify selected numeric conversions:For %o, %x, or %X, print 0, 0 x, or 0X prefix.For %f, %e, or %E, print decimal point even when precision is 0.For %g or %G, do not remove trailing zeros or decimal point.#%#5.0fIdentifierOrder for processi
59、ng inputs. Use the syntax n$, where n represents the position of the value in the input list.For example, %3$s %2$s %1$s %2$s prints inputs A, B, C as follows: C B A B.The following limitations apply to conversions:Numeric conversions print only the real component of complex numbers.If you apply an
60、integer or string conversion to a numeric value that contains a fraction, MATLAB overrides the specified conversion, and uses %e.If you apply a string conversion (%s) to integer values, MATLAB converts values that correspond to valid character codes to characters. For example, %s converts 65 66 67 t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中小学校园网络运行维护标准手册
- 诚实守信的品格培养:小学主题班会课件
- 养成健康习惯打造阳光心态一年级主题班会课件
- 魅力中华文化:汉字演变小学主题班会课件
- 项目管理计划制定与执行全流程指南
- 2026肿瘤细胞系正规厂家大盘点 科研级细胞机构适配筛选指南 签约避坑常见问题全解析
- 新零售物流中心选址评估商洽函(6篇)
- 网络安全防护策略与技术实现方案手册
- 活动现场布置要求联系函(6篇)范文
- 招1人【招聘】西宁市城北区火车西站社区卫生服务中心财务岗位招聘模拟试卷带答案详解(达标题)
- 房地产企业资质申报:质量保证体系情况说明
- 数字人民币运营管理中心有限公司招聘笔试题库2026
- 气切病人脱机训练
- 2026心理危机干预课件
- 内衣采购员管理制度
- 特种设备作业人员资格复审申请表
- 2025年肇庆学院辅导员招聘考试真题汇编附答案
- 国企贸易内控制度
- 小学群文阅读培训课件
- 2025银行合规管理岗位考试真题及答案
- 2026年企业所得税关联交易定价原则应用与转让定价文档准备指南
评论
0/150
提交评论