实验六 连续信号的频域分析

  • 一、实验目的
  • 二、实验原理
    • 1、傅立叶变换的MATLAB实现
      • (1) 调用专用函数实现
        • MATLAB中实现傅里叶变换的函数为:
        • MATLAB中实现傅里叶反变换的函数
      • (2) 傅里叶变换的数值计算实现法
        • 注意:
    • 2、用matlab计算连续时间LTI系统的频率响应
  • 三、实验内容
    • 1.已知三个LTI系统的微分方程如下
      • 系统1:
      • 系统2:
      • 系统3:
    • 2. 分别用傅里叶变换的数值计算法和调用专用函数编写MATLAB程序,计算
    • 3.已知一RC电路如图所示 系统的输入电压为f(t),输出信号为电阻两端的电压y(t).当R1=10kΩ , R2=30kΩ C=100µF,f(t)=cos50t+1, 试求该系统的零状态响应y(t)
  • 四、 实验报告要求
    • 1.简述实验目的和实验原理;
    • 2.写出其对应的matlab程序;
    • 3.计算相应的冲激响应、零状态响应及卷积积分的理论值,并与实验结果进行比较。
    • 4.上机调试程序的方法及实验中的心得体会。

一、实验目的

1、理解傅里叶变换的MATLAB实现方法;
2、掌握系统频率响应特性的计算方法和特性曲线的绘制方法,理解具有不同频率响应特性的滤波器对信号的滤波作用。
3、掌握用MATLAB语言进行系统频响特性分析的方法。

二、实验原理

1、傅立叶变换的MATLAB实现

信号f(t)的傅里叶变换与反变换公式为:

傅里叶变换存在的充分条件是:

在MATLAB中有两种实现傅里叶变换的方法,一种是利用MATLAB中的专用函数直接求解,另一种是傅里叶变换的数值计算实现法。

(1) 调用专用函数实现

MATLAB中实现傅里叶变换的函数为:

F=fourier( f ) 对f(t)进行傅里叶变换,其结果为F(w)
F=fourier(f,v) 对f(t)进行傅里叶变换,其结果为F(v)
F=fourier( f,u,v ) 对f(u)进行傅里叶变换,其结果为F(v)

MATLAB中实现傅里叶反变换的函数

f =ifourier( F ) 对F(w)进行傅里叶反变换,其结果为f(t)
f=ifourier(F,u) 对F(w)进行傅里叶反变换,其结果为f(u)
f=ifourier( F,v,u ) 对F(v)进行傅里叶反变换,其结果为f(u)
注意:
(1)在调用函数fourier( )及ifourier( )之前,要用syms命令将所有需要用到的变量(如t,u,v,w)定义成符号变量,或用符号定义符sym将其定义为符号表达式。
(2)采用fourier( )及fourier( )得到的返回函数,仍然为符号表达式。在对其作图时要用ezplot( )函数,而不能用plot()函数。
(3)fourier( )及fourier( )函数的应用有很多局限性,如果在返回函数中含有δ(ω)等函数,则ezplot( )函数无法作出图。用fourier( )函数对某些信号进行变换时,其返回函数如果包含一些不能直接表达的式子,也无法作图。另外,在很多场合,f(t)不能表示成符号表达式,此时只能用数值计算法进行傅氏变换。
例1:求 的傅立叶变换
matlab程序如下

clear all
syms t
F=fourier(exp(-2*abs(t)))

例2:求门函数f(t)=ε(t+1)-ε(t-1)的傅里叶变换,并画出幅度频谱图。
matlab程序如下

clear all
t0=-3;t1=3;t=t0:0.02:t1;                        % 定义时间范围
w0=-6*pi;w1=6*pi;w=w0:0.02:w1;               % 定义频率范围
f=sym('heaviside(t+1)-heaviside(t-1)')             % 定义符号函数f(t)
F=fourier(f)                                  % 求f(t)的傅里叶变换
F=simple(F)                                  % 化简F(jw)的表达式
f1=subs(f,t,'t');                                % 将t数组代入f(t)后用f1表示
fmin=min(f1)-0.2;fmax=max(f1)+0.2;             % 求f1的最大和最小值
Fv=subs(F,w,'w');                             % 将w数组代入F(jw)后用Fv表示
F1=abs(Fv);                                  % 求F(jw)的模
P1=angle(Fv);                                % 求F(jw)的相角
subplot(3,1,1),plot(t,f1);                        % 在第一幅图上画f(t)
ylabel('G2(t)'); grid on;
axis([t0,t1,fmin,fmax]);
Fmin=min(F1)-0.05; Fmax=max(F1)+0.05;
subplot(3,1,2);
plot(w,F1,'color','k');                            % 在第二幅图上画|F(jw)|
ylabel('|F(jw)|');grid on;
axis([w0,w1,Fmin,Fmax]);
subplot(3,1,3);
plot(w,P1*180/pi,'color','k');                      % 在第三幅图上画相位频谱
ylabel('相位(度)'); grid on;

运行程序结果图如下

(2) 傅里叶变换的数值计算实现法

数值计算方法实现连续时间信号的傅里叶变换,实质上是借助于MATLAB的强大数值计算功能进行的一种近似计算。其实现原理如下:
对于连续时间信号f(t),其傅里叶变换为:

其中τ为取样间隔,如果f(t)是时限信号,或者当|t|大于某个给定值时,f(t)的值已经衰减得很厉害,可以近似地看成是时限信号,则上式中的n取值就是有限的,假定为N,有:

若对频率变量ω进行取样,得:

通常取:
,其中ω0是要取的频率范围,或信号的频带宽度。采用matlab
实现上式时,其要点是要生成f(t)的N个样本值f (nτ)的向量,以及向量
,两向量的内积(即两矩阵的乘积)完成上式的傅里叶变换的数值计算。

注意:

时间取样间隔τ的确定,依据是τ 必须小于奈奎斯特(Nyquist)取样间隔。如果f(t)不是严格的带限信号,则根据实际计算的精度要求来确定一个适当的频率ω0为信号的带宽。
例3:用数值计算法实现上面门函数f(t)=ε(t+1)-ε(t-1)的傅里叶变换,并画出幅度频谱图。
分析:该信号的频谱F(jω)=2Sa(ω),第一个过零点频率为π,一般将此频率认为是信号的带宽。但考虑到F(jω)的形状(为抽样函数),假如将精度提高到该值的50倍,即取ω0=50ωB,F0=ω0 /2π则据此确定的取样间隔为:τ≤1/2F0 = 0.02
matlab程序如下

clear all
R=0.02; %取样间隔τ=0.02
t = -2:R:2; % t为从-2到2,间隔为0.02的行向量,有201个样本点
ft=[zeros(1,50),ones(1,101),zeros(1,50)]; % 产生f(t)的样值矩阵(即f(t)的样本值组成的行向量)
W1=10*pi; %取要计算的频率范围
M=500; k=-M:M; w=k*W1/M; %频域采样数为M, w为频率正半轴的采样点
Fw=f t*exp(-j*t'*w)*R; %求傅氏变换F(jw)
FRw=abs(Fw); %取振幅
subplot(2,1,1) ; plot(t,ft) ;grid;  %画出原始函数f(t)的波形
xlabel('t') ; ylabel('f(t)'); title('f(t)=u(t+1)-u(t-1)');
subplot(2,1,2); plot(w,FRw) ;grid on; %画出振幅频谱的波形
xlabel ('w') ; ylabel ('F(w)');

运行程序结果如下

2、用matlab计算连续时间LTI系统的频率响应

频率特性是指系统在正弦信号激励下的稳态响应随频率变化的情况,包括响应的幅度随频率的变化情况和响应的相位随频率的变化情况两个方面。

f (t)、y(t)分别为系统的激励和响应,h(t)是系统的单位冲激响应,三者的关系如下:
时域:
频域:
或:

H(jω)为系统的频域数学模型,它实际上就是系统的单位冲激响应h(t)的傅里叶变换。即:

其中,׀H(jω)׀为幅度频率相应,反映信号经过系统之后,信号各频率分量的幅度变化情况,为相位特性,反映信号经过系统后,信号各频率分量在相位变换情况。
当系统的激励,则其响应为

若输入信号为正弦信号,即f(t) = sin(0t),则系统响应为

系统对某一频率分量的影响体现为,信号的幅度被׀H(jω)׀加权,信号的相位被移相。
关键是确定系统的频率响应。
matlab里面求系统频率响应的函数为freqs(),该函数可求出系统频率响应的数值解,并可绘出系统的幅频及相频响应曲线。
当系统的频率响应H(jω)是jω的有理多项式时,

matlab里面求系统频率响应的函数为freqs,该函数可直接计算系统的频率响应的数值解,并可绘出系统的幅频及相频响应曲线。其调用格式如下
(1)h=freqs(b,a,w) 该调用格式中,b和a分别对应于(7-7)式的向量[b1,b2,…,bm]和[a1,a2,…,an],w为形如w1:p:w2的冒号运算定义的系统频率响应的频率范围,w1为频率起始值,w2为频率终止值,p 为频率取样间隔。向量h为返回在向量w所定义的频率点上,系统频率响应的样值。
(2)[h,w]=freqs(b,a)
该调用格式将计算默认频率范围内200个频率点的系统频率响应的样值,并赋值给返回变量h,200个频率点记录在w中。
(3)[h,w]=freqs(b,a,n)
该调用格式将计算默认频率范围内n个频率点上系统频率响应的样值,并赋值给返回变量h,n个频率点记录在w中。
(4)freqs(b,a)
该格式并不返回系统频率响应的样值,而是以对数坐标的方式绘出系统的幅频响应和相频响应曲线。
举例说明如下:
a=[1 2 1]; b=[0 1]; h=freqs(b,a,0:0.5:2*pi);%计算0~2π频率范围内以间隔0.5取样的系统频率响应的样值;
例4:某连续时间LTI系统的微分方程如下

编写MATLAB程序绘制系统的幅度响应、相位响应、频率响应的实部和频率响应的虚部。
matlab程序如下

clear  all
b=[1];
a=[1 3 2];
[H,w]=freqs(b,a);
Hm=abs(H);
phai=angle(H);
Hr=real(H);
Hi = imag(H);
subplot(2,2,1)
plot(w,Hm), grid on,  title('Magnitude response'),
xlabel('Frequency in rad/sec')
subplot(2,2,3)
plot(w,phai); grid on; title('Phase response'); xlabel('Frequency in rad/sec')
subplot(2,2,2)
plot(w,Hr); grid on; title('Real part of frequency response'),
xlabel('Frequency in rad/sec')
subplot(2,2,4)
plot(w,Hi); grid on; title('Imaginary part of frequency response'),
xlabel('Frequency in rad/sec')

运行结果如下:

例5:已知一RC电路如图所示,系统的输入电压为f(t),输出信号为电阻两端的电压y(t),当RC=0.04,f(t)=cos5t+cos100t, 试求该系统的零状态响应y(t)

由图知其频率响应为

余弦信号cos(ω0t)通过LTI系统的零状态响应为

matlab程序如下

clear all
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)'); xlabel('Time(s)');

三、实验内容

1.已知三个LTI系统的微分方程如下

系统1:
系统2:

系统3:

用matlab绘制幅度响应、相位响应、频率响应的实部和频率响应的虚部曲线图。
并分析系统具有什么滤波特性?

系统1:

程序如下:

clear  all
b=[1];
a=[1 1 25];
[H,w]=freqs(b,a);
Hm=abs(H);
phai=angle(H);
Hr=real(H);
Hi = imag(H);
subplot(2,2,1)
plot(w,Hm), grid on,  title('·ù¶ÈÏìÓ¦'),
xlabel('Frequency in rad/sec')subplot(2,2,3)
plot(w,phai); grid on; title('ÏàλÏìÓ¦'); xlabel('Frequency in rad/sec')subplot(2,2,2)
plot(w,Hr); grid on; title('频率响应的实部'),
xlabel('Frequency in rad/sec')subplot(2,2,4)
plot(w,Hi); grid on; title('频率响应的虚部'),
xlabel('Frequency in rad/sec')

运行结果如下:

系统2:

程序如下:

clear  all
b=[1 1];
a=[1 1];
[H,w]=freqs(b,a);
Hm=abs(H);
phai=angle(H);
Hr=real(H);
Hi = imag(H);
subplot(2,2,1)
plot(w,Hm), grid on,  title('幅度响应'),
xlabel('Frequency in rad/sec')subplot(2,2,3)
plot(w,phai); grid on; title('相位响应'); xlabel('Frequency in rad/sec')subplot(2,2,2)
plot(w,Hr); grid on; title('频率响应的实部'),
xlabel('Frequency in rad/sec')subplot(2,2,4)
plot(w,Hi); grid on; title('频率响应的虚部'),
xlabel('Frequency in rad/sec')

运行结果如下:

系统3:

程序如下:**

clear  all
b=[262];
a=[10 48 148 306 401 262];
[H,w]=freqs(b,a);
Hm=abs(H);
phai=angle(H);
Hr=real(H);
Hi = imag(H);
subplot(2,2,1)
plot(w,Hm), grid on,  title('幅度响应'),
xlabel('Frequency in rad/sec')subplot(2,2,3)
plot(w,phai); grid on; title('相位响应'); xlabel('Frequency in rad/sec')subplot(2,2,2)
plot(w,Hr); grid on; title('频率响应的实部'),
xlabel('Frequency in rad/sec')subplot(2,2,4)
plot(w,Hi); grid on; title('频率响应的虚部'),
xlabel('Frequency in rad/sec')

运行结果如下:

2. 分别用傅里叶变换的数值计算法和调用专用函数编写MATLAB程序,计算

f(t)= 3e-2tε(t)的傅里叶变换。
程序如下:

clear all
syms t
F=fourier(3*exp(-2*t)*heaviside(t))

运行结果如下:

F =3/(2 + w*1i)

3.已知一RC电路如图所示 系统的输入电压为f(t),输出信号为电阻两端的电压y(t).当R1=10kΩ , R2=30kΩ C=100µF,f(t)=cos50t+1, 试求该系统的零状态响应y(t)

程序如下:

clear all
RC=1;
t=linspace(-2,2,1024);
w1=50;
H1=j*w1/(j*w1+1/RC);f=cos(50*t)+1;
y=abs(H1)*cos(w1*t+angle(H1))
subplot(2,1,1);
plot(t,f); ylabel('f(t)'); xlabel('Time(s)');
subplot(2,1,2);
plot(t,y); ylabel('y(t)'); xlabel('Time(s)');

运行结果如下:

四、 实验报告要求

1.简述实验目的和实验原理;

2.写出其对应的matlab程序;

3.计算相应的冲激响应、零状态响应及卷积积分的理论值,并与实验结果进行比较。

4.上机调试程序的方法及实验中的心得体会。

本次上级实验,我掌握了连续时间信号与系统的频域分析方法,从频域的角度对信号与系统的特性进行分析;掌握了连续时间信号傅里叶变换与傅里叶逆变换的实现方法;掌握了连续时间傅里叶变换的特点及应用;掌握了连续时间傅里叶变换的数值计算方法及绘制信号频谱的方法。熟悉了
(1).syms命令:定义符号变量
调用格式:
symsx,定义x为符号变量,可以直接使用。
symsxy,定义x和y为符号变量,可以直接使用。
(2).ezplot函数:实现一元函数的绘图。相比plot函数要制定自变量范围,ezplot 无需
数据准备,可以直接画图,尤其适用于符号函数。

实验六 连续信号的频域分析相关推荐

  1. 连续系统的复频域分析 matlab,实验七连续信号与系统复频域分析的MATLAB实现1

    实验七 连续信号与系统复频域分析的MATLAB 实现 一.实验目的 1. 掌握连续时间信号拉普拉斯变换的MATLAB 实现方法: 2. 掌握连续系统复频域分析的MATLAB 实现方法. 二.实验原理 ...

  2. 实验六 快速生成树配置

    实验六 快速生成树配置 1.准备工作: 工具:1台3层交换机,1台2层交换机,网线 (1)      开始 --> 控制面板 --> 程序 --> 程序和功能 --> 打开或关 ...

  3. 建立计算机系学生视图,实验六 视图的操作.doc

    实验六 视图的操作 实验六 视图的操作 一.实验目的 1.理解的概念. .掌握.SQL语句创建视图,掌握查询分析器的使用 1.语句格式 CREATE VIEW [( [,]-)] AS [WITH C ...

  4. mysql实验6语言结构_实验六 SQL语言数据查询语言DQL.pdf

    实验六 SQL语言数据查询语言DQL 实验六 SQL 语言数据查询语言DQL 一.实验目的 数据查询语言指对数据库中的数据查询.统计.分组.排序等操作.查询语 句可以分为简单查询.连接查询.嵌套查询和 ...

  5. 滞后超前校正控制器的设计和matlab仿真 静态速度误差系数为10,自控实验六 基于频域的串联校正控制器设置 - GXUZF.COM - 林澈思的茶...

    广西大学电气工程学院 <自动控制理论>实验报告 广西大学电气工程学院 <自动控制理论>实验报告 成绩 教师签字 学生姓名 赵帆 学号 17021***** 专业班级 电自171 ...

  6. 20155201 网络攻防技术 实验六 信息搜集与漏洞

    20155201 网络攻防技术 实验六 信息搜集与漏洞 一.实践内容 各种搜索技巧的应用 DNS IP注册信息的查询 基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点 漏洞扫描: ...

  7. java实验七输入输出流_实验六_Java的输入输出流

    JAVA的输入输出流 实验六 Java的输入输出流 实验目的 1. 理解I/O流的概念,掌握其分类 2. 掌握文本文件读写.二进制文件读写 实验环境 JDK1.4以上版本, Eclipse集成开发环境 ...

  8. 计算机网络 实验六 静态路由配置,实验六-静态路由配置.doc

    实验六-静态路由配置 实验报告书 课程名称 计算机网络技术与应用 实验题目 实验六:静态路由配置 专业班级 2010级信息管理与信息系统2班 学 号 37号 姓 名 肖丹妮 指导教师 赵圆圆老师 计算 ...

  9. 实验六 Linux进程编程,Linux系统编程实验六:进程间通信

    <Linux系统编程实验六:进程间通信>由会员分享,可在线阅读,更多相关<Linux系统编程实验六:进程间通信(10页珍藏版)>请在人人文库网上搜索. 1.实验六:进程间通信l ...

最新文章

  1. 在LinearLayout中嵌套RelativeLayout来设置Button的位置(xml文件)
  2. 项目交付为什么失败?-记我在某个项目中的迷思
  3. Vue—基础概念—路由(vue-router)
  4. HashSet 的contains方法
  5. 迁移数据库到SQL on Linux Docker
  6. 冗余的阿里云实例开启和停止API
  7. C#接口的作用(经典)
  8. Struts与Ajax页面交互
  9. block compressed sparse row (BSR) matrix format
  10. 22考研计算机专业课——操作系统【❤️考研复习指导❤️】
  11. typecho图标_使你的Typecho支持Emoji表情
  12. 考勤机信息同步不到服务器,考勤机实时同步功能上线啦
  13. 树莓派54/100 - Pico连接DS1307时钟模块,做个实时数字钟
  14. 傅里叶变换落地:离散傅里叶变换(DFT)
  15. qt linux 视频教程,详解 QT 显示视频 Linux下 Qt 和 Xv实现
  16. 微信小程序map组件 markers 展示当前位置修改标记点图标
  17. 利用python爬取汽车之家,需要买车的程序员可以学
  18. 职称计算机辅导软件,职称计算机辅导:WindowsXP辅助工具
  19. 不同速度流体的剪切形成不同尺度的漩涡,看起来很像分形。
  20. Docker容器的数据卷(volumes)

热门文章

  1. Eclipse4.4.2(luna) JDK1.8.0_212 PyDev5.2.0 Python2.7
  2. qsort 函数的使用
  3. 热力图heatmap
  4. Spark 内存模型
  5. 电脑上的计算机里的音乐播放器怎么更改,win10系统电脑中默认的音乐播放器如何修改...
  6. 把PotPlayer设为默认视频播放器
  7. Android Room之数据库加密
  8. SSH命令行使用方法
  9. 判断是否为平衡二叉树(Java)
  10. c++ 从入门到放弃