MATLAB信号处理例题

  • 格式:doc
  • 大小:219.50 KB
  • 文档页数:17

下载文档原格式

  / 17
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

◆例1设方波的数学模型为:

]5sin 513sin 31[sin 4)(000 t t t E t f T ,基频: T

20

用MATLAB 软件完成该方波的合成设计

◆ MATLAB 源程序

t=-10:0.1:10; %设定一个数组有201个点,方波周期为20

e=5;w=pi/10; %设定方波幅值为5,w 代表w0

m=-5*sign(t); %给定幅值为5的方波函数

y1=(-4*e/pi)*sin(w*t); %计算1次谐波

y3=(-4*e/pi)*(sin(w*t)+sin(3*w*t)/3); %计算3次谐波

y5=(-4*e/pi)*(sin(w*t)+sin(3*w*t)/3+sin(5*w*t)/5); %计算5次谐波

plot(t,y1,'y');hold; grid; %用黄色点线画出1次谐波及网格线,并在同一张图上画其余曲线

plot(t,y3,'g'); %用绿色点线画出3次谐波

plot(t,y5,'b'); %用蓝色点线画出5次谐波

plot(t,m,'-k'); %用黑色实线画方波

title('方波合成');xlabel('t');ylabel('f(t)'); %为图形加上标题

n=50; %合成任意次方波,n 决定方波的合成次数,在此给定50

yn=0; %设置初始值

for i=1:n

yn=yn+(-4*e/pi)*(1/(2*i-1))*sin((2*i-1)*w*t);

end; %计算n 次谐波合成

plot(t,yn,'r') %用红色实线画出n 次谐波合成

◆ 从图中我们可以看到Gibbs 现象。在函数的间断点附近,增加傅里叶级数的展开次数,虽然可以使其间断点附近的微小振动的周期变小,但振幅却不能变小。此现象在控制系统表现为:当求控制系统对阶跃函数的响应时,超调量总是存在的。

◆例2(P110)MATLAB中函数FFT应用举例。

%MATLAB中函数FFT应用举例

t=0:0.001:0.6;

x=sin(2*pi*50*t)+sin(2*pi*120*t);

y=x+2*randn(size(t))

subplot(2,1,1)

plot(y(1:50))

xlable(‘时间轴t’)

ylable(‘信号值f(t)’)

title(‘正弦波+随即噪声’,’FontSize’,10)

y=fft(y,512);

f=1000*(0:256)/512;

subplot(2,1,2)

plot(f,Y(1:257))

set(gca,’Xtick’,[0,50,100,150,200,250,300,350,400,450,500])

set(gca,’XtickLabel’,’0|50|100|150|200|250|300|350|400|450|500|’) xlabel(‘频率轴\omega’)

ylabel(‘频谱幅值F(\omega)’)

title(‘信号频谱’,’FontSize’,10)

◆例3

例 3.8.3 有一二阶系统,阻尼比 =0.47,固有频率500 n Hz ,采样间隔

0004.0 t s,采样点数N =256。

试计算理论幅频特性与由系统阶跃响应计算出的幅频特性数据值,并画出两个计算结果的幅频特性曲线。

%example 3.8.3 MA TLAB PROGRAM

N=256;

dt=0.0004

wn=500;

seta=0.47;

dw=2*pi/(N*dt);

a=wn^2;

b=[1,2*seta*wn,a];

t=[0:dt:(N-1)*dt];

c=step(a,b,t);

w=[0:dw:(N-1)*dw];

[mag,phase]=bode(a,b,w);

ycw=fft(c);

Re=real(ycw);

Im=imag(ycw);

for i=1:N

Rw(i,1)=1-Im(i,1)*(i-1)*dw*dt;

Iw(i,1)=Re(i,1)*(i-1)*dw*dt;

end

ffw=Rw+Iw*sqrt(-1);

Aw=abs(ffw)

semilogx(w,20*log10(mag),'r-')

axis([100,10000,-30,10])

text(600,12,'幅频特性')

hold on

semilogx(w,20*log10(Aw))

axis([100,10000,-30,10])

grid on

◆例4

例6.2.4 用MATLAB 中的函数XCORR 求出下列两个周期信号的互相关函数,式中的f=10Hz 。

),2sin()(ft t x )902sin(5.0)( ft t y

%例6.2.4 中计算两个周期信号互相关函数的MA TLAB 程序

N=500;

Fs=500;

n=0:N-1;

t=n/Fs;

Lag=200;

x=sin(2*pi*10*t);

y=0.5*sin(2*pi*10*t+90*pi/180);

[c,lags]=xcorr(x,y,Lag,'unbiased');

subplot(2,1,1)

plot(t,x,'r')

hold on

plot(t,y,'b')

xlabel('t');ylabel('x(t)y(t)');

title('原周期信号')

grid

hold off

subplot(2,1,2);

plot(lags/Fs,c,'k');