当前位置:文档之家› 信号与系统的matlab表示

信号与系统的matlab表示

信号与系统的matlab表示
信号与系统的matlab表示

连续信号与系统分析

一、典型信号的matlab 表示

表示连续信号,需定义自变量的范围和取样间隔,如t=0:0.01:3 1. 实指数信号 y=k*exp(a*t)

2. 正弦信号 k*sin(w*t+phi) k*cos(w*t+phi)

3. 复指数信号 y=k*exp((a+i*b)*t)

实部real(y) 虚部imag(y) 模abs(y) 相角angle(y) 共轭conj(y) 4. 抽样信号 Sat=sinc(t/pi)

5. 矩形脉冲信号 y=rectpuls(t,width)

周期方波信号 y=square(2*pi*f*t,duty) %产生频率为fHZ ,占空比为duty%的方波 6. 三角脉冲信号

非周期三角波y=tripuls(t,width,skew) %斜度 skew ,最大幅度出现在t=(width/2)*skew 周期三角波 y=sawtooth(t,width)

7. 单位阶跃信号 function y=uCT(t) y=(t>=0)

阶跃信号符号函数 Heaviside() y=sym(‘Heaviside(t)’) %调用时必须用sym 定义 冲激信号符号函数 Dirac()

二、Matlab 的符号运算 1. 定义符号变量

syms 变量名 syms x

sym(‘变量名’) x=sym(‘x ’) sym(‘表达式’) sym(‘x+1’)

2. 化简符号运算结果 simple 或simplify

3. 绘制符号表达式图形 ezplot(y,[a,b])

三、连续信号的运算

微分和积分运算(用符号表达式来表示) 1. 微分运算

Diff(function,’variable ’,n) % variable 为求导变量,n 为求导阶数 例:syms a x y y=sin(a*x^2); dy=diff(y ,’x ’) 2. 积分运算

int(function, ’variable ’,a,b) %a 为积分下限,b 为积分上限 3. 信号的反折 fliplr(x) 4. 卷积计算

1) 符号运算计算卷积(求解积分的方法) 例:)(*)()(t u e t u e

t y t

T

t --=

syms T t tao

xt1=exp(-t); xt2=exp(-t/T);

xt_tao=subs(xt1,t,tao)*subs(xt2,t,t-tao);

yt=int(xt_tao,tao,0,t); yt=simplify(yt);

2) 数值计算法求卷积 conv( )

y = dt*conv(e,h)

例:求e(t) = u(t)-u(t-1)和h(t) = u(t)-u(t-1)的卷积 t0 = -2; t1 = 4; dt = 0.01; t = t0:dt:t1; e = u(t)-u(t-1); h = u(t)-u(t-1);

y = dt*conv(e,h); % Compute the convolution of x(t) and h(t) subplot(221)

plot(t,e), grid on, title('Signal e(t)'), axis([t0,t1,-0.2,1.2]) subplot(222)

plot(t,h), grid on, title('Signal h(t)'), axis([t0,t1,-0.2,1.2]) subplot(212)

t = 2*t0:dt:2*t1; % the time range to the convolution of e and h.

plot(t,y), grid on, title('The convolution of x(t) and h(t)'), axis([2*t0,2*t1,-0.1,1.2]), xlabel('Time t sec')

四、连续LTI 系统的时域分析

1. 系统响应的符号求解 dsolve(‘eq1,eq2,…’,’cond1,cond2,…’); %eqi 表示微分方程,condi 表示初始条件 例:eq=’D3y+2*D2y+Dy=0’;

cond=’y(0)=1,Dy(0)=1,D2y(0)=2’; yzi=dsolve(eq,cond); %零输入响应 simplify(yzi);

eq1=’D3y+4*D2y+8*Dy=3*Dx+8*x ’; eq2=’x=Heaviside(t)’;

cond=’y(-0.01)=0,Dy(-0.01)= 0,D2y(-0.01)=0’; yzs=dsolve(eq1,eq2,cond);

simplify(yzs.y); %零状态响应

2. 零状态响应的数值求解

1)y=lsim(sys,f,t)

%sys 表示系统模型,由sys=tf(b,a)生成的系统函数对象 %f 输入信号向量,t 时间抽样点向量

例:)()sin()(),()()()('

'

't u t t f t f t y t y t y π210665==++ ts=0;te=5;dt=0.01; sys=tf([6],[1,5,6]); t=ts:dt:te;

f=10*sin(2*pi*t).*UT(t);

y=lsim(sys,f,t);

plot(t,y),grid on;

xlabel(‘time ’),ylabel(‘y(t)’); title(‘零状态响应’); 2)y=conv(f,impul)

3. 连续系统冲激响应 y=impulse(sys,t) %sys 表示系统模型

4. 连续系统阶跃响应 y=step(sys,t)

五、信号的频域分析 1.傅立叶变换 1)符号运算求法 fourier( )和ifourier( )

例:)()(t u e t f t 2-=的傅立叶变换

ft=sym(‘exp(-2*t)*Heaviside(t)’); fw=fourier(ft)

ezplot(abs(fw)); %或者fw_conj=conj(fw);Gw=sqrt(fw*fw_conj); phase=atan(image(fw)/real(fw));%或者angle(fw) ezplot(phase)

2

11Ω

+=

Ω)(j F 的傅立叶反变换

syms t

fw=sym(‘1/(1+w^2’); ft=ifourier(fw,t) 2)数值计算求法

[][][

]

N

k k N e

n f k F k T

N M n j T

M T

N k ≤≤?

=

??=-?-?--?-?02111111,

)()()

()()()

(πωω

例:求)(t G 82的傅立叶变换 1)数值计算

dt=0.01; t=-4:dt:4;

ft=(t+4)/2.*uCT(t+4)-t.*uCT(t)+(t-4)/2.*uCT(t-4); N=2000; k=-N:N;

W=pi*k/(N*dt);

F=dt*ft*exp(-j*t'*W); F=abs(F); plot(W,F),grid on; axis([-pi pi -1 9]);

title('amplitude spectrum'); 2)符号计算

ft=sym('(t+4)/2*Heaviside(t+4)-t*Heaviside(t)+(t-4)/2*Heaviside(t-4)'); Fw=simplify(fourier(ft));

ezplot(abs(Fw),[-pi pi]);grid on;

2. 系统的频率特性

1) [H,w] = freqs(b,a):连续系统频率响应的函数

2) 波特图:采用对数坐标的幅频特性和相频特性曲线,可显示频响间的微小差异 bode(sys)

例:求1

1

+=

s s H )(的频率特性

w=0:0.01:8*pi; b=[1]; a=[1 1]; H=freqs(b,a,w); subplot(211); plot(w,abs(H)); subplot(212); plot(w,angle(H)); figure(2); sys=tf(b,a); bode(sys);

3. 连续时间LTI 系统的频域分析 例:5

51+Ω=

Ω--=j j H t u t u t x )(),()()(,求系统的响应。

W=-6*pi:0.01:6*pi;

B=[5]; A=[1,5];

H1=freqs(b,a,w);

plot(w,abs(H1)); %系统幅频特性 Hw=sym('5/(5+i*w)');

xt=sym('Heaviside(t)-Heaviside(t-1)'); Xw=simplify(fourier(xt));

figure;

ezplot(abs(Xw));

Yw= Hw*Xw; %输出信号的傅立叶变换 yt=ifourier(Yw); figure;

ezplot(yt,[-0.2,2]);

例:),cos()cos()(,

)(t t t f j j H 10252

31

2

+=+Ω+Ω-=

Ω求稳态响应

t=0:0.1:20;

w1=1;w2=10;

H1=1/(-w1^2+j*3*w1+2);

H2=1/(-w2^2+j*3*w2+2);

f=5*cos(t)+2*cos(10*t);

y=abs(H1)*cos(w1*t+angle(H1))+abs(H2)*cos(w2*t+angle(H2));

subplot(211);

plot(t,f),grid on;

title('输入信号波形');

subplot(212);

plot(t,y),grid on;

title('稳态响应波形');

[H,W]=freqs([1],[1 3 2]);

figure;

plot(W,abs(H));

5.连续系统的零极点分析

1)求多项式的根

roots() %求多项式的根b=[1 -2];zs=roots(b);

b=[1 -2];

a=[1 4 5];

zs=roots(b);

ps=roots(a);

plot(real(zs),imag(zs),'blacko',real(ps),imag(ps),'blackx','markersiz e',12);

axis([-3 3 -2 2]);grid

legend('zero','pole');

2) 画零极点分布图

pzmap(sys) % sys=tf(b,a);表示系统的模型

b=[1 -2];

a=[1 4 5];

sys=tf(b,a);

pzmap(sys);

axis([-3 3 -2 2]);

3)求解零极点的值

pole(sys);

zero(sys);

6.零极点分布与时域特性的关系pzmap()和impulse()

b=[1]

a=[1 0 1];

sys=tf(b,a);

figure(1);

pzmap(sys);

axis([-2 2 -2 2]); figure(2); impulse(sys);

7. 拉普拉斯变换 1) 正变换

L=laplace(f) %f 为符号表达式

例: syms a t

L=laplace(exp(-t)*sin(a*t)); 2)反变换 符号运算

f=ilaplace(L);% L 符号表达式 例:

F=sym(‘s^2/(s^2+1)’); ft=ilaplace(F);

部分分式展开

[r,p,k]=residue(b,a);%p 为极点,r 为部分分式系数,k 为整式部分的系数

例:3

12)

()(+-=

s s s s F 的反变换

b=[1 -2];

a= conv(conv([1 0],[1 1]),conv([1 1],[1 1])); [r,p,k]=residue(b,a)

实验一 连续L TI 系统的时频域分析

1.图1所示为一RLC 串联电路,已知R=5Ω,L=1H ,C=(1/6)F ,

1)请用Matlab 绘制出该系统的单位冲激响应和单位阶跃响应的波形; 2)当输入信号t s e t v 25.0)(-=时,请画出该系统的零状态响应波形图;

(s V t ()

c V t

图 1 RLC 串联电路

2. 绘出图1所示系统的幅频响应和相频响应特性曲线,并讨论随着R 的变化,当电阻R 分别为4Ω、2Ω、0.8Ω、0.4Ω时,幅频响应的变化规律。

3. 给出图1所示系统的零极点分布图,并讨论随着R 的变化,当电阻R 分别为4Ω、2Ω、0.8Ω、0.4Ω时,系统的稳定性的变化。

离散信号与系统分析

一、离散信号的表示

1.单位取样序列

function y=impDT(n)

y=(n==0);

2.单位阶跃序列

function y=uDT(n)

y=(n>=0);

二、离散时间系统的时域分析

1.系统的零状态响应

y=filter(b,a,x);%x输入序列,a,b为差分方程的系数向量,y输出序列与x长度相同2.单位取样响应

y=impz(b,a,N); %N为取样响应的样值个数

y=stepz(b,a,N); %N为阶跃响应的样值个数

例:

a=[3 -4 2];

b=[1 2];

n=0:30;

x=impDT(n);

h=filter(b,a,x); %方法1,单位取样序列的零状态响应

stem(n,h,'fill'),grid on;

title('impulse response');

figure(2);

impz(b,a,30),grid on; %方法2

3.离散信号的卷积

y=conv(x,h) %求零状态响应

例:[])

u

n

u

u

x

n

u

n

n

n

4

-

-

=

=

-

8

8

0-

h n计算

)

(

)

(

)

n

(

(

*

)

(

);

u

n

h

(n )

(

,)

(

.

三、z变换

1. z=ztrans(x) ; %x,z为符号表达式

x=iztrans(z)

2.部分分式展开求z反变换

[R,P,K]=residuez(b,a)

3.系统的零极点

1)roots( ) %求解多项式的根得到零极点

2)[z,p,k]=tf2zp(b,a) %直接求系统的零极点

3) z plane(b,a); %画系统的零极点图

四、离散系统的频率响应

[H,w]=freqz(b,a,N);%w为[0,pi]范围内的N个频率等分点

[H,w]=freqz(b,a,N,’whole’);%w范围内为[0,2pi]

五、DTFT 和DFT

1. 序列傅里叶变换DTFT

∑∞

-∞

=-=

n n

j j e

n x e

X ωω

)()(

序列傅里叶变换的Matlab 实现: n=n1:n2;

M=input(‘put in the number M=’); k=0:2*M-1; %观察两个周期

X=x*(exp(-j*2*pi/M)).^(n ’*k);%序列的傅里叶变换 2. 离散傅里叶变换(DFT )

10,)()]([)(1

-≤≤=

=∑

-=N k W n x n x DFT k X N n kn

N

10,)(1)]([)(1

-≤≤=

=∑-=-N n W

k X N

k X IDFT n x N k kn N

DFT 变换的Matlab 实现: n=0:M-1;

k=0:N-1;

WN=exp(-j*2*pi/N); kn=n'*k;

WNkn=WN.^kn; X=x*WNkn;

3. 快速傅里叶变换(FFT ) 离散傅里叶变换的快速算法

fft(x):利用快速算法计算x 的M 点DFT ,其中M 是x 的长度。

fft(x,N):利用快速算法计算x 的N 点DFT ,其中N 是用户指定的长度。分两种情况: ①若x 的长度M>N ,则将x 截短为N 点序列,再作N 点DFT ; ②若x 的长度M

ifft(X):利用快速算法计算X 的M 点IDFT ,其中M 是X 的长度。

ifft(X,N):利用快速算法计算X 的N 点IDFT ,其中N 是用户指定的长度。同样分两种情况,同fft(x,N)。 4. 离散傅里叶级数

定义N

j N e

W π2-=,周期序列的傅里叶级数(DFS )变换对为:

1

,,1,0)(~1)(~

1)](~[)(~1

,,1,0)(~

)(~)](~[)(~

1

21

1

21

-==

==-==

=

=--=-=-=--=∑

∑∑

N n W k X N

e

k X N

k X IDFS n x N k W n x e

n x n x DFS k X nk N N k nk

N

j N k nk

N

N n nk

N

j

N n ππ

Matlab 实现: WN=exp(-j*2*pi/N);

kn=n'*k;

WNkn=WN.^kn; X=x*WNkn;

例:设)()(4n R n x =,要求用MATLAB 实现:

(1)计算)(n x 的傅里叶变换)(ωj e X ,并绘出其幅度谱;

(2)分别计算)(n x 的4点DFT 和8点DFT ,并绘出其幅度谱。并说明它们和)(ωj e X 的关系。 n=0:3; x=[1,1,1,1]; k=0:200;

W=pi/100*k;

X=x*(exp(-j*pi/100)).^(n'*k); %计算DTFT magX=abs(X); subplot(3,1,1); plot(W/pi,magX); axis([0,2,0,5]); x=[1,1,1,1]; X=fft(x); magX=abs(X); k=0:3; W=pi/2*k;

subplot(3,1,2); stem(W/pi,magX); axis([0,2,0,5]);

x=[1,1,1,1,0,0,0,0];

X=fft(x); %计算FFT magX=abs(X); k=0:7;

W=pi/4*k;

subplot(3,1,3) stem(W/pi,magX) axis([0,2,0,5])

实验二 离散L TI 系统的时频域分析

1. 某离散LSI 系统的差分方程表示式为

() 1.5(1)0.5(2)()y n y n y n x n --+-=

满足初始条件(1)4y -=,(2)10y -=,求系统的单位响应,单位阶跃响应,用filter 子函数求系统输入为()(0.25)()n x n u n =时的零输入、零状态及全响应。

提示:通过解差分方程,可以得到全响应为1

112

()[()()]()2343

n n y n u n =+

+,使用filter 子函数对系统差分方程进行求解,同时将求解结果与理论计算的结果进行比较。

2. 已知离散系统的系统函数为

1

2

3

4

1

2

3

4

0.20.10.30.10.2()1 1.1 1.50.70.3z z

z

z

H z z

z z z

--------++++=

-+-+

求该系统的零极点及零极点分布图,并判断系统的因果性和稳定性。

3. 观察系统零极点的位置对幅频响应的影响。已知一阶离散系统的系统函数为

11

()z z H z z p -=

-,(1)假设系统的零点在原点,极点分别取0.2、0.5、0.8,比较它们的幅频

响应曲线,(2)假设系统的极点在原点,零点分别取0.2、0.5、0.8,比较它们的幅频响应曲线,从中总结零极点位置对幅频响应的影响。

IIR 滤波器设计

一、模拟滤波器设计

1、特沃斯模拟滤波器设计: ① [N,Wn]=buttord(Wp,Ws,Rp,Rs,'s')

其中,参数Wp 和Ws 分别是通带边界频率和阻带边界频率,Wp 和Ws 的单位是rad/s 。Rp 和Rs 分别为通带最大衰减和阻带最小衰减(dB )。返回的参数N 和Wn 分别为滤波器的阶数和3dB 截止频率。对于带通和带阻滤波器,Wp 和Ws 都是二维向量,向量的第一个元素对应低端的边界频率,第二个元素对应高端的边界频率。 ②

[B,A]=butter(N,Wn,'s') 其中,N 和Wn 分别为滤波器的阶数和3dB 截止频率。利用此函数

可以获得低通和带通滤波器系统函数的分子多项式(B )和分母多项式(A )的系数。

[B,A]=butter(N,Wn,'high','s') 可以获得高通滤波器系统函数的分子多项式(B )和分母多项

式(A )的系数。

[B,A]=butter(N,Wn,'stop','s') 可以获得带阻滤波器系统函数的分子多项式(B )和分母多项

式(A )的系数。

[z,p,k]=buttap(N): 设计一个N 阶的归一化的巴特沃斯原型低通模拟滤波器,返回滤波器的零点、极点和增益,此时z 为空。 利用freqs 函数计算模拟滤波器的频率响应:

H=freqs(B,A,w) 其中,B 和A 分别表示滤波器系统函数的分子多项式和分母多项式的系

数。该函数返回矢量w 指定的那些频率点上的频率响应,w 的单位是rad/s 。

不带输出变量的freqs 函数,将绘制出幅频和相频曲线。

例:设计一个巴特沃斯模拟低通滤波器,要求通带截止频率5p f kH z =,通带最大衰减dB p

2=α

,阻带截止频率12s f kH z =,阻带最小衰减dB s 30=α。要求绘出滤波器的

幅频特性曲线。

参考程序如下: fp=5000; wp=2*pi*fp; fs=12000; ws=2*pi*fs; rp=2;

rs=30;

[N,Wn]=buttord(wp,ws,rp,rs,'s');

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

freqs(b,a)

H=20*log10(abs(freqs(b,a,w))); %dB表示增益

2、计切比雪夫原型低通滤波器的函数,其调用格式如下:

[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs,'s'):其中,参数Wp和Ws分别是通带边界频率和阻带边界频率,Wp和Ws的单位是rad/s。Rp和Rs分别为通带最大衰减和阻带最小衰减(dB)。返回切比雪夫I型滤波器的阶数N和通带截止频率Wn。对于带通和带阻滤波器,Wp和Ws都是二维向量,向量的第一个元素对应低端的边界频率,第二个元素对应高端的边界频率。

[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs,'s'):参数同cheb1ord,返回切比雪夫II型滤波器的阶数N和通带截止频率Wn。

[b,a]=cheby1 (N,R,Wn) :其中,N和Wn分别为滤波器的阶数和通带截止频率, R为

纹波参数ε= b)和分母多项式(a)的系数。Cheby2与cheby1调用格式相同。

[B,A]=cheby1(N, R,Wn,'high') :可以获得高通滤波器系统函数的分子多项式(b)和分母多项式(a)的系数。Cheby2与cheby1调用格式相同。

[B,A]=cheby1 (N, R,Wn,'stop') : 可以获得带阻滤波器系统函数的分子多项式(b)和分母多项式(a)的系数。Cheby2与cheby1调用格式相同。

[z,p,k]=cheb1ap(N,Rp):返回一个N阶的归一化的切比雪夫I型低通模拟滤波器的零点、极点和增益。切比雪夫I型低通模拟滤波器在阻带是最平坦的。

[z,p,k]=cheb2ap(N,Rs):返回一个N阶的归一化的切比雪夫II型低通模拟滤波器的零点、极点和增益。切比雪夫II型低通模拟滤波器在通带是最平坦的。

例:设计切比雪夫滤波器,设计指标要求同例7-1。

参考程序如下:

fp=5000;

wp=2*pi*fp;

fs=12000;

ws=2*pi*fs;

rp=2;

rs=30;

[N,Wn]=cheb1ord(wp,ws,rp,rs,'s');

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

b=k*real(poly(z)); % poly( )用来求零点向量对应的特征多项式;

a=real(poly(p)); %求极点向量对应的特征多项式

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

dbH=20*log10((abs(H)+eps)/max(abs(H)));

subplot(221),plot(omega*Wn/(2*pi),abs(H));grid

axis([0,15000,0,1.1]);ylabel('幅度');xlabel('f(Hz)');

subplot(222),plot(omega*Wn/(2*pi),angle(H));grid

axis([0,15000,-4,4]);ylabel('相位');xlabel('f(Hz)');

subplot(212),plot(omega*Wn/(2*pi),dbH);grid

axis([0,14000,-40,2]);ylabel('幅度(dB )');xlabel('f(Hz)');

3、椭圆原型低通滤波器的函数,其调用格式如下:

[N,Wn]=ellipord(Wp,Ws,Rp,Rs,'s'):其中,参数Wp 和Ws 分别是通带边界频率和阻带边界频率,Wp 和Ws 的单位是rad/s 。Rp 和Rs 分别为通带最大衰减和阻带最小衰减(dB )。返回椭圆滤波器的阶数N 和通带截止频率Wn 。对于带通和带阻滤波器,Wp 和Ws 都是二维向量,向量的第一个元素对应低端的边界频率,第二个元素对应高端的边界频率。

[b,a]=ellip(N, Rp,Rs,Wn) : 其中,N 和Wn 分别为滤波器的阶数和通带截止频率Wn, R 为通带的纹波参数。利用此函数可以获得低通滤波器系统函数的分子多项式(b )和分母多项式(a )的系数。

[B,A]= ellip (N, Rp,Rs,Wn,'high') :可以获得高通滤波器系统函数的分子多项式(b )和分母多项式(a )的系数。

[B,A]= ellip (N, Rp,Rs,Wn,'stop') : 可以获得带阻滤波器系统函数的分子多项式(b )和分母多项式(a )的系数。

[z,p,k]= ellipap(N,R,Rs): 返回一个N 阶的归一化的椭圆低通模拟滤波器的零点、极点和增益。R 为通带的纹波系数,Rs 为阻带的最小衰减。

4、高通、带通、带阻滤波器的函数:

[bt,at]=lp2lp(b,a,w0):将系统函数表示的截止频率为1 rad/s 的模拟低通滤波器原型变换成截止频率为w0的低通滤波器;

[bt,at]=lp2hp(b,a,w0):将系统函数表示的截止频率为1 rad/s 的模拟低通滤波器原型变换成截止频率为w0的高通滤波器;

[bt,at]=lp2bp(b,a,w0,BW):将系统函数表示的截止频率为1 rad/s 的模拟低通滤波器原型变换成中心频率为w0,带宽为BW 的带通滤波器;

[bt,at]=lp2bs(b,a,w0,BW):将系统函数表示的截止频率为1 rad/s 的模拟低通滤波器原型变换成中心频率为w0,带宽为BW 的带阻滤波器。

[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s'):通过buttord (),cheb1ord (),cheb2ord (),ellipord ()函数也可以直接设计高通、带通、带阻滤波器。参数Wp 和Ws 分别是通带边界频率和阻带边界频率,Wp 和Ws 的单位是rad/s 。Rp 和Rs 分别为通带最大衰减和阻带最小衰减(dB )。对于带通和带阻滤波器,Wp 和Ws 都是二维向量,向量的第一个元素对应低端的边界频率,第二个元素对应高端的边界频率。

例:一个巴特沃斯模拟高通滤波器,要求满足通带截止频率Hz f p 20=,通带最大衰减dB p

3=α

,阻带截止频率Hz f s 10=,阻带最小衰减dB s 15=α。绘出滤波器的幅频特

性曲线。

参考程序如下: fp=20;

wp=2*pi*fp; fs=15;

ws=2*pi*fs;

rp=3;

rs=15;

[N,omegac]=buttord(wp,ws,rp,rs,'s');

[z0,p0,k0]=buttap(N);

b0=k0*real(poly(z0)); %求模拟原型低通滤波器的系数b0

a0=real(poly(p0)); %求模拟原型低通滤波器的系数a0

[H,omega0]=freqs(b0,a0); %求模拟原型低通滤波器的频率响应

dbH=20*log10((abs(H)+eps)/max(abs(H)));

[b1,a1]=lp2hp(b0,a0,omegac); %从归一化低通向实际高通转换

[H1,omega1]=freqs(b1,a1); %求实际高通滤波器的频率响应

dbH1=20*log10((abs(H1)+eps)/max(abs(H1)));

subplot(221),plot(omega0/(2*pi),dbH);grid

axis([0,1,-50,1]);title('归一化模拟低通原型幅度响应');

ylabel(‘dB’);

subplot(222),plot(omega0/(2*pi),angle(H));grid

axis([0,1,-4,4]); title ('归一化模拟低通原型相位响应');

ylabel(‘弧度’);

subplot(223),plot(omega1/(2*pi),dbH1);grid

axis([0,2*fs,-50,1]); title ('实际模拟高通幅度响应');

ylabel(‘dB’);xlabel(‘频率(Hz)’);

subplot(224),plot(omega1/(2*pi),angle(H1));grid

axis([0,2*fs,-4,4]); title ('实际模拟高通相位响应');

ylabel(‘弧度’);xlabel(‘频率(Hz)’);

二、用脉冲响应不变法和双线性变换法设计IIR数字滤波器

①[bz,az]=impinvar(b,a,Fs) :实现用冲激响应不变法将模拟滤波器转换为数字滤波器。其中b和a分别是模拟滤波器的系统函数)s(

H的分子多项式和分母多项式的系数,Fs 是冲激响应不变法中的采样频率,单位为Hz,如果Fs没有说明,其缺省值为1Hz。运算的结果bz和az分别表示数字滤波器的系统函数)z(

H的分子多项式和分母多项式的系数。

②[bz,az]=bilinear(b,a,Fs)

可以实现用双线性变换法将模拟滤波器转换为数字滤波器。参数含义同上。

③利用freqz函数计算数字滤波器的频率响应

2.0,

例:用冲激响应不变法设计一个巴特沃斯数字低通滤波器,要求通带截止频率为π

3.0,通带最大衰减为1dB,阻带最小衰减为15dB,采样频率设为1Hz。阻带截止频率为π

参考程序如下:

%数字滤波器的技术指标转化成模拟滤波器的技术指标

wp=0.2*pi;ws=0.3*pi;

rp=1;rs=15;

fs=1;

omegap=wp*fs;omegas=ws*fs;

%模拟原型低通滤波器的设计

[N,Wn]=buttord(omegap,omegas,rp,rs,'s');

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

[h,omega]=freqs(b,a);

dbh=20*log10(abs(h)/max(abs(h)));

%用冲激响应不变法设计数字滤波器

[bz1,az1]=impinvar(b,a,fs);

%求数字滤波器的频率特性

[h1,w]=freqz(bz1,az1,256,'whole');

dbh1=20*log10(abs(h1)/max(abs(h1)));

subplot(221)

plot(omega,dbh);grid

axis([0 5 -100 10]);

title('模拟滤波器的幅频响应');ylabel(‘dB’);

subplot(222)

plot(w/pi,dbh1);grid

axis([0 2 -80 10]);

title('数字滤波器的幅频响应');ylabel(‘dB’);

例:用双线性变换法设计一个数字低通滤波器,设计指标同上例。

参考程序如下:

%数字滤波器的技术指标转化成模拟滤波器的技术指标

wp=0.2*pi;ws=0.3*pi;

rp=1;rs=15;

fs=1;T=1/fs;

omegap=(2/T)*tan(wp/2);

omegas=(2/T)*tan(ws/2);

%模拟原型低通滤波器的设计

[N,Wn]=buttord(omegap,omegas,rp,rs,'s');

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

[h,omega]=freqs(b,a);

dbh=20*log10(abs(h)/max(abs(h)));

%用双线性变换法设计数字滤波器

[bz1,az1]=bilinear(b,a,fs);

[h1,w]=freqz(bz1,az1,256,'whole'); %求数字滤波器的频率特性

dbh1=20*log10(abs(h1)/max(abs(h1)));

subplot(221)

plot(omega,dbh);grid

axis([0 5 -100 10]);

title('模拟滤波器的幅频响应');ylabel(‘dB’);

subplot(222)

plot(w/pi,dbh1);grid

axis([0 2 -80 10]);

title('数字滤波器的幅频响应');ylabel(‘dB’);

三、直接设计IIR数字滤波器

[N, wn] = buttord(wp, ws, rp, rs):用于直接设计IIR数字滤波器,输入参数wp为通带截止频率,ws为阻带截止频率,rp为通带最大衰减,rs为阻带最小衰减,其中wp, ws必须相对π作归一化,若wpws,为高通滤波器,wp,ws为二维向

量,为带通或带阻滤波器。返回参数N为滤波器的阶数,wn为3dB截止频率。

[b,a] =butter(N,wn): 用于直接设计IIR低通数字滤波器,输入参数N为滤波器的阶数,wn为3dB截止频率,返回数字滤波器系统函数的分子、分母多项式的系数。

[b,a] =butter(N,wn,’high’): 用于直接设计IIR高通数字滤波器,参数同上。

[b,a] =butter(N,wn,’stop’): 用于直接设计IIR带阻数字滤波器,参数同上。

[z,p,k] =butter(N,wn):用于直接设计IIR低通数字滤波器,输入参数N为滤波器的阶数,wn为3dB截止频率,返回数字滤波器系统函数的零点、极点和增益矩阵。

[z,p,k] =butter(N,wn,’high’):用于直接设计IIR高通数字滤波器,参数同上。

[z,p,k] =butter(N,wn,’stop’):用于直接设计IIR高阻数字滤波器,参数同上。

[A,B,C,D] =butter(N,wn): 用于直接设计IIR低通数字滤波器,输入参数N为滤波器的阶数,wn为3dB截止频率,返回数字滤波器系统状态方程的系数矩阵。

[A,B,C,D] =butter(N,wn,’high’):用于直接设计IIR高通数字滤波器,参数同上。

[A,B,C,D] =butter(N,wn,’stop’): 用于直接设计IIR带阻数字滤波器,参数同上。

对于cheb1ord(),cheb2ord(),ellipord(),cheby1(),cheby2(),ellip()等函数有上面相同的调用格式。

实验三 IIR 滤波器设计

1. 模拟滤波器的设计

1) 设计一个巴特沃斯模拟低通滤波器,以满足:通带截止频率Hz f p 5=,通带最大衰减

dB p

2=α

,阻带截止频率Hz f s 12=,阻带最小衰减dB s 30=α。要求绘出滤波器的

幅频特性曲线。

2) 设计一个巴特沃斯模拟高通滤波器,以满足:通带截止频率Hz f p 20=,通带最大衰减

dB p

3=α

,阻带截止频率Hz f s 10=,阻带最小衰减dB s 15=α。要求绘出滤波器的

幅频特性曲线。

3) 设计一个巴特沃斯模拟带通滤波器,以满足:通带范围为10Hz ~25Hz ,阻带截止频率

分别为5Hz 、30Hz ,通带最大衰减为3dB ,阻带最小衰减为30dB 。要求绘出滤波器的幅频特性曲线。

4) 设计一个巴特沃斯模拟带阻滤波器,以满足:通带截止频率分别为10HZ 、35HZ ,阻带

截止频率分别为15HZ 、30HZ ,通带最大衰减为3dB ,阻带最小衰减为30dB 。要求绘出滤波器的幅频特性曲线。

2.用脉冲响应不变法和双线性变换法设计IIR 数字滤波器

要求分别用脉冲响应不变法和双线性变换法设计一个数字低通滤波器,以满足:通带截止频率为π2.0,阻带截止频率为π3.0,通带最大衰减为1dB ,阻带最小衰减为15dB ,采样间隔设为1s 。

FIR 滤波器设计

一、窗函数的FIR DF 的设计

(1)Matlab 中提供了很多常用的窗函数,其中一些窗函数的调用形式为:

矩形窗:w=boxcar(N)

三角形窗:w=bartlett(N) 汉宁窗:w=hanning(N) 哈明窗:w=hamming(N) 布莱克曼窗:w=blackman(N)

其中,输入参数N 表示窗口的长度,返回的变量w 是一个长度为N 的列向量,表示窗函数在这N 点的取值。

(2)b=fir1(N,Wc,'ftype',Window)

fir1函数用来设计FIR 滤波器。其中N 为滤波器的阶数;Wc 是截止频率,其取值在0~1之间,它是以π为基准频率的标称值,设计低通和高通滤波器时,Wc 是标量,设计带通和带阻滤波器时,Wc 是1×2的向量;设计低通和带通滤波器时,无需 'ftype',当ftype=high 时,设计高通滤波器,当ftype=stop 时,设计带阻滤波器;Window 表示设计滤波器所采用的窗函数类型,Window 的长度为N+1,若Window 缺省,则fir1默认使用哈明窗;b 对应设计好的滤波器的系数h(n),即单位脉冲响应,h(n)的长度为N+1。 (3)求数字滤波器的频率响应

h=freqz(b,a,w)

其中,b 和a 分别为系统函数)(z H 的分子多项式和分母多项式的系数。对于FIR 滤波器,此处的b 即为h(n),a 即为1。

例:分别用矩形窗和哈明窗设计FIR 低通滤波器,设窗宽11=N ,截止频率

ra d c πω2.0=,要求绘出两种窗函数设计的滤波器幅频曲线。

参考程序如下: N=11;

h1=fir1(N-1,0.2,boxcar(N)); h2=fir1(N-1,0.2,hamming(N)); w=0:0.01:pi; H1=freqz(h1,1,w);

H1db=20*log10(abs(H1)/max(abs(H1))); H2=freqz(h2,1,w);

H2db=20*log10(abs(H2) /max(abs(H1))); subplot(1,2,1)

plot(w/pi,abs(H1),'-.',w/pi,abs(H2)) legend('矩形窗','哈明窗'); xlabel('w/pi');ylabel('幅频响应'); subplot(1,2,2)

plot(w/pi,H1db,'-.',w/pi,H2db) xlabel('w/pi');ylabel('dB'); legend('矩形窗','哈明窗');

二、 用频率采样法设计FIR 数字滤波器

h=fir2(N,w,A):基于频率采样法的FIR 滤波器设计,用于任意频率响应的加窗数字FIR 滤波器的设计。其中N 为滤波器的阶数;W 是频率点矢量,其取值在0~1之间,它是以π为基准频率的标称值;矢量A 中包含与W 相对应的期望滤波器响应幅度,矢量A 和W 的长度必须相同。

h=fir2(N,w,A,windows):可将列矢量windows 中指定的窗函数用于滤波器设计,如省略windows ,则默认为hamming 窗。

例:利用频率采样法设计线性相位低通滤波器,要求3 dB 截止频率rad c 2/πω=,采样点数分别取33=N 和63N =,选用)1()(n N h n h --=的情况。分别显示理想幅频特性的采样序列和实际滤波器的幅频响应,观察采样点数对滤波器特性的影响。 用理想低通作为逼近滤波器。

32

,,2,1,0,33

32)(24,23,,10,9,

0)(8,,2,1,0,1)33()( =-

=====-=k k k k k H k k H k H πθ

用Matlab 实现如下:

N1=33;n1=0:N1-1;wc=0.5*pi;

M1=fix(wc/(2*pi/N1)); %求3dB 截止频率对应的采样点

M2=N1-2*M1-1;

A1=[ones(1,M1+1),zeros(1,M2),ones(1,M1)]; %求理想低通滤波器对应的频域采样序列 theta1=-pi*[0:N1-1]*(N1-1)/N1; %第一类线性相位的相角

Hk1=A1.*exp(j*theta1); %由频率采样法得到的FIR 滤波器的频域序列 h1=real(ifft(Hk1)); %由频率采样法得到的FIR 滤波器的单位响应 [H1 w1]=freqz(h1,1); %由频率采样法得到的FIR 滤波器的幅频响应

信号与系统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.数组的加减乘除和乘方运算 A=[1 2 3]; B=[4 5 6]; C=A+B; D=A-B; E=A.*B; F=A./B; G=A.^B; subplot(2,4,1);stem(A) subplot(2,4,2);stem(B) subplot(2,4,3);stem(C) subplot(2,4,4);stem(D) subplot(2,4,5);stem(E) subplot(2,4,6);stem(F) subplot(2,4,7);stem(G) 2.绘制函数波形 (1)t=0:0.001:10

x=3-exp(-t); plot(t,x) ylabel('f(t)'); xlabel('t'); title('(1)'); (2)t=0:0.001:10 x=5*exp(-t)+3*exp(-2*t); plot(t,x) ylabel('f(t)'); xlabel('t'); title('(2)');

(3)t=0:0.001:3 x=exp(-t).*sin(2*pi*t); plot(t,x) ylabel('f(t)'); xlabel('t'); title('(3)'); (4)t=0:0.001:3 x=sin(3*t)./(3*t);

plot(t,x) ylabel('f(t)'); xlabel('t'); title('(4)'); (5)k=1:1:6 x=(-2).^(-k); stem(k) xlabel('k'); ylabel('f(k)'); title('(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 ()

信号与系统 matlab答案

M2-3 (1) function yt=x(t) yt=(t).*(t>=0&t<=2)+2*(t>=2&t<=3)-1*(t>=3&t<=5); (2)function yt=x (t) yt=(t).*(t>=0&t<=2)+2*(t>=2&t<=3)-1*(t>=3&t<=5); t=0:0.001:6; subplot(3,1,1) plot(t,x2_3(t)) title('x(t)') axis([0,6,-2,3]) subplot(3,1,2) plot(t,x2_3(0.5*t)) title('x(0.5t)') axis([0,11,-2,3]) subplot(3,1,3) plot(t,x2_3(2-0.5*t)) title('x(2-0.5t)') axis([-6,5,-2,3]) 图像为:

M2-5 (3) function y=un(k) y=(k>=0) untiled3.m k=[-2:10] xk=10*(0.5).^k.*un(k); stem(k,xk) title('x[k]') axis([-3,12,0,11])

M2-5 (6) k=[-10:10] xk=5*(0.8).^k.*cos((0.9)*pi*k) stem(k,xk) title('x[k]') grid on M2-7 A=1; t=-5:0.001:5; w0=6*pi; xt=A*cos(w0*t); plot(t,xt) hold on A=1; k=-5:5; w0=6*pi; xk=A*cos(w0*0.1*k); stem(k,xk) axis([-5.5,5.5,-1.2,1.2]) title('x1=cos(6*pi*t)&x1[k]')

matlab信号与系统代码整理

连续时间系统 (1) 离散时间系统 (2) 拉普拉斯变换 (4) Z变换 (5) 傅里叶 (7) 连续时间系统 %%%%%%%%%%向量法%%%%%%%%%%%%%%%% t1=-2:0.01:5; f1=4*sin(2*pi*t1-pi/4); figure(1) subplot(2,2,1),plot(t1,f1),grid on %%%%%%%%%符号运算法%%%%%%%%%%%% syms t f1=sym('4*sin(2*pi*t-pi/4)'); figure(2) subplot(2,2,1),ezplot(f1,[-2 5])跟plot相比,ezplot不用指定t,自动生成。axis([-5,5,-0.1,1])控制坐标轴的范围xx,yy; 求一个函数的各种响应 Y’’(t)+4y’(t)+2y(t)=f”(t)+3f(t) %P187 第一题 %(2) clear all; a1=[1 4 2]; b1=[1 0 3]; [A1,B1,C1,D1]=tf2ss(b1,a1); t1=0:0.01:10; x1=exp(-t1).*Heaviside(t1); rc1=[2 1];(起始条件) figure(1) subplot(3,1,1),initial(A1,B1,C1,D1,rc1,t1);title('零输入响应') subplot(3,1,2),lsim(A1,B1,C1,D1,x1,t1);title('零状态响应') subplot(3,1,3),lsim(A1,B1,C1,D1,x1,t1,rc1);title('全响应') Y=lsim(A1,B1,C1,D1,x1,t1,rc1);title('全响应')则是输出数值解 subplot(2,1,1),impulse(b1,a1,t1:t:t2可加),grid on,title('冲激响应') subplot(2,1,2),step(b1,a1,t1:t:t2可加),grid on,title('阶跃响应') 卷积 %第九题 P189 clear all; %(1) t1=-1:0.01:3;

(完整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,借助它我们可以在电脑上轻松地完成许多习题的演算和波形的绘制。 MATLAB的功能非常强大,我们此处仅用到它的一部分,在后续课程中我们还会用到它,在未来地科学研究和工程设计中有可能继续用它,所以有兴趣的同学,可以对MATLAB 再多了解一些。 MATLAB究竟有那些特点呢? 1.高效的数值计算和符号计算功能,使我们从繁杂的数学运算分析中解脱出来; 2.完备的图形处理功能,实现计算结果和编程的可视化; 3.友好的用户界面及接近数学表达式的自然化语言,易于学习和掌握; 4.功能丰富的应用工具箱,为我们提供了大量方便实用的处理工具; MATLAB的这些特点,深受大家欢迎,由于个人电脑地普及,目前许多学校已将它做为本科生必须掌握的一种软件。正是基于这些背景,我们编写了这本《信号与系统及MATLAB实现》指导书,内容包括信号的MATLAB表示、基本运算、系统的时域分析、频域分析、S域分析、状态变量分析等。通过这些练习,同学们在学习《信号与系统》的同时,掌握MATLAB的基本应用,学会应用MATLAB的数值计算和符号计算功能,摆脱烦琐的数学运算,从而更注重于信号与系统的基本分析方法和应用的理解与思考,将课程的重点、

难点及部分习题用MATLAB进行形象、直观的可视化计算机模拟与仿真实现,加深对信号与系统的基本原理、方法及应用的理解,为学习后续课程打好基础。另外同学们在进行实验时,最好事先预习一些MATLAB的有关知识,以便更好地完成实验,同时实验中也可利用MATLAB的help命令了解具体语句以及指令的使用方法。 实验一基本信号在MATLAB中的表示和运算 一、实验目的 1.学会用MATLAB表示常用连续信号的方法; 2.学会用MATLAB进行信号基本运算的方法; 二、实验原理 1.连续信号的MATLAB表示 MATLAB提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。 表示连续时间信号有两种方法,一是数值法,二是符号法。数值法是定义某一时间范围和取样时间间隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用绘图语句画出其波形;符号法是利用MATLAB的符号运算功能,需定义符号变量和符号函数,运算结果是符号表达的解析式,也可用绘图语句画出其波形图。 例1-1指数信号指数信号在MATLAB中用exp函数表示。 如at )(,调用格式为ft=A*exp(a*t) 程序是 f t Ae

信号与系统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综合实验学生姓名: 学号: 专业班级: 2012年5月20日

基本编程与simulink仿真实验 1—1编写函数(function)∑=m n k n 1并调用地址求和∑∑∑===++100 11-8015012 n n n n n n 。实验程序: Function sum=qiuhe(m,k)Sum=0For i=1:m Sum=sum+i^k End 实验结果; qiuhe(50,2)+qiuhe(80,1)+qiuhe(100,-1) ans=4.6170e+004。 1-2试利用两种方式求解微分方程响应 (1)用simulink对下列微分方程进行系统仿真并得到输出波形。(2)编程求解(转移函数tf)利用plot函数画图,比较simulink图和plot图。)()(4)(6)(5)(d 22t e t e d d t r t r d d t r d t t t +=++在e(t)分别取u(t)、S(t)和sin(20пt)时的情况! 试验过程 (1)

(2) a=[1,5,6]; b=[4,1]; sys=tf(b,a); t=[0:0.1:10]; step(sys)

连续时间系统的时域分析3-1、已知某系统的微分方程:)()()()()(d 2t e t e d t r t r d t r t t t +=++分别用两种方法计算其冲激响应和阶跃响应,对比理论结果进行验证。 实验程序: a=[1,1,1];b=[1,1];sys=tf(b,a);t=[0:0.01:10];figure;subplot(2,2,1);step(sys);subplot(2,2,2);x_step=zeros(size(t));x_step(t>0)=1;x_step(t==0)=1/2;lsim(sys,x_step,t);subplot(2,2,3);impulse(sys,t);title('Impulse Response');xlabel('Time(sec)');ylabel('Amplitude');subplot(2,2,4);x_delta=zeros(size(t));x_delta(t==0)=100;[y1,t]=lsim(sys,x_delta,t);y2=y1;plot(t,y2);title('Impulse Response');

信号与系统作业

实验一常用连续时间信号的实现 一、实验目的 (1)了解连续时间信号的特点; (2)掌握连续时间信号表示的向量法和符号法; (3)熟悉MA TLABPlot函数等的应用。 二、涉及的MATLAB函数 1.plot函数 功能:在X轴和Y轴方向都按线性比例绘制成二维图形。 2.ezplot函数 功能:绘制符号函数在一定范围内的二维图形,简易绘制函数曲线。 3.Sym函数 功能:定义信号为符号变量。 4.subplot函数 功能:产生多个绘图区间。 三、实验内容与方法 1.正弦交流信号f(t)=sin(ωt+φ) (1)符号推理法生成正弦交流信号。 MATLAB程序:. t=-0:0.001:1; f=sym('sin(2*pi*t)'); ezplot(f,[0,1]); xlabel('时间(t)'); ylabei('幅值(f)'); title(‘正弦交流信号'); 用符号法生成的正弦交流信号如图所示:

(2)数值法生成正弦交流信号。 MATLAB程序:. t=-0:0.001:1; y=sin(2*pi*t); plot(t,y,'k'); xlabel('时间(t)'); ylabei('幅值(f)'); title('正弦交流信号'); 用数值法生成的正弦交流信号如图所示: 2.单边衰减指数信号. MATLAB程序: t1=-1;t2=10;dt=0.1; t=t1:dt:t2; A1=1; %斜率 a1=0.5; %斜率 n=A1*exp(-a1*t); plot(t,n); axis([t1,t2,0,1]); xlabel('时间(t)'); ylabel('幅值(f)'); title('单边衰减指数信号'); 用数值法生成的单边衰减指数信号如图所示:

基于MATLAB的信号与系统仿真及应用

本科毕业(论文) 题 目 (中、英文 ) in The Signal System 分类 号 学号 密级 公开 学校代码 1107044431 TN911.6 基于MATLAB 的信号系统仿真及应用 The Application of MATLAB in The Signal System 工科 作者姓名 指导教师 学科门类 专业名称 电气工程及其自动化 提交论文日期 成绩评定 二零一五年五月

摘要 当前的科学信息技术正在日新月异的高速发展,而通过应用数字信号处理的方法,已成为一个非常重要的技术手段被广泛应用在通信、音频和图像、遥感,视频等领域。为了更好地了解信号与系统的基本理论和掌握其方法,从而更好地理解和掌握数字信号处理的理论知识,因此在实验过程中我们就需要通过MATLAB 计算机辅助设计平台。 本论文主要探究MATALB在信号与系统中的连续信号和离散信号中的应用,主要从连续和离散两方面入手,进一步掌握信号系统中的相关知识。同时引进计算机软件—MATLAB,对信号系统二阶系统的时域和频域分析,通过它在计算机上对程序进行仿真,阐述信号与系统理论应用与实际相联系。以此激发学习兴趣,变被动接受为主动探知,从而提升学习效果,培养主动思维,学以致用的思维习惯,也可以让人们进一步了解MATLAB软件 关键词:采样定理;MATLAB;信号与系统;抽样定理

Abstract Current, the rapid development of science and information technology are changing and through the application of digital signal processing method, has become a very important technology is widely used in communication, audio and video, remote sensing, video, etc. In order to better understand the basic theory of signal and system, and grasp the method, to better understand and master the theoretical knowledge of digital signal processing, so we need in the process of experiment by MATLAB computer aided design platform. This thesis mainly explores MATALB in signal and system, the application of discrete and continuous signals, mainly from the two aspects of the continuous and discrete, further to master relevant knowledge of signal system. Introduction of computer software - MATAB at the same time, the signal system of second order system time domain and frequency domain analysis, through its d on program on computer simulation, signal and system theory associated with the actual application. To stimulate interest in learning, change passive accept to active detection, so as to improve learning effect, active thinking, to practice habits of thinking, also can let people learn more about MATLAB software. Key words:Sampling theorem; MATLAB; Signals and systems; The sampling theorem

实验项目五:表示信号与系统的MATLAB函数、工具箱

电子科技大学 实 验 报 告 学生姓名: 学号: 指导老师: 日期:2016年 12月25 日

一、实验室名称: 科研楼a306 二、实验项目名称: 实验项目五:表示信号与系统的MATLAB 函数、工具箱 三、实验原理: 利用MATLAB 强大的数值处理工具来实现信号的分析和处理,首先就是要学会应用MATLAB 函数来构成信号。常见的基本信号可以简要归纳如下: 1、单位抽样序列 ???=01 )(n δ 00≠=n n 在MATLAB 中可以利用zeros()函数实现。 ; 1)1();,1(==x N zeros x 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ???=-01)(k n δ 0≠=n k n 2、单位阶跃序列 ???0 1)(n u 00<≥n n 在MATLAB 中可以利用ones()函数实现。 );,1(N ones x = 3、正弦序列 )/2sin()(?π+=Fs fn A n x 采用MATLAB 实现 )/***2sin(*1:0fai Fs n f pi A x N n +=-= 4、复正弦序列

n j e n x ?=)( 采用MATLAB 实现 )**exp(1 :0n w j x N n =-= 5、指数序列 n a n x =)( 采用MATLAB 实现 n a x N n .^1 :0=-= 四、实验目的: 目的:1、加深对常用离散信号的理解; 2、熟悉表示信号的基本MATLAB 函数。 任务:基本MATLAB 函数产生离散信号;基本信号之间的简单运算;判断信 号周期。 五、实验内容: MATLAB 仿真 实验步骤: 1、编制程序产生上述5种信号(长度可输入确定),并绘出其图形。 2、在310≤≤n 内画出下面每一个信号: 1223[]sin()cos() 44[]cos ()4 []sin()cos()48n n x n n x n n n x n πππππ=== 六、实验器材: 计算机、matlab 软件、C++软件等。 七、实验数据及结果分析: 实验1: 单位抽样序列

信号与系统课后matlab作业.

(1) t=-2:0.001:4; T=2; xt=rectpuls(t-1,T); plot(t,xt) axis([-2,4,-0.5,1.5]) 图象为: (2) t=sym('t'); y=Heaviside(t); ezplot(y,[-1,1]); grid on axis([-1 1 -0.1 1.1]) 图象为:

A=10;a=-1;B=5;b=-2; t=0:0.001:10; xt=A*exp(a*t)-B*exp(b*t); plot(t,xt) 图象为: (4) t=sym('t'); y=t*Heaviside(t); ezplot(y,[-1,3]); grid on axis([-1 3 -0.1 3.1]) 图象为:

A=2;w0=10*pi;phi=pi/6; t=0:0.001:0.5; xt=abs(A*sin(w0*t+phi)); plot(t,xt) 图象为: (6) A=1;w0=1;B=1;w1=2*pi; t=0:0.001:20; xt=A*cos(w0*t)+B*sin(w1*t); plot(t,xt) 图象为:

A=4;a=-0.5;w0=2*pi; t=0:0.001:10; xt=A*exp(a*t).*cos(w0*t); plot(t,xt) 图象为: (8) w0=30; t=-15:0.001:15; xt=cos(w0*t).*sinc(t/pi); plot(t,xt) axis([-15,15,-1.1,1.1]) 图象为:

(1)function yt=x2_3(t) yt=(t).*(t>=0&t<=2)+2*(t>=2&t<=3)-1*(t>=3&t<=5); (2)function yt=x2_3(t) yt=(t).*(t>=0&t<=2)+2*(t>=2&t<=3)-1*(t>=3&t<=5); t=0:0.001:6; subplot(3,1,1) plot(t,x2_3(t)) title('x(t)') axis([0,6,-2,3]) subplot(3,1,2) plot(t,x2_3(0.5*t)) title('x(0.5t)') axis([0,11,-2,3]) subplot(3,1,3) plot(t,x2_3(2-0.5*t)) title('x(2-0.5t)') axis([-6,5,-2,3]) 图像为:

信号与系统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 产生基本信号、绘制信号波形、实现信号的基本运算。 二、 实验原理 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('杨婕婕朱艺星');

信号与系统实验(MATLAB版) (1)

《信号与系统MATLAB实现》实验指导书 电气信息工程学院 2014年2月

长期以来,《信号与系统》课程一直采用单一理论教学方式,同学们依靠做习题来巩固和理解教学内容,虽然手工演算训练了计算能力和思维方法,但是由于本课程数学公式推导较多,概念抽象,常需画各种波形,作题时难免花费很多时间,现在,我们给同学们介绍一种国际上公认的优秀科技应用软件MA TLAB,借助它我们可以在电脑上轻松地完成许多习题的演算和波形的绘制。 MATLAB的功能非常强大,我们此处仅用到它的一部分,在后续课程中我们还会用到它,在未来地科学研究和工程设计中有可能继续用它,所以有兴趣的同学,可以对MATLAB 再多了解一些。 MATLAB究竟有那些特点呢? 1.高效的数值计算和符号计算功能,使我们从繁杂的数学运算分析中解脱出来; 2.完备的图形处理功能,实现计算结果和编程的可视化; 3.友好的用户界面及接近数学表达式的自然化语言,易于学习和掌握; 4.功能丰富的应用工具箱,为我们提供了大量方便实用的处理工具; MATLAB的这些特点,深受大家欢迎,由于个人电脑地普及,目前许多学校已将它做为本科生必须掌握的一种软件。正是基于这些背景,我们编写了这本《信号与系统及MATLAB实现》指导书,内容包括信号的MA TLAB表示、基本运算、系统的时域分析、频域分析、S域分析、状态变量分析等。通过这些练习,同学们在学习《信号与系统》的同时,掌握MATLAB的基本应用,学会应用MATLAB的数值计算和符号计算功能,摆脱烦琐的数学运算,从而更注重于信号与系统的基本分析方法和应用的理解与思考,将课程的重点、难点及部分习题用MATLAB进行形象、直观的可视化计算机模拟与仿真实现,加深对信号与系统的基本原理、方法及应用的理解,为学习后续课程打好基础。另外同学们在进行实验时,最好事先预习一些MATLAB的有关知识,以便更好地完成实验,同时实验中也可利用MATLAB的help命令了解具体语句以及指令的使用方法。

信号与系统MATLAB仿真题目

考核人数______ 考核班次_______________ 任课教员_________ 出题教员签名________ 任课教研室主任签名_______日期_______ 队别__________ 教学班次___________ 学号___________ 姓名____________ …………………………密………………………………封………………………………线……………………………………… 通信系统仿真题目 1.学习电路时已知LC 谐振电路具有选择频率的作用,当输入正弦信号频率与LC 电路的谐 振频率一致时,将产生较强的输出响应,而当输入信号频率适当偏离时,输出响应相对值很弱,几乎为零(相当于窄带通滤波器)。利用这一原理可以从非正弦周期信号中选择所需的正弦频率成分。题图所示RLC 并联电路和电流1()i t 都是理想模型。已知电路的谐振频率为 0100f kHz = =,100R k =Ω谐振电路品质因素Q 足够高(可滤除邻近频率成分) 1()i t 为周期矩形波,幅度为1 mA 当1()i t 的参数(,)T τ为下列情况时,粗略地画出输出电压 2()t υ的波形,并注明幅度值。 (1)510s T s τμμ== (2)1020s T s τμμ== (3)1530s T s τμμ== 2.设()x n 为一限长序列,当0n <和n N ≥时,()0x n =,且N 等于偶数。已知[()]DFT x n = ()X k ,试用()X k 表示以下各序列的DFT 。 (1)1()(1)x n x N n =-- (2)2()(1)()n x n x n =- (3) 3() (01)()()(21)0()x n n N x n x n N N n N n ≤≤-?? =-≤≤-??? 为其他值 (4) 4()()(01) ()2 2 () N N x n x n n x n n ?≠+≤≤ -? =???为其他值 (5) 5()(01)()0 (21)0() x n n N x n N n N n ≤≤-?? =≤≤-??? 为其他值 (6) 6() ()20()n x n x n n ??? ? ?=????? 为偶数为奇数 (DFT 有限长度取2N ,k 取偶数。) (7) 7()(2)x n x n =(DFT 有限长度取 2 N )。 3.已知三角脉冲1() f t 的傅里叶变换为21()24E F Sa τωτω??= ??? 试利用有关定理求210()cos()2f t f t t τω?? =- ??? 的傅里叶变换2()F ω。1()f t 、2()f t 的波形如下图所示。 4.求下图所示半波余弦信号的傅里叶级数。若E=10V ,f=10kHz ,大致画出幅度谱。 5.求下图所示()F ω的傅里叶逆变换()f t 。

根据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作业

电子与通信工程学院 通信系统仿真实验报告 2013 ~ 2014 学年第1学期调频(FM)系统调制解调仿真专业:通信工程 班级:通信111 班 学号: 姓名: 指导教师姓名:陈多瑜 2013年 11 月日

1.频率调制或调频(FM ) (1)设调制信号为m(t),调频信号的数学表达式为 ττ?d m K t f ?=)()( 例如:m (t )的时域波形为 m (t ) 1 0 0.5 1 t -1 FM 调频波如下: FM 信号 (2) FM 调制模型的建立 图1 FM 调制模型 其中,()m t 为基带调制信号,设调制信号为 ()cos(2)m m t A f t π= 设正弦载波为 ()cos(2)c c t f t π=

可得到已调调频信号为 dt t m k t f A t s FM c c FM ?+=)(22cos[)(ππ (3)原理 所谓频率调制(FM ),是指瞬时频率偏移随调制信号m(t)成比例变化,即 () ()f d t K m t dt ?= 式中K f 为调频灵敏度(rad/(s ·V))。 这时相位偏移为 ()()f t K m d ?ττ =? 则可得到公式 ()cos ()FM c f s t A t K m d ωττ?? = +?? ? 假设信号传输信道为高斯白噪声信道,其功率为2 σ。 ①FM 信号的仿真 下面给出一个用MATLAB 仿真FM 信号的示例。 已知:消息信号是[-3,3]均匀分布的随机整数,产生的时间间隔为1/10s ,用FM 方法调制载波t f c πcos2。假设调频器灵敏度50=f k ,250=c f ,100≤≤t ,消息信号的带宽W=50Hz ,试求: (1)画出消息信号和解调信号; (2)已调信号的功率、消息信号的功率、调制指数及调制信号的带宽; (3)用鉴频法解调该信号,画出原始信号和解调信号; (4)假设调制信号通过AWGN 信道,信噪比为20dB ,显示解调后的信号与

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