【通信原理笔记】【三】模拟信号调制——3.5 角度调制(FM、PM)与其频谱特性

本文详细解释了相位与频率的概念,介绍了调频(FM)和调相(PM)的数学表示,重点讨论了FM信号的频谱特性,特别是卡松公式在估计带宽方面的应用。文章强调了带宽分析对于通信系统的重要性,以及角度调制信号的通用性,不局限于特定调制方式。
摘要由CSDN通过智能技术生成


前言

在之前介绍的几种调制方式中,我提到信噪比时计算的是用户解调后的信噪比,然而在北邮通信原理课中考虑的是解调器输入的信噪比,即考虑的信号功率是经过BPF之后进行解调之前的部分。

之前没有注意到这个差异,非常抱歉。笔者在本科学习通信原理的时候也是认为与其记解调输入信噪比的结果,不如弄清楚每一处的信号组成,这样不管求什么信噪比都能求。

下面我们开始学习角度调制的内容,包括调频FM与调相PM。

:在本章中,偶尔会忘记了写幅度系数 A c A_c Ac,只是一个常数不影响结论,所以我有时候嫌麻烦就不写了。在具体问题中如果调制信号或载波信号中有幅度系数可不要忘记了。


一、相位与频率

首先需要弄清楚什么是相位、频率。考虑一个复包络信号:

s L ( t ) = A ( t ) e j ϕ ( t ) s_L(t)=A(t)e^{j\phi(t)} sL(t)=A(t)ejϕ(t)
用欧拉公式展开得
= A ( t ) [ cos ⁡ ϕ ( t ) + j sin ⁡ ϕ ( t ) ] =A(t)\left[\cos\phi(t)+j\sin\phi(t)\right] =A(t)[cosϕ(t)+jsinϕ(t)]

其中 A ( t ) A(t) A(t)称为幅度, ϕ ( t ) \phi(t) ϕ(t)为相位,它表示的是一种角度与时间的函数关系。相位变化的快慢定义为瞬时角频率,在北邮通信原理中习惯用瞬时频率 f ( t ) = 1 2 π d ϕ ( t ) / d t f(t)=\frac{1}{2\pi}d\phi(t)/dt f(t)=2π1dϕ(t)/dt。(角频率即 ω ( t ) = 2 π f ( t ) \omega(t)=2\pi f(t) ω(t)=2πf(t),正弦信号的频率是定值)

二、PM和FM的数学表示

调频和调相是让调制信号作为已调信号的复包络的频率和相位的一部分来实现调制传输。根据这个思路我们先给出调相信号PM:

s P M ( t ) = cos ⁡ ( 2 π f c t + K p m ( t ) ) s_{PM}(t)=\cos(2\pi f_ct+K_pm(t)) sPM(t)=cos(2πfct+Kpm(t))

f c f_c fc为载波频率,在正弦信号中一般称 2 π f c t 2\pi f_ct 2πfct以为的部分为相位偏移。调相就是将调制信号作为复包络的瞬时相偏, K p K_p Kp为常数。对瞬时相偏求导在除掉 2 π 2\pi 2π就能得到瞬时频偏,将调制信号作为复包络的瞬时频偏即可得到调频信号FM:

s F M ( t ) = cos ⁡ ( 2 π f c t + 2 π K f ∫ − ∞ t m ( τ ) d τ ) s_{FM}(t)=\cos(2\pi f_ct +2\pi K_f\int_{-\infty}^tm(\tau)d\tau) sFM(t)=cos(2πfct+2πKftm(τ)dτ)

验证一下,对上式中的瞬时相偏 2 π K f ∫ − ∞ t m ( τ ) d τ 2\pi K_f\int_{-\infty}^tm(\tau)d\tau 2πKftm(τ)dτ求导除去 2 π 2\pi 2π得到 K f m ( t ) K_fm(t) Kfm(t) K f K_f Kf为常数。这里所提的调频调相都是线性的,即瞬时相偏与瞬时频偏都与调制信号的关系是线性的。

此外,容易看出来调相与调频的关系就是一个微分的关系,先对调制信号求微分在进行调相就等价于调频。因此,调频与调相可以轻松地进行等价,后面的分析便以调频为例进行,不必再单独对调相进行重复的分析。

三、FM的频谱

在介绍幅度调制时,已调信号的频谱没有单独去细讲,利用复包络的性质很容易能得到其频谱就是原信号频谱(或单边带、或叠加载波)的左右搬移。然而角度调制的频谱却无法这样得到,因为复包络的频谱不再是那么容易由原信号的频谱获得,考虑FM信号的复包络:

s L ( t ) = e j 2 π K f ∫ − ∞ t m ( τ ) d τ s_L(t)=e^{j2\pi K_f\int_{-\infty}^tm(\tau)d\tau} sL(t)=ej2πKftm(τ)dτ

注意,这可不是复单频信号,它的频率不是固定的常数,而是一个变化的函数,取决于调制信号的表达式,因此其傅里叶变换并不好求。

让我们将问题退化到一个简单的情形,考虑当 m ( t ) = cos ⁡ 2 π f m t m(t)=\cos2\pi f_mt m(t)=cos2πfmt为一个单频信号时(正弦信号),求其FM信号的频谱。先给出FM信号的表达式如下:

s F M ( t ) = cos ⁡ ( 2 π f c t + 2 π K f ∫ − ∞ t cos ⁡ 2 π f m τ d τ ) s_{FM}(t)=\cos(2\pi f_ct+2\pi K_f\int_{-\infty}^t\cos2\pi f_m\tau d\tau) sFM(t)=cos(2πfct+2πKftcos2πfmτdτ)
= cos ⁡ ( 2 π f c t + K f f m sin ⁡ 2 π f m t ) =\cos(2\pi f_ct+\frac{K_f}{f_m}\sin2\pi f_mt) =cos(2πfct+fmKfsin2πfmt)

已知调频是用调制信号表示复包络的瞬时频偏,那么瞬时频偏的最大值 Δ f max ⁡ \Delta f_{\max} Δfmax容易得到就是 K f K_f Kf。再定义调频指数 β = Δ f max ⁡ / f m = K f / f m \beta=\Delta f_{\max}/f_m=K_f/f_m β=Δfmax/fm=Kf/fm。从而复包络可以表示为:

s L ( t ) = e j β sin ⁡ 2 π f m t s_L(t)=e^{j\beta\sin2\pi f_mt} sL(t)=ejβsin2πfmt

这是一个周期信号,可以进行傅里叶级数展开,然后再对展开的复单频率信号进行傅里叶变换,从而得到频域表达式:

s L ( t ) = ∑ n = − ∞ ∞ J n ( β ) e j 2 π n f m t s_L(t)=\sum_{n=-\infty}^{\infty}J_n(\beta)e^{j2\pi nf_mt} sL(t)=n=Jn(β)ej2πnfmt
S L ( f ) = ∑ n = − ∞ ∞ J n ( β ) δ ( f − n f m ) S_L(f)=\sum_{n=-\infty}^{\infty}J_n(\beta)\delta(f-nf_m) SL(f)=n=Jn(β)δ(fnfm)

其中 J n ( β ) J_n(\beta) Jn(β)是该傅里叶级数展开式的系数,它是一个特殊的函数——称为第一类 n n n阶贝塞尔函数。可见该复包络的频谱由无数个冲激组成,然而当 n n n增大时, ∣ J n ( β ) ∣ |J_n(\beta)| Jn(β)会趋近于0,因此该复包络的频谱主要集中在基带。 J n ( β ) J_n(\beta) Jn(β)还具有如下性质:

当 n 为偶数时: J n ( β ) = J − n ( β ) 当n为偶数时:J_n(\beta)=J_{-n}(\beta) n为偶数时:Jn(β)=Jn(β)
当 n 为奇数时: J n ( β ) = − J − n ( β ) 当n为奇数时:J_n(\beta)=-J_{-n}(\beta) n为奇数时:Jn(β)=Jn(β)

下图是一个单频信号的频谱例图,可以看出其幅值满足上述的关系式。
在这里插入图片描述

四、FM信号的带宽——卡松公式

上述结果当 m ( t ) m(t) m(t)为单频信号时,调频信号的频谱特性,然而一般信号难以进行频谱分析,不过可以通过卡松公式进行带宽分析,该公式给出了FM信号的带宽的估计值:

B ≈ 2 Δ f m a x + 2 f m = 2 β f m + 2 f m B\approx 2\Delta f_{max}+2f_m=2\beta f_m+2f_m Bfmax+2fm=2βfm+2fm

其中 f m f_m fm为基带信号的最高频率,因此,只需知道最大频偏与基带信号的最高频率,即可进行FM信号的带宽估计。

如果是PM信号,可以将原信号 m ( t ) m(t) m(t)求积分得到新的信号 x ( t ) = ∫ − ∞ t m ( τ ) d τ x(t)=\int_{-\infty}^tm(\tau)d\tau x(t)=tm(τ)dτ,则PM信号便可以看作 x ( t ) x(t) x(t)的FM信号,再应用卡松公式进行求解。

然而上述过程其实可以简化,通过傅里叶变换的积分特性,我们可得 X ( f ) = M ( f ) / j 2 π f X(f)=M(f)/j2\pi f X(f)=M(f)/j2πf,从而可知 x ( t ) x(t) x(t) m ( t ) m(t) m(t)的最高频率相同,而最大频偏是由已调信号的形式所确定的。因此,我们不需要求出原信号 x ( t ) x(t) x(t),直接用原信号的最大频率与最大频偏即可求出带宽估计值。

综合上述的结果,我们还可以进一步精简我们的结论,即只要我们有角度调制信号 s ( t ) = cos ⁡ ( 2 π f c t + x ( t ) ) s(t)=\cos(2\pi f_ct + x(t)) s(t)=cos(2πfct+x(t)),我们不需要去管它到底是FM调制还是PM调制,也不需要管它的原信号是什么,只需要利用 x ( t ) x(t) x(t)求出最大频偏与最大频率,即可完成带宽估计。(其实这个结论是合理的,因为已调信号的表达式才是决定带宽的,而这个表达式本身并不能体现其使用的调制方法。)

至于卡松公式本身的记忆其实也并不困难,原信号的最大频率可以理解为原基带信号的带宽估计,再其基础上往右偏移最大的结果就是叠加上最大频偏,因此带宽估计变为 Δ f max ⁡ + f m \Delta f_{\max}+f_m Δfmax+fm,然后再搬移到频带,带宽变为两倍。


总结

本文对角度调制信号的表达式与频谱特性进行了介绍,其中频谱特性这一块省略了具体的推导(即为什么傅里叶级数的系数是贝塞尔函数)。可以当作结论使用即可,其实更加重要的是卡松公式的理解,它给出了角度调制信号的带宽估计值,这对实际通信系统来说更加有意义,毕竟在调制的时候我们更关心的可能是已调信号的带宽而不是具体的频谱形状。

下一篇将会单独对角度调制信号的抗噪声性能进行学习。

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Servlet 是 JavaEE 规范中的一部分,是处理 Web 请求的组件。Servlet 运行在服务器端,能够接收客户端发来的请求,并给客户端响应结果。下面我们来看看 Servlet 的基本概念和使用方法。 ## 一、Servlet 的基本概念 ### 1.1 Servlet 的生命周期 Servlet 的生命周期包含以下个阶段: - 初始化阶段(init):当 Servlet 实例化后,Web 容器会调用其 init() 方法进行初始化操作。在此阶段,Servlet 可以执行一些初始化操作,例如读取配置信息、建立数据库连接等。 - 请求处理阶段(service):当客户端发来请求时,Web 容器会创建一个线程调用 Servlet 的 service() 方法处理请求。在此阶段,Servlet 可以获取请求参数、处理请求并生成响应数据。 - 销毁阶段(destroy):当 Web 应用停止或 Servlet 被卸载时,Web 容器会调用 Servlet 的 destroy() 方法进行清理工作。在此阶段,Servlet 可以释放资源、关闭数据库连接等。 ### 1.2 Servlet 的配置 在使用 Servlet 时,需要在 web.xml 文件中进行配置。以下是一个 Servlet 的基本配置: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myservlet</url-pattern> </servlet-mapping> ``` 其中,servlet-name 表示 Servlet 的名称,servlet-class 表示 Servlet 的类名,url-pattern 表示请求的 URL 匹配规则。 ## 二、Servlet 的使用方法 ### 2.1 编写 Servlet 编写 Servlet 有两种方法:一种是继承 HttpServlet 类,另一种是实现 Servlet 接口。这里以继承 HttpServlet 类为例: ```java public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 处理 GET 请求 PrintWriter out = resp.getWriter(); out.println("Hello, world!"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 处理 POST 请求 PrintWriter out = resp.getWriter(); out.println("Hello, world!"); } } ``` 在 Servlet 中,doGet() 方法用于处理 GET 请求,doPost() 方法用于处理 POST 请求。通过调用 HttpServletResponse 对象的 getWriter() 方法可以向客户端返回响应数据。 ### 2.2 部署 Servlet 将编写好的 Servlet 部署到 Web 容器中,有两种方法:一种是将 Servlet 类打成 war 包放到 Web 容器的 webapps 目录下,另一种是通过 Eclipse 等开发工具将 Servlet 部署到 Web 容器中。部署完成后,可以通过访问 Servlet 的 URL 来测试 Servlet 是否正常工作。 ## 、总结 本文介绍了 Servlet 的基本概念和使用方法。Servlet 是 Java Web 开发中非常重要的组件,掌握 Servlet 的使用方法对于 Java Web 开发人员来说是必不可少的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值