matlab命令大全.docx

上传人:b****5 文档编号:11671877 上传时间:2023-03-30 格式:DOCX 页数:15 大小:89.84KB
下载 相关 举报
matlab命令大全.docx_第1页
第1页 / 共15页
matlab命令大全.docx_第2页
第2页 / 共15页
matlab命令大全.docx_第3页
第3页 / 共15页
matlab命令大全.docx_第4页
第4页 / 共15页
matlab命令大全.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

matlab命令大全.docx

《matlab命令大全.docx》由会员分享,可在线阅读,更多相关《matlab命令大全.docx(15页珍藏版)》请在冰豆网上搜索。

matlab命令大全.docx

matlab命令大全

绘制正弦曲线和余弦曲线。

x=[0:

0.5:

360]*pi/180;

plot(x,sin(x),x,cos(x));

求方程3x4+7x3+9x2-23=0的全部根。

p=[3,7,9,0,-23];%建立多项式系数向量

x=roots(p)%求根

用求特征值的方法解方程。

3x5-7x4+5x2+2x-18=0

p=[3,-7,0,5,2,-18];

A=compan(p);%A的伴随矩阵

x1=eig(A)%求A的特征值

x2=roots(p)%直接求多项式p的零点

求积分

quad('x.*log(1+x)',0,1)

求解线性方程组。

a=[2,-3,1;8,3,2;45,1,-9];

b=[4;2;17];

x=inv(a)*b

abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。

用于取整的函数有fix、floor、ceil、round,要注意它们的区别。

rem与mod函数的区别。

rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或为标量。

在MATLAB中,还可以用linspace函数产生行向量。

其调用格式为:

linspace(a,b,n)

其中a和b是生成向量的第一个和最后一个元素,n是元素总数。

显然,linspace(a,b,n)与a:

(b-a)/(n-1):

b等价。

常用的产生通用特殊矩阵的函数有:

zeros:

产生全0矩阵(零矩阵)。

ones:

产生全1矩阵(幺矩阵)。

eye:

产生单位矩阵。

rand:

产生0~1间均匀分布的随机矩阵。

randn:

产生均值为0,方差为1的标准正态分布随机矩阵。

分别建立3×3、3×2和与矩阵A同样大小的零矩阵。

(1)建立一个3×3零矩阵。

zeros(3)

(2)建立一个3×2零矩阵。

zeros(3,2)

(3)设A为2×3矩阵,则可以用zeros(size(A))建立一个与矩阵A同样大小零矩阵。

A=[123;456];%产生一个2×3阶矩阵A

zeros(size(A))%产生一个与矩阵A同样大小的零矩阵

(1)在区间[20,50]内均匀分布的5阶随机矩阵。

(2)均值为0.6、方差为0.1的5阶正态分布随机矩阵。

命令如下:

x=20+(50-20)*rand(5)

y=0.6+sqrt(0.1)*randn(5)

此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。

求(x+y)5的展开式。

在MATLAB命令窗口,输入命令:

pascal(6)

矩阵次对角线上的元素1,5,10,10,5,1即为展开式的系数。

点运算符有.*、./、.\和.^。

两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。

1.矩阵平方根sqrtm

sqrtm(A)计算矩阵A的平方根。

2.矩阵对数logm

logm(A)计算矩阵A的自然对数。

此函数输入参数的条件与输出结果间的关系和函数sqrtm(A)完全一样

求一元二次方程ax2+bx+c=0的根。

程序如下:

a=input('a=?

');

b=input('b=?

');

c=input('c=?

');

d=b*b-4*a*c;

x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];

disp(['x1=',num2str(x

(1)),',x2=',num2str(x

(2))]);

计算分段函数的值。

x=input('请输入x的值:

');

ifx<=0

y=(x+sqrt(pi))/exp

(2);

else

y=log(x+sqrt(1+x*x))/2;

end

Y

先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。

程序如下:

A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];

try

C=A*B;

catch

C=A.*B;

end

C

lasterr%显示出错原因

一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。

输出全部水仙花数。

form=100:

999

m1=fix(m/100);%求m的百位数字

m2=rem(fix(m/10),10);%求m的十位数字

m3=rem(m,10);%求m的个位数字

ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3

disp(m)

end

end

例3-14编写函数文件求半径为r的圆的面积和周长。

function[s,p]=fcircle(r)

%CIRCLEcalculatetheareaandperimeterofacircleofradiir

%r圆半径

%s圆面积

%p圆周长

%2004年7月30日编

s=pi*r*r;

p=2*pi*r;

例3-15利用函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换。

function[rho,theta]=tran(x,y)

rho=sqrt(x*x+y*y);

theta=atan(y/x);

调用tran.m的命令文件main1.m:

x=input('Pleaseinputx=:

');

y=input('Pleaseinputy=:

');

[rho,the]=tran(x,y);

rho

the

利用MATLAB产生指数序列x[k]=Kaku[k]

a=input('输入指数a=');

K=input('输入常数K=');

N=input('输入序列长度N=');

k=0:

N-1;

x=K*a.^k;

stem(k,x);

xlabel('时间');ylabel('幅度');

title(['\alpha=',num2str(a)]);

利用MATLAB函数conv计算两个序列的离散卷积。

x=[-0.5,0,0.5,1];kx=-1:

2;

h=[1,1,1];kh=-2:

0;

y=conv(x,h);

k=kx

(1)+kh

(1):

kx(end)+kh(end);

stem(k,y);

xlabel('k');ylabel('y');

%ComputationofSequenceDTFT

b=[1];

a1=[1-0.9];a2=[10.9];

w=linspace(0,2*pi,512);

X1=freqz(b,a1,w);

X2=freqz(b,a2,w);

plot(w/pi,abs(X1),w/pi,abs(X2),':

');

legend('\alpha=0.9','\alpha=-0.9');

已知输入信号为角频率分别为0.1和0.4的离散正弦信号。

设计简单FIR高通滤波器,滤除低频分量,保留高频分量。

%信号通过简单FIRDF的响应

%Setupthefiltercoefficients

a=1;

b=[-6.7619513.456335-6.76195];

%Generatethetwosinusoidalsequences

N=100;k=0:

N-1;

x1=cos(0.1*k);

x2=cos(0.4*k);

%Generatethefilteroutputsequence

y=filter(b,a,x1+x2);

plot(k,y,'r',k,x2,'b--',k,x1+x2,'k:

');

axis([0100-24]);

ylabel('Amplitude');xlabel('Timeindexk');

legend('y[k]','x2[k]','x1[k]+x2[k]');

试求下面系统函数的零极点形式二阶因子形式。

%Determinationofthefactoredformand

%thesecondordersectionformofa

%rationalz-transform

b=[100.040];

a=[1-0.80.16-0.128];

[z,p,k]=tf2zp(b,a);

disp('Zerosareat');disp(z);

disp('Polesareat');disp(p);

disp('Gainconstant');disp(k);

sos=zp2sos(z,p,k);

disp('Second-ordersections');

disp(real(sos));

已知一离散因果的LTI系统的系统函数为

画出z平面的零极点分布图。

%zerosandpolesofthetransferfunction

b=[1210];

a=[1-0.5-0.0050.3];

zplane(b,a);

已知一段语音信号中混入了一频率fn=1200Hz正弦型噪音信号。

抽样频率fsam=22050Hz。

试用二阶带阻滤波器滤除语音信号中的噪音信号。

Fn=1200;W3dB=0.06;

%读入语音信号

[x,Fs]=wavread('sample2');

%播放语音信号

sound(x,Fs);pause;

%设计滤波器

W0=2*pi*Fn/Fs;

beta=cos(W0);

alpha=min(roots([1-2/cos(W3dB)1]));

a=[1,-beta*(1+alpha),alpha];

b=[1-2*beta1]*(1+alpha)/2;

%信号滤波

y=filter(b,a,x);

%播放滤波后语音信号

sound(y,Fs);

利用MATLAB计算16点序列x[k]的512点DFT

N=16;

k=0:

N-1;L=0:

511;

x=cos(2*pi*k*4./16);

X=fft(x);

plot(k/16,abs(X),'o');

holdon

XE=fft(x,512);

plot(L/512,abs(XE))

利用MATLAB由DFT计算x[k]*h[k]。

x[k]={1,2,0,1},h[k]={2,2,1,1}

%CalculateLinearConvolutionbyDFT

x=[1201];

h=[2211];

%determinethelengthforzeropadding

L=length(x)+length(h)-1;

%ComputetheDFTsbyzero-padding

XE=fft(x,L);

HE=fft(h,L);

%DeterminetheIDFToftheproduct

y1=ifft(XE.*HE);

已知一连续信号为

;

若以抽样频率

Hz对该信号进行抽样,试求由DFT分析其频谱时,能够分辨此两个谱峰所需的最少样本点数。

N=30;%数据的长度

L=512;%DFT的点数

f1=100;f2=120;

fs=600;%抽样频率

T=1/fs;%抽样间隔

ws=2*pi*fs;

t=(0:

N-1)*T;

x=cos(2*pi*f1*t)+cos(2*pi*f2*t);

X=fftshift(fft(x,L));

w=(-ws/2+(0:

L-1)*ws/L)/(2*pi);

plot(w,abs(X));

ylabel(‘幅度谱’);

N=50;%数据的长度

L=512;%DFT的点数

f1=100;f2=150;

fs=600;%抽样频率

T=1/fs;%抽样间隔

ws=2*pi*fs;

t=(0:

N-1)*T;

f=cos(2*pi*f1*t)+0.15*cos(2*pi*f2*t);

wh=(hamming(N))';

f=f.*wh;

F=fftshift(fft(f,L));

w=(-ws/2+(0:

L-1)*ws/L)/(2*pi);

plot(w,abs(F));

ylabel('幅度谱')

利用MATLAB设计BWLP

[N,wc]=buttord(wp,ws,Ap,As,'s')

确定模拟Butterworthfilter的阶数N和3-dB截频wc。

wc是由阻带参数确定的。

's'表示模拟域。

[num,den]=butter(N,wc,'s')

确定阶数为N,3-dB截频为wc(radian/s)的Butterworthfilter分子和分母多项式。

's'表示模拟域。

[z,p,k]=buttap(N)

确定N阶归一化的Butterworthfilter的零点、极点和增益(gain)

设计满足下列条件的模拟Butterworth低通滤波器fp=1kHz,fs=2kHz,Ap=1dB,As=40dB

Wp=2*pi*1000;Ws=2*pi*2000;Ap=1;As=40;

[N,Wc]=buttord(Wp,Ws,Ap,As,'s');

fprintf('Orderofthefilter=%.0f\n',N)

[num,den]=butter(N,Wc,'s');

disp('Numeratorpolynomial');

fprintf('%.4e\n',num);

disp('Denominatorpolynomial');

fprintf('%.4e\n',den);

omega=[WpWs];h=freqs(num,den,omega);

fprintf('Ap=%.4f\n',-20*log10(abs(h

(1))));

fprintf('As=%.4f\n',-20*log10(abs(h

(2))));

omega=[0:

200:

12000*pi];

h=freqs(num,den,omega);

gain=20*log10(abs(h));plot(omega/(2*pi),gain);

xlabel('FrequencyinHz');ylabel('GainindB');

利用MATLAB设计CBILP

[N,wc]=cheb1ord(wp,ws,Ap,As,'s')

确定模拟Chebyshevfilter的阶数N。

wc=wp(rad/s)

[num,den]=cheby1(N,Ap,wc,'s')

确定阶数为N,通带截频为wc(radian/s)的Chebyshevfilter。

's'表示模拟域

[z,p,k]=cheb1ap(N,Ap);

确定N阶归一化的Chebyshevfilter的零点、极点和增益(gain)。

设计满足下列条件的模拟CBI型低通滤波器fp=1kHz,fs=2kHz,Ap=1dB,As=40dB

%filterspecification

Wp=2*pi*1000;Ws=2*pi*2000;Ap=1;As=40;%Computerfilterorder

[N,Wc]=cheb1ord(Wp,Ws,Ap,As,'s');

fprintf('Orderofthefilter=%.0f\n',N)%computefiltercoefficients

[num,den]=cheby1(N,Ap,Wc,'s');

disp('Numeratorpolynomial');

fprintf('%.4e\n',num);

disp('Denominatorpolynomial');

fprintf('%.4e\n',den);

设计满足下列条件的模拟CBI型低通滤波器

fp=1kHz,fs=2kHz,Ap=1dB,As=40dB%ComputeApandAsofdesignedfilter

omega=[WpWs];

h=freqs(num,den,omega);

fprintf('Ap=%.4f\n',-20*log10(abs(h

(1))));

fprintf('As=%.4f\n',-20*log10(abs(h

(2))));

利用MATLAB设计CBIILP

[N,wc]=cheb2ord(wp,ws,Ap,As,'s')

确定模拟切比雪夫II型滤波器的阶数N。

[num,den]=cheby2(N,As,wc,'s')

确定阶数为N,阻带衰减为AsdB的切比雪夫II型滤波器的分子和分母多项式。

wc由cheb2ord函数确定。

利用MATLAB设计椭圆低通滤波器

[N,wc]=ellipord(wp,ws,Ap,As,'s')

确定椭圆滤波器的阶数N。

wc=wp。

[num,den]=ellip(N,Ap,As,wc,'s')

确定阶数为N,通带衰减为ApdB,阻带衰减为AsdB的椭圆滤波器的分子和分母多项式。

wc是椭圆滤波器的通带截频。

设计满足下列条件的模拟BW型高通滤波器fp=5kHz,fs=1kHz,Ap1dB,As40dB

%高通滤波器的设计

wp=1/(2*pi*5000);ws=1/(2*pi*1000);Ap=1;As=40;

[N,Wc]=buttord(wp,ws,Ap,As,'s');

[num,den]=butter(N,Wc,'s');

disp('LP分子多项式');

fprintf('%.4e\n',num);

disp('LP分母多项式');

fprintf('%.4e\n',den);

[numt,dent]=lp2hp(num,den,1);

disp('HP分子多项式');

fprintf('%.4e\n',numt);

disp('HP分母多项式');

fprintf(‘%.4e\n’,dent);

试设计一个满足下列指标的BW型带通滤波wp1=6rad/s,wp2=8rad/s,ws1=4rad/s,ws2=11rad/s,Ap1dB,As32dB。

%带通滤波器的设计

wp=1;ws=3.3182;Ap=1;As=32;

w0=sqrt(48);B=2;

[N,Wc]=buttord(wp,ws,Ap,As,'s');

[num,den]=butter(N,Wc,'s');

[numt,dent]=lp2bp(num,den,w0,B);

w=linspace(2,12,1000);

h=freqs(numt,dent,w);

plot(w,20*log10(abs(h)));grid;

xlabel('Frequencyinrad/s');

ylabel('GainindB')

试设计一个满足下列指标的BW型带阻滤波器

Ap=1dB;As=20dB;wp1=10;wp2=30;ws1=19;ws2=21。

Ap=1;As=20;wp1=10;wp2=30;ws1=19;ws2=21;

B=ws2-ws1;w0=sqrt(ws1*ws2);

wLp1=B*wp1/(w0*w0-wp1*wp1);

wLp2=B*wp2/(w0*w0-wp2*wp2);

wLp=max(abs(wLp1),abs(wLp2));

[N,Wc]=buttord(wLp,1,Ap,As,'s')

[num,den]=butter(N,Wc,'s');[numt,dent]=lp2bs(num,den,w0,B);

w=linspace(5,35,1000);

h=freqs(numt,dent,w);

plot(w,20*log10(abs(h)));

w=[wp1ws1ws2wp2];

set(gca,'xtick',w);grid;

h=freqs(numt,dent,w);A=-20*log10(abs(h))

利用AF-BWfilter及脉冲响应不变法设计一DF,满足

Wp=0.2p,Ws=0.6p,Ap2dB,As15dB

%DesignDFBWlow-passfilterusingimpulseinvariance

%DFBWLPspecfication

Wp=0.2*pi;Ws=0.6*pi;Ap=2;As=15;

Fs=1;%Samplingfrequency(Hz)

%AnalogButterworthspecfication

wp=Wp*Fs;ws=Ws*Fs;

%determinetheorderofAFfilter

N=buttord(wp,ws,Ap,As,'s');

%determinethe3-dbcutofffrequencyofBWfilterfrompass-bandspecfication

wc=wp/(10^(0.1*Ap)-1)^(1/N/2);

%determinetheAF-BWfilter

[numa,dena]=butter(N,wc,'s');

利用AF-BWfilter及脉冲响应不变法设计一DF,满足

Wp=0.2p,Ws=0.6p,Ap2dB,As15dB

%determinetheDFfilter

[numd,dend]=impinvar(numa,dena,Fs);

%plotthefrequencyresponse

w=linspace(0,pi,1024);

h=freqz(numd,dend,w);

norm=max(abs(h));

numd=numd/norm;

plot(w/pi,20*log10(abs(h/norm)));

xlabel('Normalizedfrequency');

ylabel('Gain,dB');

%computerApAsofthedesignedfilter

w=[WpWs];

h=freqz(numd,dend,w);

fprintf('Ap=%.4f\n',-20*log10(abs(h

(1))));

fprintf('As=%.4f\n',-20*log10(abs(h

(2))));

用双线性变换法和一阶巴特沃思低通滤波器,设计一个3dB截频为Wp的数字滤波器,并与脉冲响应不变法设计的DF比较。

H双(z)和H脉(z)幅度响应比较的MATLAB实现

Wp=0.6*pi;

b=[1-exp(-Wp)];b1=tan(Wp/2)*[11];

a=[1-exp(-Wp)];a1=[1+tan(Wp/2)tan(Wp/2)-1];

w=linspace(0,pi,512);

h=freqz(b,a,w);h1=freqz(b1,a1,w);

plot(w/pi,(abs(h)),w/pi,(abs(h1)));

xlabel('Normalizedfrequency');

ylabel('Amplitude');

set

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 教育学心理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1