当前位置:文档之家› matlab实验指导

matlab实验指导

matlab实验指导
matlab实验指导

《数字信号处理》MATLAB实验指导

实验一:离散时间信号和离散时间系统

一、 实验目的:

1、 以MA TLAB 为工具学习离散时间信号的图形表示;

2、 以课本提供的例程,练习、理解典型离散信号及其基本运算;

3、 通过MATLAB 仿真简单的离散时间系统,研究其时域特性;

4、 加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。 二、 实验内容:

1、 典型序列的产生与显示;

2、 序列的简单运算;

3、 复合和复杂信号的产生与显示;

4、 离散时间系统的仿真:线性和非线性系统、时变和非时变系统的仿真;

5、 线性时不变离散时间系统:系统冲激响应、卷积运算、系统的级联、系统的稳

定性;

三、实验例程:

1、 参照课本例程产生下列序列,并用plot 、stem 好人subplot 命令绘出其图形: ①单位取样序列()n δ;②单位阶跃序列()n μ;③矩形序列RN(n),④斜变序列()n n μ。 所需输入的数据是产生序列的长度L 和抽样频率F T 。 % Program P1_1

% Generation of a Unit Sample Sequence clf;

% Generate a vector from -10 to 20 n = -10:20;

% Generate the unit sample sequence u = [zeros(1,10) 1 zeros(1,20)]; % Plot the unit sample sequence stem(n,u);

xlabel('Time index n');ylabel('Amplitude'); title('Unit Sample Sequence'); axis([-10 20 0 1.2]);

2、 编写MATLAB 实指数序列程序, % Program P1_3

% Generation of a real exponential sequence clf;

n = 0:35; a = 1.2; K = 0.2; x = K*a.^n;

stem(n,x);

xlabel('Time index n');ylabel('Amplitude');

3、编写产生swept frequency sinusoidal 序列的程序。

% Program P1_7

% Generation of a swept frequency sinusoidal sequence

n = 0:100;

a = pi/2/100;

b = 0;

arg = a*n.*n + b*n;

x = cos(arg);

clf;

stem(n, x);

axis([0,100,-1.5,1.5]);

title('Swept-Frequency Sinusoidal Signal');

xlabel('Time index n');

ylabel('Amplitude');

grid; axis;

>>

4、产生正弦振幅调制序列

% Generation of amplitude modulated sequence

clf;

n = 0:100;

m = 0.4;fH = 0.1; fL = 0.01;

xH = sin(2*pi*fH*n);

xL = sin(2*pi*fL*n);

y = (1+m*xL).*xH;

stem(n,y);grid;

xlabel('Time index n');ylabel('Amplitude');

5、用滑动平均滤波器平滑带噪信号,讨论滤波器长度对平滑效果、输出平滑后信号与

输入带噪信号之间延时的影响。

% Program P1_5

% Signal Smoothing by Averaging

clf;

R = 51;

d = 0.8*(rand(R,1) - 0.5); % Generat

e random noise

m = 0:R-1;

s = 2*m.*(0.9.^m); % Generate uncorrupted signal

x = s + d'; % Generate noise corrupted signal

subplot(2,1,1);

plot(m,d','r-',m,s,'g--',m,x,'b-.');

xlabel('Time index n');ylabel('Amplitude');

legend('d[n] ','s[n] ','x[n] ');

x1 = [0 0 x];x2 = [0 x 0];x3 = [x 0 0];

y = (x1 + x2 + x3)/3;

subplot(2,1,2);

plot(m,y(2:R+1),'r-',m,s,'g--');

legend( 'y[n] ','s[n] ');

xlabel('Time index n');ylabel('Amplitude');

6、编写输入序列、计算输出序列、差分输出并画出输出序列。

% Program P2_4

% Generate the input sequences

clf;

n = 0:40; D = 10;a = 3.0;b = -2;

x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);

xd = [zeros(1,D) x];

num = [2.2403 2.4908 2.2403];

den = [1 -0.4 0.75];

ic = [0 0]; % Set initial conditions

% Compute the output y[n]

y = filter(num,den,x,ic);

% Compute the output yd[n]

yd = filter(num,den,xd,ic);

% Compute the difference output d[n]

d = y - yd(1+D:41+D);

% Plot the outputs

subplot(3,1,1)

stem(n,y);

ylabel('Amplitude');

title('Output y[n]'); grid;

subplot(3,1,2)

stem(n,yd(1:41));

ylabel('Amplitude');

title(['Output due to Delayed Input x[n ?', num2str(D),']']); grid; subplot(3,1,3)

stem(n,d);

xlabel('Time index n'); ylabel('Amplitude');

title('Difference Signal'); grid;

7、编写输入序列和系统单位脉冲响应的卷积程序并画出图形。

% Program P2_7

clf;

h = [3 2 1 -2 1 0 -4 0 3]; % impulse response x = [1 -2 3 -4 3 2 1]; % input sequence

y = conv(h,x);

n = 0:14;

subplot(2,1,1);

stem(n,y);

xlabel('Time index n'); ylabel('Amplitude'); title('Output Obtained by Convolution'); grid; x1 = [x zeros(1,8)];

y1 = filter(h,1,x1);

subplot(2,1,2);

stem(n,y1);

xlabel('Time index n'); ylabel('Amplitude'); title('Output Generated by Filtering'); grid;

8、编写输入信号经滤波形成的系统输出信号。

% Program P2_9

% Generate the input sequence

clf;

n = 0:299;

x1 = cos(2*pi*10*n/256);

x2 = cos(2*pi*100*n/256);

x = x1+x2;

% Compute the output sequences

num1 = [0.5 0.27 0.77];

y1 = filter(num1,1,x); % Output of System #1 den2 = [1 -0.53 0.46];

num2 = [0.45 0.5 0.45];

y2 = filter(num2,den2,x); % Output of System #2 % Plot the output sequences

subplot(2,1,1);

plot(n,y1);axis([0 300 -2 2]);

ylabel('Amplitude');

title('Output of System #1'); grid;

subplot(2,1,2);

plot(n,y2);axis([0 300 -2 2]);

xlabel('Time index n'); ylabel('Amplitude'); title('Output of System #2'); grid;

9、

四、本实验用到的matlab命令

Stem plot sin abs cos conv clf subplot filter impz

实验二:时域连续时间信号和频域抽样理论的验证与观察

一、实验目的:

1、理解并掌握信号时域采样和频率抽样理论涉及的过程和效果;

2、通过编程加深理解奈奎斯特采样定理,理解不满足采样条件的对时域和频域采样造成的混叠现象。

二、实验内容:

1、时域的采样过程、采样定理和混叠效果;

2、频域中的采样效果;

3、学习buttworth模拟低通滤波器的设计命令;

三、实验例程

1、连续时间信号的理想抽样及其混叠效果

clf;

T = 0.4;f = 25;

n = (0:T:1)';

xs = cos(2*pi*f*n);

t = linspace(-0.5,1.5,500)';

ya = sinc((1/T)*t(:,ones(size(n))) - (1/T)*n(:,ones(size(t)))')*xs;

plot(n,xs,'o',t,ya);grid;

xlabel('Time, msec');ylabel('Amplitude');

title('Reconstructed continuous-time signal y_{a}(t)');

axis([0 1 -1.2 1.2])

2、.频率抽样及其混叠效果

clf;

t = 0:0.002:50;

xa = 2*t.*exp(-t);

subplot(4,2,1)

plot(t,xa);grid

xlabel('Time, msec');ylabel('Amplitude');

title('Continuous-time signal x_{a}(t)');

subplot(4,2,2)

wa = 0:10/511:10;

ha = freqs(2,[1 2 1],wa);

plot(wa/(2*pi),abs(ha));grid;

xlabel('Frequency, kHz');ylabel('Amplitude');

title('|X_{a}(j\Omega)|');

axis([0 5/pi 0 2]);

subplot(4,2,3)

T = 1;

n = 0:T:10;

xs = 2*n.*exp(-n);

k = 0:length(n)-1;

stem(k,xs);grid;

xlabel('Time index n');ylabel('Amplitude');

title('Discrete-time signal x[n]');

subplot(4,2,4)

wd = 0:pi/255:pi;

hd = freqz(xs,1,wd);

plot(wd/(T*pi), T*abs(hd));grid;

xlabel('Frequency, kHz');ylabel('Amplitude');

title('|X(e^{j\omega})|');

axis([0 1/T 0 2])

3、buttworth模拟低通滤波器的设计命令并画出该滤波器图形。

clf;

Fp = 3500;Fs = 4500;

Wp = 2*pi*Fp; Ws = 2*pi*Fs;

[N, Wn] = buttord(Wp, Ws, 0.5, 30,'s');

[b,a] = butter(N, Wn, 's');

wa = 0:(3*Ws)/511:3*Ws;

h = freqs(b,a,wa);

plot(wa/(2*pi), 20*log10(abs(h)));grid

xlabel('Frequency, Hz');ylabel('Gain, dB');

title('Gain response');

axis([0 3*Fs -60 5]);

四、本实验用到的matlab命令

Butter buttord freqs freqz sinc hist

实验三:离散时间信号与离散时间系统系统的频域分析

一、实验目的:

1、掌握matlab 编写基于离散时间傅立叶变换(DTFT)、z变换和离散傅立叶变换

(DFT)的程序,并通过本训练加深对这些概念和算法的理解;

2、理解DTFT、ZT和DFT的相互关系。

3、掌握离散系统的频率响应分析;

4、理解零、极点分布的概念。

5、理解帕斯瓦尔定理。

二、实验内容:

1、离散时间傅立叶变换(DTFT)的定义、计算和基本性质;

2、Z变换分析;

3、系统传输函数和频率响应;

4、系统传输函数的类型;

5、系统稳定性测试;

6、离散傅立叶变换(DFT)的计算和基本性质;

7、利用FFT实现线性卷积;

8、利用FFT显示理解帕斯瓦尔定理。

三、实验例程

1、用MA TLAB编写离散时间信号的傅里叶变换(DTFT)并绘出8点幅频和相频曲线。% Program P3_1

% Evaluation of the DTFT

clf;

% Compute the frequency samples of the DTFT

w = -4*pi:8*pi/511:4*pi;

num = [2 1];den = [1 -0.6];

h = freqz(num, den, w);

% Plot the DTFT

subplot(2,1,1)

plot(w/pi,real(h));grid

title('Real part of H(e^{j\omega})')

xlabel('\omega /\pi');

ylabel('Amplitude');

subplot(2,1,2)

plot(w/pi,imag(h));grid

title('Imaginary part of H(e^{j\omega})')

xlabel('\omega /\pi');

ylabel('Amplitude');

pause

subplot(2,1,1)

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

title('Magnitude Spectrum |H(e^{j\omega})|')

xlabel('\omega /\pi');

ylabel('Amplitude');

subplot(2,1,2)

plot(w/pi,angle(h));grid

title('Phase Spectrum arg[H(e^{j\omega})]')

xlabel('\omega /\pi');

ylabel('Phase in radians');

2、MA TLAB验证实序列的离散时间傅立叶变换的对称关系。

N = 8;

k = 0:N-1;

gamma = 0.5;

x = exp(gamma*k);

y = exp(gamma*fliplr(k));

xev =0.5*([zeros([1,N-1]) x]+[y zeros([1,N-1])]);

xod = 0.5*([zeros([1,N-1]) x]-[y zeros([1,N-1])]);

[X,w] = freqz(x,1,512);

[Xev,w] = freqz(xev,1,512);

[Xod,w] = freqz(xod,1,512);

Xev = exp(j*w*(N-1)).*Xev;

Xod = exp(j*w*(N-1)).*Xod;

% Verify real(X)= Xev, and imag(X)= Xod

r = 0:511;

w0 = -pi*r/512;

X1 = freqz(x,1,w0');

% Verify X = conj(X1)

% real(X)= real(X1) and imag(X)= -imag(X1)

% abs(X)= abs(X1) and angle(X)= -angle(X1)

3、用MA TLAB计算序列Modulation Property of DTFT并给出其调制图形。% Program P3_5

% Modulation Property of DTFT

clf;

w = -pi:2*pi/255:pi;

x1 = [1 3 5 7 9 11 13 15 17];

x2 = [1 -1 1 -1 1 -1 1 -1 1];

y = x1.*x2;

h1 = freqz(x1, 1, w); h2 = freqz(x2, 1, w); h3 = freqz(y,1,w); subplot(3,1,1)

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

title('Magnitude Spectrum of First Sequence') subplot(3,1,2)

plot(w/pi,abs(h2));grid

title('Magnitude Spectrum of Second Sequence') subplot(3,1,3)

plot(w/pi,abs(h3));grid

title('Magnitude Spectrum of Product Sequence')

4、用MA TLAB 计算序列[]?????≤≤--

=otherwise

N n N N

n n y 0

12的N 点离散傅立叶变换,N 取3,

5,7,9。比较在1,,1,0,

/2-==N k N k π?时计算得到的离散时间傅立叶变换的结果。

N = 16; clf;

N = input('The value of N = '); k = -N:N;

y1=ones([1,2*N+1]); y2=y1-abs(k)/N; w = 0:2*pi/255:2*pi; Y2 = freqz(y2, 1, w); Y2dft = fft(y2); k = 0:1:2*N;

plot(w/pi,abs(Y2),k*2/(2*N+1),abs(Y2dft),'o'); xlabel('Normalized frequency');ylabel('Amplitude');

4、用MATLAB 研究滤波器的系统函数及其冲激响应,产生零极点图,最终显示出零点的位置。

clf;

b = [1 -8.5 30.5 -63]; num1 = [b 81 fliplr(b)]; num2 = [b 81 81 fliplr(b)]; num3 = [b 0 -fliplr(b)]; num4 = [b 81 -81 -fliplr(b)];

n1 = 0:length(num1)-1;

n2 = 0:length(num2)-1;

subplot(2,2,1); stem(n1,num1);

xlabel('Time index n');ylabel('Amplitude'); grid;

title('Type 1 FIR Filter');

subplot(2,2,2); stem(n2,num2);

xlabel('Time index n');ylabel('Amplitude'); grid;

title('Type 2 FIR Filter');

subplot(2,2,3); stem(n1,num3);

xlabel('Time index n');ylabel('Amplitude'); grid;

title('Type 3 FIR Filter');

subplot(2,2,4); stem(n2,num4);

xlabel('Time index n');ylabel('Amplitude'); grid;

title('Type 4 FIR Filter');

pause

subplot(2,2,1); zplane(num1,1);

title('Type 1 FIR Filter');

subplot(2,2,2); zplane(num2,1);

title('Type 2 FIR Filter');

subplot(2,2,3); zplane(num3,1);

title('Type 3 FIR Filter');

subplot(2,2,4); zplane(num4,1);

title('Type 4 FIR Filter');

disp('Zeros of Type 1 FIR Filter are');

disp(roots(num1));

disp('Zeros of Type 2 FIR Filter are');

disp(roots(num2));

disp('Zeros of Type 3 FIR Filter are');

disp(roots(num3));

disp('Zeros of Type 4 FIR Filter are');

disp(roots(num4));

4. 用MATLAB产生序列的圆周移位,并画图观察该现象,

clf;

x = [0 2 4 6 8 10 12 14 16];

N = length(x)-1; n = 0:N;

y = circshift(x,5);

XF = fft(x);

YF = fft(y);

subplot(2,2,1)

stem(n,abs(XF));grid

title('Magnitude of DFT of Original Sequence');

subplot(2,2,2)

stem(n,abs(YF));grid

title('Magnitude of DFT of Circularly Shifted Sequence');

subplot(2,2,3)

stem(n,angle(XF));grid

title('Phase of DFT of Original Sequence');

subplot(2,2,4)

stem(n,angle(YF));grid

title('Phase of DFT of Circularly Shifted Sequence');

5、用MA TLAB编写快速傅里叶变换,并实现偶序列的DFT的虚实部,采用图形表示。% Program P3_11

% Relations between the DFTs of the Periodic Even

% and Odd Parts of a Real Sequence

x = [1 2 4 2 6 32 6 4 2 zeros(1,247)];

x1 = [x(1) x(256:-1:2)];

xe = 0.5 *(x + x1);

XF = fft(x);

XEF = fft(xe);

clf;

k = 0:255;

subplot(2,2,1);

plot(k/128,real(XF)); grid;

ylabel('Amplitude');

title('Re(DFT\{x[n]\})');

subplot(2,2,2);

plot(k/128,imag(XF)); grid;

ylabel('Amplitude');

title('Im(DFT\{x[n]\})');

subplot(2,2,3);

plot(k/128,real(XEF)); grid;

xlabel('Time index n');ylabel('Amplitude');

title('Re(DFT\{x_{e}[n]\})');

subplot(2,2,4);

plot(k/128,imag(XEF)); grid;

xlabel('Time index n');ylabel('Amplitude');

title('Im(DFT\{x_{e}[n]\})');

6、编写稳定性测试程序

% Program P4_4

% Stability Test

clf;

den = input('Denominator coefficients = ');

ki = poly2rc(den);

disp('Stability test parameters are');

disp(ki);

7、用MA TLABD 编写基于FFT的帕斯瓦尔定理。

% Program P3_12

% Parseval's Relation

x = [(1:128) (128:-1:1)];

XF = fft(x);

a = sum(x.*x)

b = round(sum(abs(XF).^2)/256)

四、本实验用到的matlab命令

filter Freqz impz filrfilt residuez tf2zp zp2sos zplane fft sinc zplane

实验四:IIR&FIR数字滤波器的设计

一、实验目的:

1、熟悉无限冲激响应(IIR)和有限冲激响应(FIR)网络结构,对比学习模拟滤

波器和数字滤波器的常用指标;

2、熟悉冲激响应不变法和双线性变换法设计低通滤波器的程序编写,并深化理解;

3、熟悉FIR线性相位滤波器的概念及其表示;

4、熟悉FIR滤波器窗函数设计法;

5、熟悉两种滤波器设计过程,并可修改其设计指标,对比输出效果。

二、实验内容:

1、IIR(无限冲激响应滤波器)阶数估计及其buttworth和chybyshev滤波器设计;

2、冲激响应不变法和双线性变换法设计;

3、FIR滤波器设计中出现频域出现吉布斯现象的来由;

3、有限冲激响应滤波器窗函数设计法;

三、实验计算及例程

1、设低通DF的3dB带宽频率wc=0.2π,止带频率ws=0.4π,在w=ws 处的止带衰减20lg|H(ejws)|=-15dB,试用脉冲响应不变法(冲激不变法)设计一个Butterworth低通DF。(设采样频率fs=20kHz)

Wp=input('Normalized passband edge =');

Ws=input('Normalized stopband edge =');

Rp=input('Passband ripple in dB =');

Rs=input('Minimum stopband attenuation in dB =');

[N,Wn]=buttord (Wp,Ws,Rp,Rs);

[b,a]=butter(N,W

n);

[h,omega]=freqz(b,a,512);

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

grid;

xlabel('\omega/\pi');

ylabel('Gain dB');

title('IIR Butterworth Lowpass Filter');

2无限冲激响应滤波器阶数估计和滤波器设计巴特沃兹带阻滤波器

Ws = [0.4 0.6]; Wp = [0.2 0.8]; Rp = 0.4; Rs = 50;

% Estimate the Filter Order

[N1, Wn1] = buttord(Wp, Ws, Rp, Rs);

% Design the Filter

[num,den] = butter(N1,Wn1,'stop');

% Display the transfer function

disp('Numerator Coefficients are ');disp(num);

disp('Denominator Coefficients are ');disp(den);

% Compute the gain response

[g, w] = gain(num,den);

% Plot the gain response

plot(w/pi,g);grid

axis([0 1 -60 5]);

xlabel('\omega /\pi'); ylabel('Gain in dB');

title('Gain Response of a Butterworth Bandstop Filter')

3、吉布斯环的生成;

在FIR窗函数设计法中,频域傅立叶变换的无限振荡谐波数列叠加合成时,会产生尖锐不连续的区间,好比方波的下降及上升,这就是吉布斯现象,这种现象产生的不仅与谐波的叠加合成的数量有关,而且其变化的宽度随合成的个数增加而变窄。

单位方波:

傅立叶级数表示:

function y = gibbs(x,M,duty)

% GIBBS

% x:待估价的值(0

% M:区间

% duty:占空比(0-1)

%

if (nargin<3)

duty = 0.5;

end

p = (-M:M);

for (j=1:length(x))

y(j) = sum(duty*sinc(duty*p).*exp(-i*2*pi*p*abs(x(j))));

end

正规重构:覆盖整个单位方波范围

s = linspace(-0.5,0.5,200); plot(s,gibbs(s,M));

4、有限冲激响应滤波器阶数估计和滤波器设计; 用凯塞窗设计一FIR 低通滤波器,低通边界频率

,阻带边界频率

,阻带衰减

不小于50dB 。

计算与例程

由过渡带宽和阻带衰减 来决定凯塞窗的N 和

凯塞窗设计对应的MATLAB 程序为:

wn=kaiser(30,4.55); nn=[0:1:29]; alfa=(30-1)/2;

hd=sin(0.4*pi*(nn-alfa))./(pi*(nn-alfa)); h=hd.*wn'; [h1,w1]=freqz(h,1);

plot(w1/pi,20*log10(abs(h1))); axis([0,1,-80,10]); grid;

xlabel('归一化频率/π')

ylabel('幅度/dB')

5、试用双线性变换法设计

Butterworth 低通DF 。

已知低通DF 的3dB 带宽频率

,止带起始频率 ,在 处的止带衰减

要求进行计算机MATLAB 仿真并得出结果。

解:使用Matlab 软件仿真仿真的程序如下:

πω2.0=c π

ω4.0=s s ωω=dB

e H s jw 15)(lg 20-=

clc;

clear all;

OmegaP=2*pi*2000;

OmegaS=2*pi*4000;

Rp=3;

As=15;

g=sqrt((10^(As/10)-1)/(10^(Rp/10)-1));

OmegaR=OmegaS/OmegaP;

N=ceil(log10(g+sqrt(g*g-1))/log10(OmegaR+sqrt(OmegaR*OmegaR-1)));

OmegaC=OmegaS;

[z0,p0,k0]=cheb2ap(N,As);

a0=real(poly(p0));

aNn=a0(N+1);p=p0*OmegaC;a=real(poly(p));

aNu=a(N+1);b0=real(poly(z0));M=length(b0);

bNn=b0(M);z=z0*OmegaC;b=real(poly(z));

bNu=b(M);k=k0*(aNu*bNn)/(aNn*bNu);

b=k*b

w0=[OmegaP,OmegaS];

[H,w]=freqs(b,a);

Hx=freqs(b,a,w0);

dbHx=-20*log10(abs(Hx)/max(abs(H)))

plot(w/(2*pi)/1000,20*log10(abs(H)));

xlabel('f(kHz)');ylabel('dB');axis([-1,12,-55,1]);

set(gca,'xtickmode','manual','xtick',[0,1,2,3,4,5,6,7,8,9]);

set(gca,'ytickmode','manual','ytick',[-50,-40,-30,-20,-10,0]);

grid;

6、设计一线性相位FIR数字滤波器截止频率wc=0.2π,过滤带宽度△w<0.4π,阻带衰减As>40db,用Hanning汉宁窗、hamming汉明窗以及Blackman窗设计(可以查阅相关表格),并用MATLAB软件实现(包括画图)。

解:查资料有如下表1

各种窗函数的基本参数

窗函数旁瓣峰值幅度/dB 过渡带宽阻带最小衰减/dB

矩形窗-13 4π/N-12

三角形窗-25 8π/N-25

汉宁窗-31 8π/N-44

哈明窗-41 8π/N-53

布莱克窗-57 12π/N-74

凯塞窗(α=7.865)-57 10π/N-80

由上表并经计算可知N的取值为N=20

表2

不同的β值对应的凯塞窗

β过渡带宽B/rad 阻带最小衰减/dB

2.210

3.00 30

3.384 4,46 40

4.538

5.86 50

5.658 7.24 60

6.764 12.8 70

由表可知β=3.384

则用Matlab软件仿真的程序如下:

clc;

clear all;

N=20;n=1:N;beta=3.384;

wdhn=hanning(N);

wdhm=hamming(N);wdbl=blackman(N);wdks=kaiser(N,beta);

plot(n',[wdhn,wdhm,wdbl,wdks])

legend('hn','hm','bl','ks')

仿真的结果如下图:

四、本实验用到的matlab命令

Blackman butter buttord chebwin chev1ord chev2ord cheby1 cheby2 ellip ellipord freqs freqz sinc fir1 fir2 hanning hamming Kaiser remez remezord

Matlab实验指导书

实验一 Matlab使用方法和程序设计 一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句; 3、熟悉Matlab绘图命令及基本绘图控制; 4、熟悉Matlab程序设计的基本方法。 二、实验内容 1、帮助命令 2、矩阵运算 (1)矩阵的乘法和乘方 已知A=[1 2;3 4]:B=[5 5;7 8]:求A^2*B ( 2 )矩阵除法 已知A=[1 2 3:4 5 6:7 8 9]:B=[1 0 0:0 2 0:0 0 3],求矩阵左除A\B,右除A/B。 ( 3 )矩阵的转置及共轭转置 已知A=[5+i,2-i,1;6*i,4,9-i],求该复数矩阵的转置A',共轭转置A.' ( 4 )使用冒号选出指定元素 已知:A=[1 2 3:4 5 6:7 8 9];求A中第3列前2个元素;A中第2、3行元素。 ( 5 )方括号[] 用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列 3、多项式 (1)求多项式P(x)=x3-2x-4的根 ( 2 )已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4].,构造多项式,并计算多项式值为20的解。 4、基本绘图命令 ( 1 ) 绘制余弦曲线 ] 2,0[ ), cos(π ∈ =t t y 。 ( 2 ) 在同一坐标系中绘制曲线 ] 2,0[ ), 5.0 sin( ), 25 .0 cos( yπ ∈ - = - =t t y t 5、基本绘图控制 绘制 ] 4,0[π 区间上的y=10sint曲线,并要求: (1)线形为点划线,颜色为红色,数据点标记为加号; (2)坐标轴控制:显示范围,刻度线,比例,网络线; (3)标注控制:坐标轴名称,标题,相应文本。 6、基本程序设计 (1)编写命令文件:计算1+2+....+n<2000时的最大n值; (2)编写函数文件:分别用n和which循环结构编写程序,求2的0到n次幂的和. n=input('输入正数n:') ji=1: for i=1:n; ji=ji+2^i: end ji input('输入正数n:') ji-1:i-1: While i<=n ji=ji+2^i; i=i+1; end ji (3)如果想对一个变量x赋值,当从键盘输入y或Y时,x自动赋为1;当从键盘输入n或N时,x自 动赋为0;输入其他字符时终止程序。 k=input('shuruX:'.'s'): if k=='y' k=='Y' x=1 ; else k=='n' k=='N' x=0; else ruturn end >> n=input('输入正数n:') 输入正数n:20 n =20

MATLAB实验指导书

实验一MATLAB 工作环境熟悉及简单命令的执行 一、 实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。 二、 实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单 (Menu )、工具条(T oolbar )、命令窗口(Command Window)、历史命令窗口、工作 空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。 三、实验步骤: 1、启动MATLAB ,熟悉MATLAB 的桌面。 2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。 (1)(365-52?2-70)÷3; (2)area=pi*2.5^2; (3)已知x=3,y=4,在MATLAB 中求z : ()23 2y x y x z -= ; (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。 m1=???? ? ???? ???11514412679810115133216 执行以下命令 >>m1( 2 , 3 ) >>m1( 11 ) >>m1( : , 3 ) >>m1( 2 : 3 , 1 : 3 ) >>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) (5)执行命令>>help abs 查看函数abs 的用法及用途,计算abs( 3 + 4i ); (6)执行命令 >>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y) (7)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。 四、思考题 1、以下变量名是否合法?为什么? (1)x2; (2)3col ; (3)_row ; (4)for ;

《MATLAB应用技术》实验指导书

M A T L A B 实 验 指 导 书 电子信息工程学院 2012.02

目录 实验一MATLAB安装与界面 (1) 实验二MATLAB符号计算与应用 (2) 实验三MATLAB数值数组与向量化运算 (4) 实验四MATLAB数值计算 (7) 实验五MATLAB可视化 (10) 实验六M文件及MATLAB综合应用 (16)

实验一Matlab安装与界面 【实验目的】 【实验原理】 1. 安装MATALB软件,并按理论教学内容逐一熟悉软件界面及软件特点。 【实验仪器】 1.配置在PIV 2.0GHZ/512MB以上的PC机; 2. MATALB7.0以上版本软件。 【实验内容及步骤】 1. 完成MATLAB软件安装; 2.熟悉MATLAB运行环境。 (1)命令窗口的使用。 (2)工作空间窗口的使用。 (3)工作目录、搜索路径的设置。 (4)命令历史记录窗口的使用。 (5)了解各菜单的功能。 3. 图示复数 i z i z2 1 ,3 4 2 1 + = + =的和展示MATLAB的可视化能力; 4. 画出衰减振荡曲线 t e y t 3 sin 3 - =,t的取值范围是] 4,0[π;展示数组运算的优点及 MATLAB的可视化能力。 5. 创建一个M文件,输入步骤4的相关程序,运行程序并变换名称保存,将工作空间中的y变量的MAT文件变换路径输出保存,然后再向内存装载MAT文件。 6. 以命令窗口中输入help Laplace、help浏览器中搜索两种方式体会MATLAB帮助系统的特点和功能。 【实验报告要求】 1.整理实验结果。 2.总结实验心得体会

昆明理工大学MATLAB实验指导书(第二次实验)

************************ MATLAB上机指导书 ************************ 昆明理工大学机电学院 彭用新 2015年3月

实验三符号计算 一、操作部分:在命令窗口执行命令完成以下运算,记录运算结果。 1.findsym:帮助我们获取系统定义的自变量 f= sym('sin(a*x+b*y)'); findsym(f) 2.numden(获取分子分母), sym2poly,(获取多项式时系数)poly2sym(根据多项式系 数获得符号表达式) [n,d]=numden(sym('x*x+y')+sym('y^2')) p=sym('2*x^3+3*x^2+4'); sym2poly(p) x=[2,3,0,4]; poly2sym(x) 3. collect :合并同类项;expand:展开多项式;horner: 分解成嵌套形式;factor:因式 分解;simplify: 对表达式化简 syms x y; collect(x^2*y+y*x-x^2-2*x) collect((x+y)*(x^2+y^2+1), y) syms x y; expand((x-2)*(x-4)) syms x;horner(x^3-6*x^2+11*x-6) syms x;factor(x^3-6*x^2+11*x-6) syms x;simplify((x^2+5*x+6)/(x+2)) 4. finverse :求得符号函数的反函数。 syms x y; finverse(1/tan(x)) f= x^2+y; finverse(f,y) finverse(f) https://www.doczj.com/doc/2c10420914.html,pose 求符号函数的复合函数 syms x y; f = 1/(1 + x^2); g = sin(y); compose(f,g) 6. subs :表达式替换。 syms a b;subs(a+b,a,4)

MATLAB实验指导书(学生定稿)

实验一 MATLAB语言平台及基本运算 一、实验目的 1、熟悉MATLAB基本的操作界面。 2、掌握MATLAB中变量、数组、向量等对象的生成方法。 3、掌握矩阵的生成和基本运算方法。 4、掌握MATLAB中的常用绘图命令使用方法 二、实验设备 计算机,MATLAB语言环境 三、实验指导原理 1、常见数学函数 如:输入 x=[-4.85 -2.3 -0.2 1.3 4.56 6.75],则 ceil(x)= -4 -2 0 2 5 7 fix(x) = -4 -2 0 1 4 6 floor(x) = -5 -3 -1 1 4 6 round(x) = -5 -2 0 1 5 7 系统的在线帮助 (1) help 命令: 1).当不知系统有何帮助内容时,可直接输入 help以寻求帮助: >> help(回车) 2).当想了解某一主题的内容时,如输入: >> help syntax (了解 Matlab 的语法规定) 3).当想了解某一具体的函数或命令的帮助信息时,如输入: >> help sqrt (了解函数 sqrt 的相关信息)

(2) lookfor 命令 现需要完成某一具体操作,不知有何命令或函数可以完成,如输入: >> lookfor line (查找与直线、线性问题有关的函数) 3、常量与变量 系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后 可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表: (1)数值型向量(矩阵)的输入 1).任何矩阵(向量),可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。所有元素处于一方括号([ ]内;例1: >> Time = [11 12 1 2 3 4 5 6 7 8 9 10] >> X_Data = [2.32 3.43;4.37 5.98] 2).系统中提供了多个命令用于输入特殊的矩阵: 上面函数的具体用法,可以用帮助命令 help 得到。如:help zeros ZEROS Zeros array. ZEROS(N) is an N-by-N matrix of zeros. ZEROS(M,N) or ZEROS([M,N]) is an M-by-N matrix of zeros.等等 4、数组(矩阵)的点运算 运算符:+(加)、-(减)、./(右除)、.\(左除)、.^(乘方), 例4: >> g = [1 2 3 4];h = [4 3 2 1]; >> s1 = g + h, s2 = g.*h, s3 = g.^h, s4 = g.^2, s5 = 2.^h 5、矩阵的运算

MATLAB基础及应用实验指导书

MATLAB基础及应用实验指导书

MATLAB基础及应用课程实验指导书 实验一软件环境和基本操作熟悉 一、实验目的 ①熟悉MATLAB 主界面,并学会简单的菜单操作。 ②学会简单的矩阵输入与信号输入。 ③掌握部分绘图函数。 二、实验内容 熟悉MATLAB操作环境,通过简单操作熟悉MATLAB的基本使用方法。 三、实验要求与步骤 1、用户第一次使用MATLAB 时,建议首先在屏幕上键入demo 命令,它将启动MATLAB 的演试程序,用户可在此演示程序中领略MATLAB 所提供的强大的运算与绘图功能。也可以键入help 进行进一步了解。 MATLAB 启动界面如图所示: MATLAB 语言最基本的赋值语句结构为:变量名列表= 表达式。表达式由操作符或其它字符,函数和变量名组成,表达式的结果为一个矩阵,显示在屏幕上,同时输送到一个变量中并存放于工作空间中以备调用。如果变量名和“= ”省略,则ans 变量将自动建立,例如键入:1900/81 ,得到输出结果:ans =23.4568 。 MATLAB 中变量命名的原则要求必须以英文字母开头,文件夹名字中可以

还包括、下划线和数字,不要使用其他的字符,更不要单纯使用数字或者中文名命名,有时在运行MATLAB 中一些莫名的错误可能就是不规范的命名引起的。这种规则包括将来为自己编写的脚本文件、函数文件命名以及为使用的变量命名也应遵循这个规则。 2、用户工作目录和当前目录的建立和设置 1)为管理方便,每个用户在使用MATLAB 前,尽量为自己建立一个专门的工作目录,即“用户目录”,用来存放自己创建应用文件。例如首先打开资源管理器,在E 驱动器下可以根据自己喜好建立一个新文件夹,但应注意:该文件夹必须以英文开头,文件夹名字中可以包括字母、下划线和数字,不要使用其他的字符,更不要单纯使用数字或者中文名命名,有时在运行MATLAB 中一些莫名的错误可能就是不规范的命名引起的,这与MATLAB 中为变量和文件名命名原则是一致的。尽管MATLAB\work 允许用户存放用户文件,但最好把它仅作为临时工作目录来使用。 2)为了用户运行方便,在开始工作前可把用户定义的目录设置为当前目录,方法是可直接在MATLAB 命令窗口桌面上方通过目录设置栏来实现。 3)把自己的工作目录加到MATLAB 搜索路径上,这样可以在任何情况下方便地调用自己的编写文件。MATLAB 工作时,基本搜索过程为:首先在工作空间,即MATLAB 内存中进行检查,看输入的指令是不是变量;如不是,则检查输入指令是不是内建函数(比如sin 函数等);如不是,则在当前目录上,检查是否有与输入指令相同的M 文件存在;如还没有,则在MATLAB 定义的搜索路径其他目录中,检查是否有该M 文件存在。设置方法是通过File 菜单下设置路径对话框进行。 3、熟悉简单的矩阵输入 1)从屏幕上输入矩阵A=[1 2 3 ;4 5 6;7 8 9] 回车 A=[1,2,3;4,5,6;7,8,9] 回车 观察输出结果。 2)试用回车代替分号,观察输出结果。 3)输入size(A) ,观察结果。 4)输入矩阵B=[9,8,7;6,5,4;3,2,1];回车 输入矩阵C=[4,5,6;7,8,9;1,2,3];回车,然后分别键入 A B C 回车观察结果。 5)选择File | new 菜单中的M-file ,输入B=[9,8,7;6,5,4;3,2,1] ;保存为

MATLAB实验指导

实验报告 课程名称:MATLAB基础 授课班级: 学号: 姓名: 指导老师:

MATLAB实验一:MATLAB语言基本概念实验 一、实验目的: 1. 熟悉MATLAB语言及使用环境; 2.掌握MATLAB的常用命令; 3.掌握MATLAB的工作空间的使用; 4.掌握MATLAB的获得帮助的途径。 5. 掌握科学计算的有关方法,熟悉MATLAB语言及其在科学计算中的运用; 6.掌握MATLAB的命令运行方式和M文件运行方式; 7.掌握矩阵在MATLAB中的运用。 二、实验方案分析及设计: 本次实验主要目的是了解MATLAB的使用环境,以及常用的一些命令的使用;了解矩阵在MATLAB实验中的具体运用,以及相关的一些符号命令的使用。 三、实验器材: 电脑一台,MATLAB软件 四、实验步骤: 打开MATLAB程序,将实验内容中的题目依次输入MATLAB中,运行得到并记录结果,最后再对所得结果进行验证。 五、实验内容及要求: 1. 熟悉MATLAB工作空间的功能,将工作空间中的变量保存为M文件,并提取该文件中的变量。(该题只需在MATLAB环境中操作,不用在实验报告中写结果) 2.熟悉MATLAB获取帮助的途径,将所有plot开头的函数列出来,并详细给出plotfis 函数的使用方法。(该题只需在MATLAB环境中操作,不用在实验报告中写结果) 3. 输入 A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2;3 3 3], 在命令窗口中执行下列表达式,写出实验结果并掌握其含义: A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A 4.输入 C=1:2:20,则 C(i)表示什么(写出实验结果)?其中i=1,2,3, (10)

matlab实验指导书

matlab实验指导书 实验一 MATLAB运算基础及矩阵分析与处理 一实验目的 1.熟悉启动和退出MATLAB的方法。 2.熟悉MATLAB 命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握MATLAB各种表达式的书写规则以及常用函数的使用。 5. 掌握生成特殊矩阵的方法。 6. 掌握矩阵分析的方法。 7. 用矩阵求逆解线性方程组。二实验仪器和设备装有以上计算机一台三实验原理 MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。它提供了各种矩阵的运算与操作,并有较强的绘图功能。基本规则 一般MATLAB命令格式为 [输出参数1,输出参数2,……]= 输出参数用方括号,输入参数用圆括号如果输出参数只有一个可不使用括号。 %后面的任意内容都将被忽略,而不作为命令执行,一般用于为代码加注 释。 可用↑、↓键来重现已输入的数据或命令。用←、→键来移动光标进行修改。所有MATLAB命令都用小写字母。

大写字母和小写字母分别表示不同的 变量。 常用预定义变量,如pi 、Inf、NaN、ans 矩阵的输入要一行一行的进行,每行各元素用空格或“,”分开,每行用 “;”分开。如 123 A456789 MATLAB书写格式为A=[1 2 3 ;4 5 6 ;7 8 9] 在MATLABZ中运行如下程序可得到A 矩阵 a=[1 2 3;4 5 6;7 8 9] a = 1 2 3 4 5 6 7 8 9 需要显示命令的计算结果时,则语句后面不加“;”号,否则要加“;”号。运行下面两种格式可以看出它 们的区别: a=[1 2 3;4 5 6;7 8 9] a=[1 2 3;4 5 6;7 8 9]; a= 1 2 3 不显示结果 4 5 6 7 8 9 当输入语句过长需要换行时,应加上“…”后再回车,则可续行输入。文件管理常用命令帮助命令 MATLAB有很多命令,因此很不容易记忆。使用HELP命 令可以得到有关命令的屏幕帮助信息。 如在MATLAB环境下直接运行HELP命令就会在屏幕上

matlab实验指导

《数字信号处理》MATLAB实验指导

实验一:离散时间信号和离散时间系统 一、 实验目的: 1、 以MA TLAB 为工具学习离散时间信号的图形表示; 2、 以课本提供的例程,练习、理解典型离散信号及其基本运算; 3、 通过MATLAB 仿真简单的离散时间系统,研究其时域特性; 4、 加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。 二、 实验内容: 1、 典型序列的产生与显示; 2、 序列的简单运算; 3、 复合和复杂信号的产生与显示; 4、 离散时间系统的仿真:线性和非线性系统、时变和非时变系统的仿真; 5、 线性时不变离散时间系统:系统冲激响应、卷积运算、系统的级联、系统的稳 定性; 三、实验例程: 1、 参照课本例程产生下列序列,并用plot 、stem 好人subplot 命令绘出其图形: ①单位取样序列()n δ;②单位阶跃序列()n μ;③矩形序列RN(n),④斜变序列()n n μ。 所需输入的数据是产生序列的长度L 和抽样频率F T 。 % Program P1_1 % Generation of a Unit Sample Sequence clf; % Generate a vector from -10 to 20 n = -10:20; % Generate the unit sample sequence u = [zeros(1,10) 1 zeros(1,20)]; % Plot the unit sample sequence stem(n,u); xlabel('Time index n');ylabel('Amplitude'); title('Unit Sample Sequence'); axis([-10 20 0 1.2]); 2、 编写MATLAB 实指数序列程序, % Program P1_3 % Generation of a real exponential sequence clf; n = 0:35; a = 1.2; K = 0.2; x = K*a.^n;

MATLAB实验指导书(2010)

MATLAB语言及应用实验指导书 机械与电气工程学院

目录 实验一MA TLAB基础入门及数值数组运算(2学时,验证) . 3 实验二MA TLAB语言的程序设计(4学时,综合) (8) 实验三SIMULINK交互式仿真集成环境(2学时,验证) (11)

实验一MATLAB基础入门及数值 数组运算 一、实验目的 1、了解MATLAB操作桌面的基本结构和组成; 2、理解Command Window指令窗的作用,掌握指令窗的操作方式和指令的基本语法; 3、理解Current Directory当前路径、搜索路径的作用,掌握当前路径、搜索路径的设置 方法; 4、理解Workspace Browser工作空间浏览器的作用,掌握内存变量的查阅、删除、保存和 载入的基本方法; 5、掌握一维数组的创建方法;掌握一维数组子数组的寻访和赋值方法; 6、掌握二维数组的创建方法;掌握二维数组子数组的寻访和赋值方法; 7、掌握数组的各种运算,理解数组运算和矩阵运算的区别。 二、实验原理 1、MATLAB操作桌面的基本结构和组成 了解MATLAB的基本组件是正确使用MATLAB的基本前提。MATLAB由以下基本组件组成:(1)指令窗Command Window:可键入各种送给MATLAB运作的指令、函数、表达式;显示除图形外的所有运算结果 (2)历史指令窗Command History:记录已经运作过的指令、函数、表达式; (3)当前目录浏览器:进行当前目录的设置;展示相应目录上的M、MDL等文件;(4)工作空间浏览器Workspace Browser:列出MATLAB工作空间中所有的变量名、大小、字节数; (5)内存数组编辑器Array Editor:在工作空间浏览器中对变量进行操作时启动(6)开始按钮 (7)交互界面分类目录窗Launch Pad:以可展开的树状结构列着MATLAB提供的所有交互界面 (8)M文件编辑/调试器 (9)帮助导航/浏览器 2、MATLAB指令窗的基本操作 MATLAB指令窗给用户提供了最直接的交互界面,可用于输入和执行指令、显示指令运行结果、调试MATLAB程序等常用的MATLAB仿真计算功能。本实验掌握以下在指令窗执行的基本操作,达到熟悉使用指令窗的目的: (1)最简单的计算器使用方法:在MATLAB指令窗中,可按计算器的方式进行一般的数学计算,MATLAB的运算符的含义大致与常见的运算规则一致; (2)在指令窗中输入和生成矩阵:与一般的计算器不同,在MATLAB中可直接输入和生成矩阵。实际上,矩阵是MATLAB工作的基本元素。 (3)数值表述方法:在MATLAB中的大部分数值的表述方式与平常是相同的,需要注意的是在表示比较大的数时,MATLAB默认采用科学计数法显示; (4)变量命名规则:对于MATLAB变量命名规则,需要注意以下几点:

MATLAB实验指导书(DOC)

MATLAB 实验指导书

前言 MATLAB程序设计语言是一种高性能的、用于科学和技术计算的计算机语言。它是一种集数学计算、分析、可视化、算法开发与发布等于一体的软件平台。自1984年MathWorks公司推出以来,MATLAB以惊人的速度应用于自动化、汽车、电子、仪器仪表和通讯等领域与行业。MATLAB有助于我们快速高效地解决问题。MATLAB相关实验课程的学习能加强学生对MATLAB程序设计语言理解及动手能力的训练,以便深入掌握和领会MATLAB应用技术。

目录 基础型实验............................................................................................ - 1 - 实验一MATLAB集成环境使用与基本操作命令练习 ............. - 1 - 实验二MATLAB中的数值计算与程序设计 ............................. - 7 - 实验三MATLAB图形系统 ......................................................... - 9 -

基础型实验 实验一 MATLAB 集成环境使用与基本操作命令练习 一 实验目的 熟悉MATLAB 语言编程环境;熟悉MATLAB 语言命令 二 实验仪器和设备 装有MATLAB7.0以上计算机一台 三 实验原理 MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。它提供了各种矩阵的运算与操作,并有较强的绘图功能。 1.1 基本规则 1.1.1 一般MATLAB 命令格式为 [输出参数1,输出参数2,……]=(命令名)(输入参数1,输入参数2,……) 输出参数用方括号,输入参数用圆括号如果输出参数只有一个可不使用 括号。 1.1.2 %后面的任意内容都将被忽略,而不作为命令执行,一般用于为代码加注 释。 1.1.3 可用↑、↓键来重现已输入的数据或命令。用←、→键来移动光标进行修改。 1.1.4 所有MATLAB 命令都用小写字母。大写字母和小写字母分别表示不同的 变量。 1.1.5 常用预定义变量,如pi 、Inf 、NaN 、ans 1.1.6 矩阵的输入要一行一行的进行,每行各元素用空格或“,”分开,每行用 “;”分开。如 ?? ?? ? ?????=987654321A MATLAB 书写格式为A=[1 2 3 ;4 5 6 ;7 8 9] 在MATLAB 中运行如下程序可得到A 矩阵 a=[1 2 3;4 5 6;7 8 9] a = 1 2 3 4 5 6 7 8 9 1.1.7 需要显示命令的计算结果时,则语句后面不加“;”号,否则要加“;”号。

自控实验指导书--MATLAB--2013

自动控制原理MATLAB仿真实验实验指导书 2013年09月

实验一 控制系统数学模型 一、实验目的 1、 掌握控制系统数学模型——传递函数的求取方法; 2、 利用MATLAB 命令求取控制系统传递函数。 二、基础知识及MATLAB 函数 在MA TLAB 命令窗口上,以命令的方式建立系统的传递函数。在MA TLAB 下,系统的数学模型有3种描述方式,此实验用多项式模型。 (1)多项式模型: 线性定常系统的数学模型传递函数G(s)一般可以表示成: m n a s a s a s a b s b s b s b s R s C s G n n n n m m m m ≥+++++++==----,......)() ()(0 1110111 其中分子分母多项式中的a n 与b m 均为常系数。 MATLAB 语言描述: 构造分子多项式:num=[b m ,b m-1,…,b 1,b 0];或num=[b m b m-1 … b 1 b 0] 构造分母多项式:den=[a n ,a n-1,…,a 1,a 0];或den=[a n a n-1 … a 1 a 0] 构造并显示传递函数:printsys(num,den); 其中num 与den 是习惯用法,也可用其它变量名代替,但在显示时会出现num/den ,这是通用输出显示格式,与输入变量名称无关。 例1-1: >>num=[1 12 44 48]; >>den=[1 16 86 176 105]; >>printsys(num,den) 显示: num/den = s^3 + 12 s^2 + 44 s + 48 ----------------------------------- s^4 + 16 s^3 + 86 s^2 + 176 s + 105 例1-2:系统开环传递函数为 ) 106)(2() 1(5)(22++++= s s s s s s G 写出多项式模型。 >>n=conv([5],[1 1]); >>d=conv([1 0 0],conv([1 2],[1 6 10])); >>printsys(n,d) 显示: num/den = 5 s + 5 ----------------------------- s^5 + 8 s^4 + 22 s^3 + 20 s^2 (2)模型的连接

MATLAB实验指导书

实验二程序文件与函数文件的应用 一.实验目的: 1.熟悉MATLAB系统M文件的基本操作; 2.熟练应用MATLAB有关的图形函数,绘制函数图形。 二.实验内容 1.MATLAB程序文件: ①编辑程序文件 当完成一个功能需要许多MATLAB命令时,可以将这些命令按特定的顺序组合在一起,存储在一个程序文件中,就得到了MATLAB程序,其文件名的后缀为*.M,故也称为M文件。在命令窗口的FILE菜单或工具栏上选择NEW命令——M-file,即可开始编辑M文件。MATLAB编辑器与其它WINDOWS编辑程序类似。 ②保存M文件 编辑M文件后,在命令窗口的FILE菜单或工具栏上选则SAVE AS 命令存盘,文件应以* .M为后缀。 ③执行M文件 在MATLAB系统命令窗口下,在提示符”>>”处键入所编辑的M文件名后,即可执行该文件。在执行中若发现错误,系统将给出提示。此时可再次进入编辑器中修改程序,直至程序能正确执行为止。 编写下列题目M文件,调试并运行: 练习2-1.将图形窗口分割成132的空格,设ωt∈[0,2π], 以π/50为步长,绘制下列函数图形: (1)在左窗口,以ωt为横坐标,绘制V=120Sinωt和

I=100Sin(ωt-π/4)曲线,线条分别用不同颜色表示; (2)在右窗口,绘制P=V 2I 曲线,线型用“*”符号。 练习2-2.绘制以下函数图形: 且在X 轴写上“Time ”标号,Y 轴写上“Amplitude ”标号,图形的标题为“Decaying-oscillating Exponential ”. (2)在0≤t ≤10区间内绘制如下图形: 在同一个图中绘制上述函数,求出Y(t=0)和Y(t=10)的点。(注意弧度与角度的区别)。 (3)绘制如下图形: (4)在0≤t≤20区间内,且在同一图中绘制如下函数图形: 求y1的最小值与最大值。 (5)对应0≤t≤25区域内,在同一图中绘制下列函数。 ) 80() sin(21)() 1(≤≤-=-t t e t y t 625.0)24083.2cos(23.1)(++=?t t y 625 .0)(=t x ) 300(8.0)309.0cos(5)(22.0≤≤+?-=--t e t e t y t t 6 .0)(6.062.2)(6.0)17422.2cos(62.2)(325.0225.01=+=+?+=--t y e t y t e t y t t

Matlab实验指导书(含答案)汇总

实验一:Matlab操作环境熟悉 一、实验目的 1.初步了解Matlab操作环境。 2.学习使用图形函数计算器命令funtool及其环境。 二、实验内容 熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算: 1.单函数运算操作。 求下列函数的符号导数 (1) y=sin(x); (2) y=(1+x)^3*(2-x); 求下列函数的符号积分 (1) y=cos(x); (2) y=1/(1+x^2); (3) y=1/sqrt(1-x^2); (4) y=(x-1)/(x+1)/(x+2); 求反函数 (1) y=(x-1)/(2*x+3); (2) y=exp(x); (3) y=log(x+sqrt(1+x^2)); 代数式的化简 (1) (x+1)*(x-1)*(x-2)/(x-3)/(x-4); (2) sin(x)^2+cos(x)^2; (3) x+sin(x)+2*x-3*cos(x)+4*x*sin(x); 2.函数与参数的运算操作。 从y=x^2通过参数的选择去观察下列函数的图形变化 (1) y1=(x+1)^2 (2) y2=(x+2)^2 (3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作 求和 (1) sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5 乘积 (1) exp(-x)*sin(x)

《matlab与通信仿真》实验指导书-(通信级)word版本

电子信息学院 《MATLAB与通信仿真》 实验指导书 刘紫燕编写 适用专业:通信工程 贵州大学

二O一四年二月

前言 本课程是通信工程专业的选修课程。课程内容包含MATLAB的基本操作、MATLAB程序设计、函数文件、MATLAB的图形和数据处理、SIMULNK的基本应用及其在通信工程中的应用等。 通过本课程的学习,掌握MATLAB软件使用和编程方法,验证和深化书本知识,从而加强基础知识,掌握基本技能,提高MATLAB软件的编程能力,并用MATLAB软件解决通信工程专业中的实际问题,同时,针对通信工程专业的特点,要求学生掌握使用MATLAB来研究和开发与本专业相关的系统的方法。本课程设置5个实验,均为设计性实验。建议实验学时为12学时。 实验一是MATLAB软件的基本操作;实验二是MATLAB程序设计;实验三是MATLAB的图形绘制;实验四是MATLAB的数据处理;实验五是MATLAB/Simulink在电路中的仿真设计。 每个实验2个小时左右,为了使学生更好的掌握实验内容,学生务必要做到以下几点: (1)实验前认真预习实验。明确实验目的,熟悉实验内容,理论分析实验结果, 编写相应的程序代码,并撰写出预习报告。 (2)实验过程中积极思考,深入分析命令、程序的执行过程和执行结果,对比理 论分析结果,分析评判实验结果,并把实验中出现的问题及解决方法记录下来。 (3)实验完成后,总结本次实验有哪些收获,还存在什么问题,撰写并提交最终 的实验报告。 本指导书实验项目和要求明确,学生容易着手实验并得出实验结果。 本实验指导书适用于通信工程专业。

目录 实验一MATLAB的基本操作 (1) 实验二MATLAB程序设计 (9) 实验三MATLAB的图形绘制 (11) 实验四MATLAB的数据处理 (13) 实验五MATLAB/Simulink在电路中的仿真设计 (15) 实验报告的基本内容及要求 (20) 贵州大学实验报告 (21)

matlab实验指导答案详解(非常详细正确)

实验一 MATLAB 工作环境熟悉及简单命令的执行 一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。 二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单 (Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作 空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。 三、实验步骤: 1、启动MATLAB ,熟悉MATLAB 的桌面。 2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。 (1)(365-52?2-70)÷3 >>(365-52*2-70)/3 ans = 63.6667 (2)>>area=pi*2.5^2 area = 19.6350 (3)已知x=3,y=4,在MATLAB 中求z : () 2 3 2y x y x z -= >>x=3 >>y=4 >>z = x ^2 * y ^3 / (x - y) ^2 z = 576 (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。 m1=???? ? ???? ???11514412679810115133216 执行以下命令 >>m1 =[16 2 3 13 ; 5 11 10 8 ; 9 7 6 12 ; 4 14 15 1 ] >>m1( 2 , 3 ) ans = 10 >>m1( 11 ) ans = 6 >>m1( : , 3 ) ans =3 10 6 15 >>m1( 2 : 3 , 1 : 3 ) ans =5 11 10 9 7 6 >>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) ans = 34 (5)执行命令>>help abs

MATLAB实验指导书

实验一MATLAB集成环境使用与运算基础 一、实验目的 1.熟悉启动和退出MA TLAB的方法。 2.熟悉MATLAB命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握MATLAB各种表达式的书写规则以及常用函数的使用。 二、实验原理 1.MA TLAB的启动 MATLAB系统的启动有三种常见方法: 1)使用Windows“开始”菜单。 2)运行MATLAB系统启动程序MA TLAB.exe。 3)利用快捷方式。 2.MA TLAB系统的退出 要退出MA TLAB系统,也有三种常见方法: 1)在MA TLAB主窗口File菜单中选择Exit MATLAB 命令。 2)在MA TLAB命令窗口输入Exit或Quit命令。 3)单击MATLAB主窗口的“关闭”按钮。 3.MA TLAB帮助窗口 进入帮助窗口可以通过以下三种方法: 1)单击MATLAB主窗口工具栏中的help按钮。 2)在命令窗口中输入helpwin、helpdesk或doc。 3)选择help菜单中的“MA TLAB help”选项。 4.MA TLAB帮助命令 1)help命令 在MA TLAB命令窗口直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同样,可以通过help加函数名来显示该函数的帮助说明。 2)lookfor命令 help命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的m文件进行关键字搜索,条件比较宽松。 3)模糊查询 用户只要输入命令的前几个字母,然后按tab键,系统就会列出所有以这几个字母开头的命令。 5.赋值语句 1)变量=表达式 2)表达式

MATLAB应用实验指导书结果

M A T L A B应用实验指 导书结果 公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]

???????????????????????? MATLAB语言实验指导书???????????????????????? 中国矿业大学信息与电气工程学院 2014年3月

实验一 MATLAB 工作环境熟悉及基本运算 一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简 单的运算。掌握基本的矩阵运算及常用的函数。 二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面 (Desktop ),包括菜单(Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。 三、实验步骤: 1、启动MATLAB ,熟悉MATLAB 的桌面。 2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运 算结果。 (1)(365-52?2-70)?3 = (2)area=pi*^2 = (3)已知x=3,y=4,在MATLAB 中求z : () 2 3 2y x y x z -== 576 (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用 的字节数。 m1=???? ? ???? ???11514412679810115133216 执行以下命令 >>m1( 2 , 3 )=10

>>m1( 11 )=6 >>m1( : , 3 )= 3 10 6 15 >>m1( 2 : 3 , 1 : 3 )=[ 5 11 10;9 7 6] >>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1)=34 (5)执行命令>>help abs 查看函数abs 的用法及用途,计算abs( 3 + 4i )=5 (6)执行命令 >>x=0::6*pi; >>y=5*sin(x); >>plot(x,y) (7)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。 3、矩阵运算 ??????=654321a ??????-=531142b ????? ?????-=201c ???? ??????=063258741d (1)下列运算是否合法,为什么如合法,结果是多少 ①. result1 = a'=[1 4;2 5;3 6] ②. result2 = a * b (维数不同) ③. result3 = a + b=[3 6 2;5 8 11] ④. result4 = b * d=[31 22 22;40 49 13] ⑤. result5 = [b ; c' ] * d=[31 22 22;40 49 13;-5 -8 7]

MATLAB实验指导

实验一 MATLAB 运算基础 1.实验目的 1)熟悉启动和退出MA TLAB 的方法。 2)熟悉MATLAB 命令窗口的组成。 3)掌握建立矩阵的方法。 4)掌握MATLAB 各种表达式的书写规则以及常用函数的使用。 2.实验内容 1、用逻辑表达式求下列分段函数的值。 .5.2:5.0:032,2110,12,1,222=<≤<≤<≤??? ??+--=t t t t t t t t t 其中 2、求[100-999]之间能被21整除的数的个数。 3、建立一个字符串向量,删除其中的大写字母。 4、输入矩阵?? ?? ? ?????=987654321A ,并找出A 中大于或等于5的元素(用行列表示)。 5、求矩阵?? ? ???=22211211 a a a a A 的行列式值、逆和特征根。 6、不采用循环的形式求出和式∑==63 2i i S 的数值解。 3.实验程序及结果 1、程序如下: t=0:0.5;2.5... y=t.^2*((t>=0)&(t<1))+(t.^2-1).*((t>=1)&(t<2))+(t.^2-2*t+1).*((t>=2)&(t<3)) 结果如下:

2、程序如下: p=rem([100:999],21)==0; sum(p) 运行结果如下: 3、程序代码如下: ch='ABcdefGHd',k=find(ch>='A'&ch<='Z'),ch(k)=[] 4、程序代码如下: A=[1 2 3;4 5 6;7 8 9],[i,j]=find(A>=5), for n=1:length(i) m(n)=A(i(n),j(n))

相关主题
文本预览
相关文档 最新文档