文档库 最新最全的文档下载
当前位置:文档库 › 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实验及答案

产生离散衰减正弦序列()π0.8sin 4n x n n ?? = ??? , 010n ≤≤,并画出其波形图。 n=0:10; x=sin(pi/4*n).*0.8.^n; stem(n,x);xlabel( 'n' );ylabel( 'x(n)' ); 用MATLAB 生成信号()0sinc at t -, a 和0t 都是实数,410t -<<,画波形图。观察并分析a 和0t 的变化对波形的影响。 t=linspace(-4,7); a=1;

t0=2; y=sinc(a*t-t0); plot(t,y); t=linspace(-4,7); a=2; t0=2; y=sinc(a*t-t0); plot(t,y);

t=linspace(-4,7); a=1; t0=2; y=sinc(a*t-t0); plot(t,y);

三组对比可得a 越大最大值越小,t0越大图像对称轴越往右移 某频率为f 的正弦波可表示为()()cos 2πa x t ft =,对其进行等间隔抽样,得到的离散样值序列可表示为()()a t nT x n x t ==,其中T 称为抽样间隔,代表相邻样值间的时间间隔,1 s f T = 表示抽样频率,即单位时间内抽取样值的个数。抽样频率取40 Hz s f =,信号频率f 分别取5Hz, 10Hz, 20Hz 和30Hz 。请在同一张图中同时画出连续信号()a x t t 和序列()x n nT 的波形图,并观察和对比分析样值序列的变化。可能用到的函数为plot, stem, hold on 。 fs = 40; t = 0 : 1/fs : 1 ; % ?μ?ê·?±e?a5Hz,10Hz,20Hz,30Hz f1=5; xa = cos(2*pi*f1*t) ; subplot(1, 2, 1) ;

matlab信号与系统实验报告

实验一 基本信号的产生与运算 一、 实验目的 学习使用MATLAB 产生基本信号、绘制信号波形、实现信号的基本运算。 二、 实验原理 MATLAB 提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期方波等等。这些信号是信号处理的基础。 1、 利用MATLAB 产生下列连续信号并作图。 (1)51),1(2)(<<---=t t u t x (2)300),3 2sin()(3.0<<=-t t e t x t (3)1.01.0,3000cos 100cos )(<<-+=t t t t x (4)2000),8.0cos()1.0cos()(<<=t t t t x ππ 答:(1)、 >> t=-1:0.02:5; >> x=(t>1); >> plot(t,-2*x); >> axis([-1,5,-3,1]); >> title('杨婕婕 朱艺星'); >> xlabel('x(t)=-2u(t-1)'); (2)、 >> t=0:0.02:30; >> x=exp(-0.3*t).*sin(2/3*t); >> plot(t,x);

>> title('杨婕婕朱艺星'); >> xlabel('x(t)=exp(-0.3*t).*sin(2/3*t)'); 因为原函数在t=15后x(t)取值接近于零,所以将横坐标改成0到15,看得更清晰 axis([0,15,-0.2,0.6]); (3)>> t=-0.1:0.01:0.1;x=cos(100*t)+cos(3000*t);plot(t,x); >> title('杨婕婕朱艺星'); >>xlabel('x=cos(100*t)+cos(3000*t)'); 因为t的间隔取太大,以至于函数不够准确,缩小t的间隔: t=-0.1:0.002:0.2;x=cos(100*t)+cos(3000*t); plot(t,x);title('杨婕婕') >> t=-0.1:0.0001:0.1; x=cos(100*t)+cos(3000*t); >> plot(t,x);title('杨婕婕朱艺星'); >> xlabel('x=cos(100*t)+cos(3000*t)');

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)实验指导书

《信号与系统》实验指导书 张建奇骆崇编写 浙江工业大学之江学院信息工程分院 2012年2月

目录 实验一MATLAB的基本使用 (1) 一、实验目的 (1) 二、实验原理 (1) 三、实验内容与要求 (8) 四、实验报告 (9) 实验二时域波形的MATLAB实现 (10) 一、实验目的 (10) 二、预习要求 (10) 三、实验原理 (10) 四、实验内容与要求 (18) 五、实验报告 (19) 实验三用MATLAB对系统时域分析 (20) 一、实验目的 (20) 二、预习要求 (20) 三、实验原理 (20) 四、实验内容与要求 (29)

实验一MATLAB的基本使用 一、实验目的 1、了解和掌握MATLAB的基本操作 2、了解MATLAB的库函数 3、会用MATLAB进行简单的操作。 二、实验原理 1、界面操作 MATLAB是“MATrix LABoratory”的缩写(矩阵实验室),它是由美国Mathworks公司于1984年正式推出的一种科学计算软件,由于其强大的功能,在欧美的一些大学里MATLAB已经成为许多诸如数字信号处理、自动控制理论等高级教程的主要工具软件,同时也成为理工科学生,必须掌握的一项基本技能。 当需要运行程序时,只需选择桌面上(或开始)中的MATLAB6.5应用程序图标即可 通常情况下,MATLAB的工作环境主要由一下几个窗口组成: 命令窗口(Command Window)

工作区间浏览器(Workspace) 历史命令窗口(Command History) 图形窗口(Figure) 文本编辑窗口(Editor) 当前路径窗口(Current Directory) MATLAB的命令窗与命令操作 当用户使用命令窗口进行工作时,在命令窗口中可以直接输入相应的命令,系统将自动显示信息。 例如在命令输入提示符“>>”后输入指令: >>t=[1,2,3;4,5,6;7,8,9]; 按回车键(Enter)后,系统即可完成对变量t的赋值。 MATALB提供了非常方便的在线帮助命令(help),它可提供各个函数的用法指南,包括格式、参数说明、注意事项及相关函数等内容。 2、图形窗 MATLAB图形窗(Figure)主要用于显示用户所绘制的图形。 通常,只要执行了任意一种绘图命令,图形窗就会自动产生。

信号与系统 MATLAB实验报告

《信号与系统》MATLAB实验报告 院系:专业: 年级:班号: :学号: 实验时间: 实验地点:

实验一 连续时间信号的表示及可视化 实验题目: )()(t t f δ=;)()(t t f ε=;at e t f =)((分别取00<>a a 及); )()(t R t f =;)()(t Sa t f ω=;)2()(ft Sin t f π=(分别画出不同周期个数的波形)。 解题分析: 以上各类连续函数,先运用t = t1: p:t2的命令定义时间围向量,然后调用对应的函数,建立f 与t 的关系,最后调用plot ()函数绘制图像,并用axis ()函数限制其坐标围。 实验程序: (1))()(t t f δ= t=-1:0.01:3 %设定时间变量t 的围及步长 f=dirac(t) %调用冲激函数dirac () plot(t,f) %用plot 函数绘制连续函数 axis([-1,3,-0.5,1.5]) %用axis 函数规定横纵坐标的围 (2))()(t t f ε= t=-1:0.01:3 %设定时间变量t 的围及步长 f=heaviside(t) %调用阶跃函数heaviside () plot(t,f) %用plot 函数绘制连续函数 title('f(t)=heaviside(t)') %用title 函数设置图形的名称 axis([-1,3,-0.5,1.5]) %用axis 函数规定横纵坐标的围 (3)at e t f =)( a=1时:

t=-5:0.01:5 %设定时间变量t 的围及步长 f=exp(t) %调用指数函数exp () plot(t,f) %用plot 函数绘制连续函数 title('f=exp(t)') %用title 函数设置图形的名称 axis([-5,5,-1,100]) %用axis 函数规定横纵坐标的围 a=2时: t=-5:0.01:5 f=exp(2*t) % 调用指数函数exp () plot(t,f) title('f=exp(2*t)') axis([-5,5,-1,100]) a=-2时: t=-5:0.01:5 f=exp(-2*t) plot(t,f) title('f=exp(-2*t)') axis([-5,5,-1,100]) (4))()(t R t f = t=-5:0.01:5 f=rectpuls(t,2) % 用rectpuls(t,a)表示门函数,默认以零点为中心,宽度为a plot(t,f) title('f=R(t)') axis([-5 5 -0.5 1.5]) (5))()(t Sa t f ω= ω=1时: t=-20:0.01:20 f=sin(t)./t % 调用正弦函数sin (),并用sin (t )./t 实现抽 样函数 plot(t,f)

实验1 用MATLAB进行信号频谱分析(推荐文档)

实验1 用MATLAB 进行信号频谱分析 一、实验目的 ㈠ 初步掌握MATLAB 产生常用离散时间信号的编程方法。 ㈡ 学习编写简单的FFT 算法程序,对离散信号进行幅频谱分析。 ㈢ 观察离散时间信号频谱的特点。 二、实验原理 ㈠ 常用的离散时间信号 在 MATLAB 语言主要是研究离散信号的。常用的离散信号有: 1.单位取样序列 ???≠==000 1)(n n n δ 2.单位阶跃序列 ?? ?<≥=0 01 )(n n n u 3.实指数序列 R a n a n x n ∈?=;)( 4.复指数序列 n e n x n j ?=+)(0)(ωσ 5.正(余)弦序列 )c o s ()(0θω+=n n x n ? 6.周期序列 n N n x n x ?+=)()( ㈡ 离散信号的产生 离散信号的图形显示使用stem 指令。 在 MATLAB 中的信号处理工具箱中,主要提供的信号是离散信号。

由于MATLAB 对下标的约定为从1开始递增,例如x=[5,4,3,2,1,0],表示x(1)=5,x(2)=4,X(3)=3… 因此要表示一个下标不由1开始的数组x(n),一般应采用两个矢量,如 n=[-3,-2,-1,0,l ,2,3,4,5]; x=[1,-l ,3,2,0,4,5,2,1]; 这表示了一个含9个采样点的矢量:X(n)={x(-3),x(-2),x(-1),x(0),x(1),x(2),x(3),x(4),x(5)}。 1.单位取样序列 ?? ?≠==δ0 001)(n n n 这一函数实现的方法有二: 方法一:可利用MATLAB 的zeros 函数。 x=zeros(1,N); %建立一个一行N 列的全零数组 x(1)=1; %对X (1)赋1 方法二:可借助于关系操作符实现 n=1:N; x=[n==1]; %n 等于1时逻辑关系式结果为真,x=1;n 不等于1时为假,x=0 如要产生 ?????≤<<=≤≤=-δ2 0210 100)(10)(n n n n n n n n n n n n 则可采用MATLAB 实现: n=n1:n2; x=[(n-n0)==0];%n=n0时逻辑关系式结果为真,x=1;n ≠n0时为

(完整word版)信号与系统matlab实验

习题三 绘制典型信号及其频谱图 1.更改参数,调试程序,绘制单边指数信号的波形图和频谱图。观察参数a对信号波形 及其频谱的影响。 程序代码: close all; E=1;a=1; t=0:0.01:4; w=-30:0.01:30; f=E*exp(-a*t); F=1./(a+j*w); plot(t,f);xlabel('t');ylabel('f(t)'); figure; plot(w,abs(F));xlabel('\omega');ylabel('|F(\omega)|';

E=1,a=1,波形图频谱图更改参数E=2,a=1;

更改参数a,对信号波形及其频谱的影响。(保持E=2)上图为a=1图像 a=2时

a=4时 随着a的增大,f(t)曲线变得越来越陡,更快的逼近0,而对于频谱图,随着a增大,图像渐渐向两边张开,峰值减小,陡度减小,图像整体变得更加平缓。 2.矩形脉冲信号 程序代码: close all; E=1;tao=1; t=-4:0.1:4; w=-30:0.1:30;

f=E*(t>-tao/2&tao/2)+0*(t<=-tao/2&t>=tao/2); F=(2*E./w).*sin(w*tao/2); plot(t,f);xlabel('t');ylabel('f(t)'); figure; plot(w,abs(F));xlabel('\omega');ylabel('|F(\omega)|') ; figure; plot(w,20*log10(abs(F))); xlabel('\omega');ylabel('|F(\omega)| in dB'); figure; plot(w,angle(F));xlabel('\omega');ylabel('\phi(\omega )');

matlab信号与系统实验报告

实验一 基本信号的产生与运算 一、 实验目的 学习使用MATLAB 产生基本信号、绘制信号波形、实现信号的基本运算。 二、 实验原理 MATLAB 提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期方波等等。这些信号是信号处理的基础。 1、 利用MATLAB 产生下列连续信号并作图。 (1)51),1(2)(<<---=t t u t x (2)300),3 2 sin()(3.0<<=-t t e t x t (3)1.01.0,3000cos 100cos )(<<-+=t t t t x (4)2000),8.0cos()1.0cos()(<<=t t t t x ππ 答:(1)、 >> t=-1:0.02:5; >> x=(t>1); >> plot(t,-2*x); >> axis([-1,5,-3,1]); >> title('杨婕婕 朱艺星'); >> xlabel('x(t)=-2u(t-1)');

(2)、 >> t=0:0.02:30; >> x=exp(-0.3*t).*sin(2/3*t); >> plot(t,x); >> title('杨婕婕朱艺星'); >> xlabel('x(t)=exp(-0.3*t).*sin(2/3*t)');

因为原函数在t=15后x(t)取值接近于零,所以将横坐标改成0到15,看得更清晰 axis([0,15,-0.2,0.6]);

(3)>> t=-0.1:0.01:0.1;x=cos(100*t)+cos(3000*t);plot(t,x); >> title('杨婕婕朱艺星'); >>xlabel('x=cos(100*t)+cos(3000*t)'); 因为t的间隔取太大,以至于函数不够准确,缩小t的间隔:t=-0.1:0.002:0.2;x=cos(100*t)+cos(3000*t); plot(t,x);title('杨婕婕')

MATLAB实验报告

实验一 名称:连续时间信号分析 姓名:王嘉琦 学号:201300800636 班级:通信二班 一、实验目的 (一)掌握使用Matlab 表示连续时间信号 1、学会运用Matlab 表示常用连续时间信号的方法 2、观察并熟悉常用信号的波形和特性 (二)掌握使用Matlab 进行连续时间信号的相关运算 1、学会运用Matlab 进行连续时间信号的时移、反褶和尺度变换 2、学会运用Matlab 进行连续时间信号微分、积分运算 3、学会运用Matlab 进行连续时间信号相加、相乘运算 4、学会运用Matlab 进行连续时间信号卷积运算 二、实验条件 Matlab 三、实验内容 1、利用Matlab 命令画出下列连续信号的波形图。 (1))4/3t (2cos π+ 代码: k=2;w=3;phi=pi/4; t=0:0.01:3; ft=k*cos(w*t+phi); plot(t,ft),grid on; axis([0,3,-2.2,2.2]) title('余弦信号')

(2) )t (u )e 2(t -- 代码: k=-1;a=-1; t=0:0.01:3; ft=2-k*exp(a*t); plot(t,ft),grid on axis([0,3,2,3]) title('指数信号')

(3))]2()(u )][t (cos 1[--+t u t π 代码: k=1;w=pi;phi=0; t=0:0.01:2; ft=1+k*cos(w*t+phi); plot(t,ft),grid on; axis([0,3,0,2]) title('余弦信号')

信号与系统MATLAB实验

2016-2017学年第一学期 信号与系统实验报告 班级: 姓名: 学号: 成绩: 指导教师:

实验一常见信号的MATLAB 表示及运算 一.实验目的 1.熟悉常见信号的意义、特性及波形 2.学会使用MATLAB 表示信号的方法并绘制信号波形 3. 掌握使用MATLAB 进行信号基本运算的指令 4. 熟悉用MATLAB 实现卷积积分的方法 二.实验原理 信号一般是随时间而变化的某些物理量。按照自变量的取值是否连续,信号分为连续时间信号和离散时间信号,一般用()f t 和()f k 来表示。若对信号进行时域分析,就需要绘制其波形,如果信号比较复杂,则手工绘制波形就变得很困难,且难以精确。MATLAB 强大的图形处理功能及符号运算功能,为实现信号的可视化及其时域分析提供了强有力的工具。 根据MATLAB 的数值计算功能和符号运算功能,在MATLAB 中,信号有两种表示方法,一种是用向量来表示,另一种则是用符号运算的方法。在采用适当的MATLAB 语句表示出信号后,就可以利用MATLAB 中的绘图命令绘制出直观的信号波形了。下面分别介绍连续时间信号和离散时间信号的MATLAB 表示及其波形绘制方法。 1.连续时间信号 所谓连续时间信号,是指其自变量的取值是连续的,并且除了若干不连续的点外,对于一切自变量的取值,信号都有确定的值与之对应。从严格意义上讲,MATLAB 并不能处理连续信号。在MATLAB 中,是用连续信号在等时间间隔点上的样值来近似表示的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。在MATLAB 中连续信号可用向量或符号运算功能来表示。 ⑴ 向量表示法 对于连续时间信号()f t ,可以用两个行向量f 和t 来表示,其中向量t 是用形如12::t t p t 的命令定义的时间范围向量,其中,1t 为信号起始时间,2t 为终止时间,p 为时间间隔。向量f 为连续信号()f t 在向量t 所定义的时间点上的样值。 说明:plot 是常用的绘制连续信号波形的函数。 严格说来,MATLAB 不能表示连续信号,所以,在用plot()命令绘制波形时,要对自变量t 进行取值,MATLAB 会分别计算对应点上的函数值,然后将各个数据点通过折线连接起来绘制图形,从而形成连续的曲线。因此,绘制的只是近似波形,而且,其精度取决于t 的取样间隔。t 的取样间隔越小,即点与点之间的距离越小,则近似程度越好,曲线越光滑。例如:图1-1是在取样间隔为p=0.5时绘制的波形,而图1-2是在取样间隔p=0.1时绘制的波形,两相对照,可以看出图1-2要比图1-1光滑得多。

昆明理工大学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.wendangku.net/doc/ad4700394.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)掌握MATLAB 的可视化绘图技术; (4)结合《信号与系统》的特点,编程实现常用信号及其运算。 示例一:在两个信号进行加、减、相乘运算时,参于运算的两个向量要有相同的维数,并且它们的时间变量范围要相同,即要对齐。编制一个函数型m 文件,实现这个功能。function [f1_new,f2_new,n]=duiqi(f1,n1,f2,n2) a=min(min(n1),min(n2)); b=max(max(n1),max(n2)); n=a:b; f1_new=zeros(1,length(n)); f2_new=zeros(1,length(n)); tem1=find((n>=min(n1))&(n<=max(n1))==1); f1_new(tem1)=f1; tem2=find((n>=min(n2))&(n<=max(n2))==1); f2_new(tem2)=f2; 四、实验内容与步骤 (2)绘制信号x(t)=)3 2sin(2t e t ?的曲线,t 的范围在0~30s ,取样时间间隔为0.1s 。t=0:0.1:30; y=exp(-sqrt(2)*t).*sin(2*t/3); plot(t,y);

(3)在n=[-10:10]范围产生离散序列:?? ?≤≤?=Other n n n x ,033,2)(,并绘图。n=-10:1:10; z1=((n+3)>=0); z2=((n-3)>=0); x=2*n.*(z1-z2); stem(n,x);(4)编程实现如下图所示的波形。 t=-2:0.001:3; f1=((t>=-1)&(t<=1)); f2=((t>=-1)&(t<=2)); f=f1+f2; plot(t,f); axis([-2,3,0,3]);

基带信号眼图实验——matlab仿真

基带信号眼图实验——matlab 仿真

————————————————————————————————作者:————————————————————————————————日期: ?

数字基带信号的眼图实验——matla b仿真 一、实验目的 1、掌握无码间干扰传输的基本条件和原理,掌握基带升余弦滚降系统的实现方法; 2、通过观察眼图来分析码间干扰对系统性能的影响,并观察在输入相同码率的NRZ 基带信号下,不同滤波器带宽对输出信号码间干扰大小的影响程度; 3、熟悉MATL AB 语言编程。 二、实验预习要求 1、复习《数字通信原理》第七章7.1节——奈奎斯特第一准则内容; 2、复习《数字通信原理》第七章7.2节——数字基带信号码型内容; 3、认真阅读本实验内容,熟悉实验步骤。 三、实验原理和电路说明 1、基带传输特性 基带系统的分析模型如图3-1所示,要获得良好的基带传输系统,就应该 () n s n a t nT δ-∑() H ω() n s n a h t nT -∑基带传输抽样判决 图3-1?基带系统的分析模型 抑制码间干扰。设输入的基带信号为()n s n a t nT δ-∑,s T 为基带信号的码元周期,则经过基 带传输系统后的输出码元为 ()n s n a h t nT -∑。其中 1 ()()2j t h t H e d ωωωπ +∞ -∞ = ? ?(3-1) 理论上要达到无码间干扰,依照奈奎斯特第一准则,基带传输系统在时域应满足: 10()0,s k h kT k =?=? ? , 为其他整数 ?? ?(3-2) 频域应满足:

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 实验报告 院系: 专业: 年级: 班号: 姓名: 学号: 实验时间: 实验地点: 实验一 连续时间信号的表示及可视化 实验题目: )()(t t f δ=;)()(t t f ε=;at e t f =)((分别取00<>a a 及); )()(t R t f =;)()(t Sa t f ω=;)2()(ft Sin t f π=(分别画出不同周期个数的波形)。 解题分析: 以上各类连续函数,先运用t = t1: p:t2的命令定义时间范围向量,然后调用对应的函数,建立f 与t 的关系,最后调用plot ()函数绘制图像,并用axis ()函数限制其坐标范围。 实验程序: (1))()(t t f δ= t=-1:0.01:3 %设定时间变量t 的范围及步长 f=dirac(t) %调用冲激函数dirac () plot(t,f) %用plot 函数绘制连续函数 axis([-1,3,-0.5,1.5]) %用axis 函数规定横纵坐标的范围 (2))()(t t f ε= t=-1:0.01:3 %设定时间变量t 的范围及步长 f=heaviside(t) %调用阶跃函数heaviside () plot(t,f) %用plot 函数绘制连续函数

title('f(t)=heaviside(t)') %用title 函数设置图形的名称 axis([-1,3,-0.5,1.5]) %用axis 函数规定横纵坐标的范围 (3)at e t f =)( a=1时: t=-5:0.01:5 %设定时间变量t 的范围及步长 f=exp(t) %调用指数函数exp () plot(t,f) %用plot 函数绘制连续函数 title('f=exp(t)') %用title 函数设置图形的名称 axis([-5,5,-1,100]) %用axis 函数规定横纵坐标的范围 a=2时: t=-5:0.01:5 f=exp(2*t) %调用指数函数exp () plot(t,f) title('f=exp(2*t)') axis([-5,5,-1,100]) a=-2时: t=-5:0.01:5 f=exp(-2*t) plot(t,f) title('f=exp(-2*t)') axis([-5,5,-1,100]) (4))()(t R t f = t=-5:0.01:5 f=rectpuls(t,2) %用rectpuls(t,a)表示门函数,默认以零点为中心,宽度为a plot(t,f) title('f=R(t)') axis([-5 5 -0.5 1.5]) (5))()(t Sa t f ω= ω=1时:

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 的信号与系统实验指导 实验一 连续时间信号在Matlab 中的表示 一、实验目的 1、学会运用Matlab 表示常用连续时间信号的方法 2、观察并熟悉这些信号的波形和特性 二、实验原理及实例分析 1、信号的定义与分类 2、如何表示连续信号? 连续信号的表示方法有两种;符号推理法和数值法。 从严格意义上讲,Matlab 数值计算的方法不能处理连续时间信号。然而,可利用连续信号在等时间间隔点的取样值来近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能被Matlab 处理,并且能较好地近似表示连续信号。 3、Matlab 提供了大量生成基本信号的函数。如: (1)指数信号:K*exp(a*t) (2)正弦信号:K*sin(w*t+phi)和K*cos(w*t+phi) (3)复指数信号:K*exp((a+i*b)*t) (4)抽样信号:sin(t*pi) 注意:在Matlab 中用与Sa(t)类似的sinc(t)函数表示,定义为:)t /()t (sin )t (sinc ππ= (5)矩形脉冲信号:rectpuls(t,width) (6)周期矩形脉冲信号:square(t,DUTY),其中DUTY 参数表示信号的占空比

DUTY%,即在一个周期脉冲宽度(正值部分)与脉冲周期的比值。占空比默认为0.5。 (7)三角波脉冲信号:tripuls(t, width, skew),其中skew 取值范围在-1~+1之间。 (8)周期三角波信号:sawtooth(t, width) (9)单位阶跃信号:y=(t>=0) 三、实验内容 1、验证实验内容 直流及上述9个信号 2、程序设计实验内容 (1)利用Matlab 命令画出下列连续信号的波形图。 (a ))4/3t (2cos π+ (b ) )t (u )e 2(t -- (c ))]2()(u )][t (cos 1[--+t u t π (2)利用Matlab 命令画出复信号) 4/t (j 2e )t (f π+=的实部、虚部、模和辐角。 四、实验报告要求 1、格式:实验名称、实验目的、实验原理、实验环境、实验内容、实验思考等 2、实验内容:程序设计实验部分源代码及运行结果图示。

实验一----信号的MATLAB表示及信号的运算

实验一----信号的MATLAB表示及信号的运算

信号的MATLAB表示及信号的运算 一、实验目的 1.掌握的MATLAB使用; 2.掌握MATLAB生成信号的波形; 3.掌握MATLAB分析常用连续信号; 4.掌握信号的运算的MATLAB实现。 二、实验工具 1.台式电脑一台; 2.MATLAB7.1软件环境; 三、实验内容 编写程序实现下列常用函数,并显示波形。 1.正弦函数 f(t)=Ksin(wt+a); 2.矩形脉冲函数f(t)=u(t)-u(t-t0); 3.抽样函数 sa(t)=sint/t; 4.单边指数函数 f(t)=Ke-t; 5.已知信号f1(t)=u(t+2)-u(t-2), f2(t)=cos(2pt),用MATLAB绘制f1t)+f2(t)和f1(t)*f2(t)的波形。

四、实验要求 预习信号的时域运算和时域变换(相加、相乘、移位、反折、尺度变化、例项)相关知识。 五、实验原理 在某一时间区间内,除若干个不连续的点外,如果任意时刻都可以给出确定的函数值,则称信号为连续时间信号,简称为连续信号。MATLAB提供了大量生成基本信号的函数,所以可利用连续信号在等时间间隔点的取值来近似表示连续信号,这些离散的数值能被MATLAB处理,并显示出来。 六、实验步骤 1.打开MATLAB7.1软件,并在老师的指导和带领下逐步熟悉此软件; 2.编写正弦函数程序: clear all; t=-8:.01:8; k=2;w=1;a=pi/4; f=k*sin(w*t+a); plot(t,f);

grid; xlabel('t'); ylabel('f(t)'); axis([-8 8 -3 3]); 3.编写矩形脉冲信号函数程序: clear all; t=-4:0.001:4; T=1; f1=rectpuls(t,4*T); f2=cos(2*pi*t); plot(t,f2+f1); axis([-4 4 -1.5 2.5]); grid on; figure plot(t,f2.*f1); axis([-4 4 -1.5 1.5]); grid on;

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告 一、实验目的 1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。 2.学会运用MATLAB表示常用连续时间信号的方法 3.观察并熟悉一些信号的波形和特性。 4.学会运用MATLAB进行连续信号时移、反折和尺度变换。 5.学会运用MATLAB进行连续时间微分、积分运算。 6.学会运用MATLAB进行连续信号相加、相乘运算。 7.学会运用MATLAB进行连续信号的奇偶分解。 二、实验任务 将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。 三、实验内容 1.MATLAB软件基本运算入门。 1). MATLAB软件的数值计算: 算数运算 向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。 矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开; 矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。 举例:计算一个函数并绘制出在对应区间上对应的值。

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名” 2.MATLAB软件简单二维图形绘制 1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y) 2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表 示第p个区域,表达为subplot(mnp)或者subplot(m,n,p) 3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin]) 4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’) 5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’) 6).输出:grid on 举例1: 举例2:

相关文档