武汉理工大学信号与系统实验程序二
1周期信号的傅立叶级数
t=-2:0.001:2; %信号的抽样点
N=input('N=');
c0=0.5;
fN=c0*ones(1,length(t));%计算抽样上的直流分量 for n=1:2:N %偶次谐波为零 fN=fN+cos(pi*n*t)*sinc(n/2);
end
figure
plot(t,fN)
title(['N=' num2str(N)])
axis([-2 2 -0.2 1.2])
2非周期信号的傅立叶变换
syms t
x=exp(-2*abs(t));
F=fourier(x);
subplot(2,1,1)
ezplot(x)
subplot(2,1,2)
ezplot(F)
3连续时间系统的频域分析
b=[0 0 1]; a=[0.08,0.4,1];
[h,w]=freqs(b,a,100);
h1=abs(h); h2=angle(h);
subplot(2,1,1)
plot(w,h1); grid;
xlabel('角频率'); ylabel('幅度');
title('H(jw)的幅频特性');
subplot(2,1,2)
plot(w,h2*180/pi);
grid;
xlabel('角频率');
ylabel('相位');
title('H(jw)的相频特性');
4连续时间信号幅度调制的matlab实现 fm=10;fc=100;fs=1000;
N=1000;k=0:N-1;
t=k/fs;
x=sin(2.0*pi*fm*t);
subplot(4,1,1)
plot(t(1:200),x(1:200))%产生‘pm’调制信号 y=modulate(x,fc,fs,'pm');
subplot(4,1,2)
plot(t(1:200),y(1:200))
xlabel('times(s)');
axis([0,0.2,-1,1]);
title('Modulated signal (pm)');
>> %产生'fm'调制信号
y=modulate(x,fc,fs,'fm');
subplot(4,1,3)
plot(t(1:200),y(1:200))
xlabel('times(s)');
axis([0,0.2,-1,1]);
title('Modulated signal (fm)');%产生'am'调制信号 y=modulate(x,fc,fs,'am');
subplot(4,1,4)
plot(t(1:200),y(1:200))
xlabel('times(s)');
axis([0,0.2,-1,1]);
title('Modulated signal (am)');
5抽样与抽样定理的MATLAB实现Dt=0.00005; xa=exp(-1000*abs(t));%模拟信号
Wmax=2*pi*2000;
K=500;k=0:K;W=k*Wmax/K;
Xa=xa*exp(-j*t'*W)*Dt;
Xa=real(Xa);
W=[-fliplr(W),W(2:501)];
Xa=[fliplr(Xa),Xa(2:501)];
subplot(4,2,1); plot(t*1000,xa)
subplot(4,2,2); plot(W/(2*pi*1000),Xa*1000) title('模拟信号')
>> Ts=0.0002; n=-25:1:25;
x=exp(-1000*abs(n*Ts)); %离散信号 w=pi*k/K; X=x*exp(-j*n'*w); X=real(X); w=[-fliplr(w),w(2:K+1)];
X=[fliplr(X),X(2:K+1)];
subplot(4,2,3);
stem(n*Ts*1000,x)
subplot(4,2,4);
plot(w/pi,X)
title('离散信号Ts=0.2毫秒')
>> Ts=0.0005; n=-10:1:10;
x=exp(-1000*abs(n*Ts)); %离散信号 w=pi*k/K; X=x*exp(-j*n'*w); X=real(X); w=[-fliplr(w),w(2:K+1)];
X=[fliplr(X),X(2:K+1)];
subplot(4,2,5);
stem(n*Ts*1000,x) t=-0.005:Dt:0.005;
subplot(4,2,6);
plot(w/pi,X)
title('离散信号Ts=0.5毫秒')
>> Ts=0.001; n=-5:1:5;
x=exp(-1000*abs(n*Ts)); %离散信号 w=pi*k/K; X=x*exp(-j*n'*w); X=real(X); w=[-fliplr(w),w(2:K+1)];
X=[fliplr(X),X(2:K+1)];
subplot(4,2,7);
stem(n*Ts*1000,x)
subplot(4,2,8);
plot(w/pi,X)
title('离散信号Ts=1毫秒')