:信号与系统第三次实验记录
一、实验目的
1、学会用 MATLAB 实现连续时间信号傅里叶变换
2、学会用 MATLAB 分析 LTI 系统的频域特性
3、学会用 MATLAB 分析 LTI 系统的输出响应
二、实验原理
1.傅里叶变换的 MATLAB 求解
MTLAB 的 symbolic Math Toolbox 提供了直接求解傅里叶变换及逆变换的函数
fourier()及 ifourier()两者的调用格式如下。
Fourier 变换的调用格式
F=fourier(f):它是符号函数 f 的 fourier 变换默认返回是关于 w 的函数。
F=fourier(f,v):它返回函数 F 是关于符号对象 v 的函数,而不是默认的 w,即
Fourier 逆变换的调用格式
f=ifourier(F):它是符号函数 F 的 fourier 逆变换,默认的独立变量为 w,默认返回是关于 x 的函数。
f=ifourier(f,u):它的返回函数 f 是 u 的函数,而不是默认的 x.
注意:在调用函数 fourier()及 ifourier()之前,要用 syms 命令对所用到的变量(如 t,u,v,w)进行说明,即将这些变量说明成符号变量。
例 4-1 求 的傅立叶变换
解: 可用 MATLAB 解决上述问题:
syms t
Fw=fourier(exp(-2*abs(t)))
例 4-2 求的逆变换
解: 可用 MATLAB 解决上述问题
syms t w
ft=ifourier(1/(1+w^2),t)
2.连续时间信号的频谱图
例 4-3 求调制信号的频谱,式中
解:MATLAB 程序如下所示
%如果报错的话把sym 改为 str2sym
ft=sym('4*cos(2*pi*6*t)*(Heaviside(t+1/4)-Heaviside(t-1/4))');
Fw=simplify(fourier(ft))
subplot(121)
ezplot(ft,[-0.5 0.5]),grid on
subplot(122)
ezplot(abs(Fw),[-24*pi 24*pi]),grid
用 MATLAB 符号算法求傅里叶变换有一定局限,当信号不能用解析式表达时,会提示
出错,这时用 MATLAB 的数值计算也可以求连续信号的傅里叶变换,计算原理是
当足够小时,近似计算可满足要求。若信号是时限的,或当时间大于某个给定值时,
信号已衰减的很厉害,可以近似地看成时限信号时,n 的取值就是有限的,设为 N,有,是频率取样点
时间信号取样间隔应小于奈奎斯特取样时间间隔,若不是带限信号可根据计算精度要求确定一个频率 W0 为信号的带宽。
例 4-4 用数值计算法求信号 的傅里叶变换
解,信号频谱是,第一个过零点是,一般将此频率视为信号的带宽,若
将精度提高到该值的 50 倍,既,据此确定取样间隔,
R=0.02;t=-2:R:2;
f=Heaviside(t+1)-Heaviside(t-1);
W1=2*pi*5;
N=500;k=0:N;W=k*W1/N;
F=f*exp(-j*t'*W)*R;
F=real(F);
W=[-fliplr(W),W(2:501)];
F=[fliplr(F),F(2:501)];
subplot(2,1,1);plot(t,f);
xlabel('t');ylabel('f(t)');
title('f(t)=u(t+1)-u(t-1)');
subplot(2,1,2);plot(W,F);
xlabel('w');ylabel('F(w)');
title('f(t)的付氏变换F(w)');
- 3. 用 MATLAB 分析 LTI 系统的频率特性
- 当系统的频率响应 H(jw)是 jw 的有理多项式时,有
MATLAB 信号处理工具箱提供的 freqs 函数可直接计算系统的频率响应的数值解。其调用格式如下
H=freqs(b,a,w)
其中,a和b分别是H(jw)的分母和分子多项式的系数向量,w为形如 w1:p:w2的向量,定义系统频率响应的频率范围,w1 为频率起始值,w2 为频率终止值,p为频率取样间隔。H返回w所定义的频率点上,系统频率响应的样值。
例如,运行如下命令,计算 0~2pi 频率范围内以间隔 0.5 取样的系统频率响应的样值
a=[1 2 1];
b=[0 1];
h=freqs(b,a,0:0.5:2*pi)
例 4-5 三阶归一化的 butterworth 低通滤波器的频率响应为
试画出该系统的幅度响应和相位响应
解 其 MATLAB 程序及响应的波形如下
w=0:0.025:5;
b=[1];a=[1,2,2,1];
H=freqs(b,a,w);
subplot(2,1,1);
plot(w,abs(H));grid;
xlabel('\omega(rad/s)');
ylabel('|H(j\omega)|');
title('H(jw)的幅频特性');
subplot(2,1,2);
plot(w,angle (H));grid;
xlabel('\omega(rad/s)');
ylabel('\phi(\omega)');
title('H(jw)的相频特性');
- 4.用 MATLAB 分析 LTI 系统的输出响应
例 4-6 已知一 RC 电路如图所示系统的输入电压为,输出信号为电阻两端的电压
当,试求该系统的响应 y(t)
解 由图可知 ,该电路为一个微分电路,其频率响应为
由此可求出余弦信号通过LTI系统的响应为
计算该系统响应的 MATLAB 程序及响应波形如下
RC=0.04;
t=linspace(-2,2,1024);
w1=5;w2=100;
H1=j*w1/(j*w1+1/RC);
H2=j*w2/(j*w2+1/RC);
f=cos(5*t)+cos(100*t);
y=abs(H1)*cos(w1*t+angle(H1))+ abs(H2)*cos(w2*t+angle(H2));
subplot(2,1,1);
plot(t,f);
ylabel('f(t)');
xlabel('Time(s)');
subplot(2,1,2);
plot(t,y);
ylabel('y(t)');
%上机实验-1 试用 MATLAB 求单边指数数信号f=exp(-at)*u(t)的傅立叶变换,并画出其波形
syms t;
f=heaviside(t);
ft=exp(-1*t)*f;
Fw=fourier(ft)
ezplot(real(Fw));
grid on;
clear all
R=0.02;t=-2:R:2;
f=exp(-1*t).*heaviside(t);
W1=2*pi*5;
N=500;k=0:N;
W=k*W1/N;
F=f*exp(-1i*t'*W)*R;
F=real(F);
W=[-fliplr(W),W(2:501)];
F=[fliplr(F),F(2:501)];
subplot(2,1,1);plot(t,f);
xlabel('t');ylabel('f(t)');
title('f(t)=exp(-1*t)*u(t)');
subplot(2,1,2);
plot(W,F);
xlabel('w');ylabel('F(w)'); title('f(t)的付氏变换 F(w)');
syms a t
Fx=fourier(exp(-a*t)*heaviside(t))
法二
%上机实验-2 试用 MATLAB 画出该系统的幅频特性和相频特性,并分析系统具有什么滤波特性。
w=0:0.025:5;
b=[1];a=[0.08,0.4,1];
H=freqs(b,a,w);
subplot(2,1,1);
plot(w,abs(H));grid;
xlabel('\omega(rad/s)');
ylabel('|H(j\omega)|');
title('H(jw)的幅频特性');
subplot(2,1,2);
plot(w,angle (H));grid;
xlabel('\omega(rad/s)');
ylabel('\phi(\omega)');
title('H(jw)的相频特性');
分析:该系统为宽带5Hz的低通滤波器