求解以下matlab程序!

求解以下matlab程序!,第1张

这样改:

clc

clear

SNR_DB=0:1:12;

sum=1000000;

data= randsrc(sum,2,[0 1]);

[a1,b1]=find(data(:,1)==0&data(:,2)==0);

message(a1)=-1-1i;

[a2,b2]=find(data(:,1)==0&data(:,2)==1);

message(a2)=-1+1i;

[a3,b3]=find(data(:,1)==1&data(:,2)==0);

message(a3)=1-1i;

[a4,b4]=find(data(:,1)==1&data(:,2)==1);

message(a4)=1+1i;

scatterplot(message)

title('B点信号的星座图')

A=1;

Tb=1;

Eb=AATb;

P_signal=Eb/Tb;

NO=Eb/(10^(SNR_DB/10));

P_noise=P_signalNO;

sigma=sqrt(P_noise);

for Eb_NO_id=1:length(sigma)

noise1=sigma(Eb_NO_id)randn(1,sum);

noise2=sigma(Eb_NO_id)randn(1,sum);

receive=message+noise1+noise21i;

%resum=0;

%total=0;

m1=find(angle(receive)<=pi/2&angle(receive)>0);

remessage(1,m1)=1+1i;

redata(m1,1)=1;

redata(m1,2)=1;

m2= find( angle(receive)>pi/2&angle(receive)<=pi);

remessage(1,m2)=-1+1i;

redata(m2,1)=0;

redata(m2,2)=1;

m3=find( angle(receive)>-pi&angle(receive)<=-pi/2);

remessage(1,m3)=-1-1i;

redata(m3,1)=0;

redata(m3,2)=0;

m4=find( angle(receive)>-pi/2&angle(receive)<=0);

remessage(1,m4)=1-1i;

redata(m4,1)=1;

redata(m4,2)=0;

[resum,ratio1]=symerr(data,redata);

pbit(Eb_NO_id)=resum/(sum2);

[total,ratio2]=symerr(message,remessage);

pe(Eb_NO_id)=total/sum;

end

scatterplot(receive)

title('C点信号的星座图')

Pe=1-(1-1/2erfc(sqrt(10^(SNR_DB/10)/2)))^2;

Pbit=1/2erfc(sqrt(10^(SNR_DB/10)/2));

figure(3)

semilogy(SNR_DB,pe,':s',SNR_DB,Pe,'-',SNR_DB,pbit,'-o',SNR_DB,Pbit,':+')

legend('QPSK仿真误码率','QPSK理论误码率','QPSK仿真误比特率','QPSK理论误比特率')

xlabel('信噪比/dB')

ylabel('概率P')

grid on

首先你要保证你目录下面有melfb函数,这个函数应该不是matlab的系统函数,然后你的输入s应该是你的音频文件的矩阵,fs是melfb函数用的,估计是滤波频率啥的,没做过音频处理的程序,但这个函数你至少保证你有这些东西才能正常运行。

程序没有错误啊,估计是你使用上的问题。

把上面代码保存为名字 rpgtohsim 的文件,放到我的文档--Matlab文件夹里(win7是库--文档--Matlab文件夹)。假设你要处理的为E盘根目录下的001jpg,就只要把语句F=imread(x)中的x换成 'e:\001jpg’ 即可(注意有引号)。启动Matlab在命令窗口输入rpgtohsi就可以运行了,输入1~7选择你想要的处理方式。

Matlab用法简介绪 论Matlab是“Matrix Laboratory”的缩写,意为“矩阵实验室”,是当今美国很流行的科学计算软件.信息技术、计算机技术发展到今天,科学计算在各个领域得到了广泛的应用.在许多诸如控制论、时间序列分析、系统仿真、图像信号处理等方面产生了大量的矩阵及其相应的计算问题.自己去编写大量的繁复的计算程序,不仅会消耗大量的时间和精力,减缓工作进程,而且往往质量不高.美国Mathwork软件公司推出的Matlab软件就是为了给人们提供一个方便的数值计算平台而设计的.Matlab是一个交互式的系统,它的基本运算单元是不需指定维数的矩阵,按照IEEE的数值计算标准(能正确处理无穷数Inf(Infinity)、无定义数NaN(not-a-number)及其运算)进行计算.系统提供了大量的矩阵及其它运算函数,可以方便地进行一些很复杂的计算,而且运算效率极高.Matlab命令和数学中的符号、公式非常接近,可读性强,容易掌握,还可利用它所提供的编程语言进行编程完成特定的工作.除基本部分外,Matlab还根据各专门领域中的特殊需要提供了许多可选的工具箱,如应用于自动控制领域的Control System工具箱和神经网络中Neural Network工具箱等.第一节 Matlab的安装及使用§11 Matlab的安装Matlab有各种版本,早期有Matlab 10 for 386的DOS版本,后来逐步发展.这里介绍的版本是Matlab 6x for Windows.因为它使用方便,界面美观,我们选择它作为主要讲解版本.Matlab还有许多附加的部分,最常见的部分称为Simulink,是一个用作系统仿真的软件包,它可以让您定义各种部件,定义各自对某种信号的反应方式及与其它部件的连接方式.最后选择输入信号,系统会仿真运行整个模拟系统,并给出统计数据.Simulink有时是作为Matlab的一部分提供的,称为Matlab with Simulink版本.Matlab还有许多工具箱,它们是根据各个特殊领域的需要,用Matlab自身的语言编写的程序集,使用起来非常方便.您可以视工作性质和需要购买相应的工具箱.常见的工具箱有:

Signal Process 信号处理 System Identification 系统辨识

Optimization 优化 Neural Network 神经网络

Control System 自动控制 Spline 样条

Symbolic Math 符号代数 Image Process 图像处理

Nonlinear Control 非线性控制 Statistics 统计

§12 Matlab基本用法从Windows中双击Matlab图标,会出现Matlab命令窗口(Command Window),在一段提示信息后,出现系统提示符“>>”.Matlab是一个交互系统,您可以在提示符后键入各种命令,通过上下箭头可以调出以前打入的命令,用滚动条可以查看以前的命令及其输出信息.如果对一条命令的用法有疑问的话,可以用Help菜单中的相应选项查询有关信息,也可以用help命令在命令行上查询,您可以试一下help、help help和help eig(求特征值的函数)命令.下面我们先从输入简单的矩阵开始掌握Matlab的功能.§121输入简单的矩阵输入一个小矩阵的最简单方法是用直接排列的形式.矩阵用方括号括起,元素之间用空格或逗号分隔,矩阵行与行之间用分号分开.例如输入:A=[1 2 3 ; 4 5 6 ; 7 8 0]系统会回答A =1 2 34 5 67 8 0表示系统已经接收并处理了命令,在当前工作区内建立了矩阵A.大的矩阵可以分行输入,用回车键代替分号,如:A=[ 1 2 34 5 67 8 0 ]结果和上式一样,也是A =1 2 34 5 67 8 0§122矩阵元素Matlab的矩阵元素可以是任何数值表达式.如:x=[ -13 sqrt(3) (1+2+3)4/5]结果:x =-13000 17321 48000在括号中加注下标,可取出单独的矩阵元素.如:x(5)=abs(x(1))

结果x =-13000 17321 48000 0 13000注:结果中自动产生了向量的第5个元素,中间未定义的元素自动初始为零.大的矩阵可把小的矩阵作为其元素来完成,如:A=[A; [10 11 12]]结果A =1 2 34 5 67 8 010 11 12小矩阵可用“:”从大矩阵中抽取出来,如:A=A(1:3,:);即从A中取前三行和所有的列,重新组成原来的A (详细介绍参见第二节的相关内容)§123语句和变量Matlab的表述语句、变量的类型说明由Matlab系统解释和判断.Matlab语句通常形式为:变量=表达式或者使用其简单形式为:表达式表达式由 *** 作符或其它特殊字符、函数和变量名组成.表达式的结果为一个矩阵,显示在屏幕上,同时保存在变量中以留用.如果变量名和“=”省略,则具有ans名(意思指回答)的变量将自动建立.例如:键入1900/81结果为:ans =234568需注意的问题有以下几点:●语句结束键入回车键,若语句的最后一个字符是分号,即“;”,则表明不输出当前命令的结果.●如果表达式很长,一行放不下,可以键入“…”(三个点,但前面必须有个空格,目的是避免将形如“数2 …”理解为“数2”与“”的连接,从而导致错误),然后回车.●变量和函数名由字母加数字组成,但最多不能超过63个字符,否则系统只承认前63个字符.●Matlab变量字母区分大小写,如A和a不是同一个变量,函数名一般使用小写字母,如inv(A)不能写成INV(A),否则系统认为未定义函数.§124 who和系统预定义变量输入who命令可检查工作空间中建立的变量,键入:who系统输出为:Your variables are:A ans x这里表明三个变量已由前面的例子产生了.但列表中列出的并不是系统全部的变量,系统还有以下内部变量:eps、pi、Inf、NaN变量eps在决定诸如矩阵的奇异性时,可作为一个容许差,容许差的初值为10到10以后计算机所能表示的下一个最大浮点数,IEEE在各种计算机、工作站和个人计算机上使用这个算法.用户可将此值置为任何其它值(包括0值).Matlab的内部函数pinc和rank以eps为缺省的容许差.

变量pi是,它是用imag(log(-1))建立的Inf表示无穷大.如果您想计算1/0S=1/0结果会是Warning:Divide by zeroS=Inf具有IEEE规则的机器,被零除后,并不引出出错条件或终止程序的运行,而产生一个警告信息和一个特殊值在计算方程中列出来.变量NaN表示它是个不定值.由Inf/Inf或0/0运算产生.要了解当前变量的信息请键入whos,屏幕将显示:Name Size Bytes ClassA 4x3 96 double arrayS 1x1 8 double arrayans 1x1 8 double arrayx 1x5 40 double arrayGrand total is 19 elements using 152 bytes从size及bytes项目可以看出,每一个矩阵实元素需8个字节的内存.4×3的矩阵使用96个字节,全部变量的使用内存总数为152个字节.自由空间的大小决定了系统变量的多少,如计算机上有虚拟内存的话,其可定义的变量个数会大大增加.§125数和算术表达式Matlab中数的表示方法和一般的编程语言没有区别.如:3 -99 00001963972 16021E-20 602252e23在计算中使用IEEE浮点算法其舍入误差是eps.浮点数表示范围是10-308~10308.数学运算符有:+ 加- 减 乘/ 右除\ 左除^ 幂这里1/4和4\1有相同的值都等于025(注意比较:1\4=4).只有在矩阵的除法时左除和右除才有区别.§126复数与矩阵在Matlab中输入复数首先应该建立复数单位:i=sqrt(-1)及j=sqrt(-1)之后复数可由下面语句给出:Z=3+4i (注意: 在4与i之间不要留有任何空间!)输入复数矩阵有两个方便的方法,如:A=[1 2; 3 4] + i[5 6; 7 8]和 A=[1+5i 2+6i; 3+7i 4+8i]

两式具有相等的结果.但当复数作为矩阵的元素输入时,不要留有任何空间,如1+5i,如在“+”号左右留有空格,就会被认为是两个分开的数.不过实际使用复数时并没有这么麻烦,系统有一个名为startupm的Matlab命令文件,建立复数单位的语句也放在其中.当Matlab启动时,此文件自动执行,i和j将自动建立.§127输出格式任何Matlab语句执行结果都可在屏幕上显示,同时赋给指定的变量,没有指定变量时赋给ans.数字显示格式可由format命令来控制(Windows系统下的Matlab系统的数字显示格式可以由Option菜单中的Numerical Format菜单改变).format仅影响矩阵的显示,不影响矩阵的计算与存贮.(Matlab以双精度执行所有的运算)首先,如果矩阵元素是整数则矩阵显示就没有小数,如x=[-1 0 1],结果为:x=-1 0 1如果矩阵元素不是整数则输出形式有:(用命令:format 格式进行切换)

格式 中文解释 说明

format 短格式(缺省格式) Default Same as SHORT

format short 短格式(缺省格式) Scaled fixed point format with 5 digits(只显示五位十进制数)

format long 长格式 Scaled fixed point format with 15 digits

format short e 短格式e方式 Floating point format with 5 digits

format long e 长格式e方式 Floating point format with 15 digits

format short g 短格式g方式 Best of fixed or floating point format with 5 digits

format long g 长格式g方式 Best of fixed or floating point format with 15 digits

format hex 16进制格式 Hexadecimal format

format + +格式 The symbols +, - and blank are printed for positive, negative and zero elements Imaginary parts are ignored

format bank 银行格式 Fixed format f

以上就是关于求解以下matlab程序!全部的内容,包括:求解以下matlab程序!、matlab程序、求解一段简单的MATLAB程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10144786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存