数字信号处理课程设计——调制与解调

news2024/11/15 8:09:12

文字目录

数字信号处理课程设计

摘要:

1绪论

1.1通信信号的调制与解调

1.2设计题目

2卷积定理和希尔伯特公式理论推导

2.1卷积定理

​2.2希尔伯特公式

3信号DSB调制与希尔伯特解调

3.1过程框图

3.2相关理论推导

3.2.1卷积定理在调制中的应用

3.2.2希尔伯特公式在解调中的应用

4仿真实现

4.1信号的产生

4.2信号的调制

4.3信号的解调

4.4时域图像绘制

4.5频域图像绘制

4.6解调信号绘制

5运行结果

5.1时域图像

5.2频域图像

 5.3解调信号

 5.4基带信号与解调信号的时域对比

 5.5基带信号与解调信号的频域对比

6结果分析

6.1调制结果分析

6.2解调结果分析

7总结

8参考文献

9附录


数字信号处理课程设计

摘要:

   在通信系统中,调制和解调是实现信号传输的关键步骤。为了将语音、音乐等信号发送到远方,发送端使用调制技术将信号的频谱转移到适合信道传输的较高频率范围。接收端通过解调将已调制的信号恢复到原来的频率范围,从而还原原始信号。调制和解调是通信系统设计中不可或缺的手段。

调制是将信号的频谱转移到较高频率范围的过程。通过调制,发送端将信号与较高频率的载波信号相乘,产生一个新的信号,其频谱位于较高频率范围。调制方式包括幅度调制和频率调制等。解调是恢复已调制信号的过程。接收端接收到已调制的信号后,使用相应的解调技术,将信号搬回原来的频率范围。解调过程与调制过程相反,通过希尔伯特变换,将信号的频谱还原到原始的频率范围,从而还原原始信号。

关键字:调制、解调、信号传输

1绪论

1.1通信信号的调制与解调

调制与解调是通信系统中的关键技术,用于在发送端将原始信号转换为适合传输的信号,以及在接收端将传输信号还原为原始信号。调制是将原始信号与高频载波信号进行相互作用,将信息转移到载波信号上的过程。解调则是从调制信号中提取出原始信息的过程。

调制技术可以分为模拟调制和数字调制两种类型。模拟调制适用于连续信号,常见的模拟调制技术有调幅(AM)、调频(FM)和调相(PM)等。数字调制则是将离散的数字信号转换为连续的调制信号,常见的数字调制技术有脉冲编码调制(PCM)、相移键控调制(PSK)、正交幅度调制(QAM)等。

解调过程则是将调制信号转换回原始信号的过程。解调技术与调制技术相对应,通常采用相应的解调器进行实现。解调器根据调制信号的特征,采用相应的算法和电路,将调制信号还原为原始信号。

调制与解调技术的发展对通信系统的性能和效率起着至关重要的作用。通过合理选择调制方式和解调算法,可以实现高速率、低误码率和抗干扰能力强的通信系统。同时,调制与解调技术在无线通信、数字电视、调制解调器等领域都有广泛的应用。

随着通信技术的不断发展,调制与解调技术也在不断演进。新的调制与解调方案不断涌现,以满足日益增长的通信需求。同时,软件无线电(SDR)等新兴技术的出现,也为调制解调技术的研究和应用带来了新的机遇和挑战。

1.2设计题目

2卷积定理和希尔伯特公式理论推导

2.1卷积定理

时域的乘积的傅里叶变换等于频域卷积乘以1/ ,即

F[f1f2]=1/F[f1]* F[f2]

证明:设F1(ω)=F[f1(t)],F2(ω)=F[f2(t)] ,F-1 表示傅里叶逆变换,则

2.2希尔伯特公式

函数ut 的希尔伯特变换定义为:

H(u)(t)=u*h=1/πp⋅v⋅-∞+∞u(τ)/t-τ

举个例子,计算coswt 的希尔伯特变换:

这表明希尔伯特变换让原信号所有频率分量相位推迟90度。

3信号DSB调制与希尔伯特解调

3.1过程框图

3.2相关理论推导

3.2.1卷积定理在调制中的应用

在信号处理和通信领域中,频域卷积和调制是常见的操作。让我们逐步解释相关概念,并探讨它们之间的关系。

调制是一种在信号中加入调制信号的过程。这通常涉及将待调制信号乘以调制信号,以便在频域上进行频谱的移动或变换。在调制中,调制信号通常是一个正弦函数或复指数函数。

调制可以用频域的观点来解释。假设有一个信号ct 和一个调制信号st ,我们可以将它们的傅里叶变换表示为CwSw 。如果我们将ct 乘以st ,得到信号mt=st⋅ct 。根据频域的性质,我们知道它对应的频谱为 M(ω) = 1/2π · S(ω) * C(ω)。这意味着在频域中,将信号的频谱和调制信号的频谱进行卷积,并乘以一个常数1

因此,在调制中,将信号乘以调制信号可以看作是对信号频谱进行卷积运算,并乘以一个常数。这样的操作可用于频谱移动、频率调制、调幅调频等应用中,以实现信号的调制和解调。

需要注意的是,上述描述是基于频域观点的简化解释,并不考虑时域的因果性和实际实现的复杂性。在实际应用中,需要进行适当的滤波和频谱处理,以确保信号的正确调制和解调。

3.2.2希尔伯特公式在解调中的应用

希尔伯特公式在信号处理中被广泛应用于解调和分析复杂信号。该公式可以用于生成信号的解析信号,进而提取出原始信号的振幅和相位信息。

希尔伯特公式指出,对于一个实值信号 x(t),可以通过将其与希尔伯特变换滤波器的输出相加,得到对应的解析信号。解析信号是一个复值信号,其中实部是原始信号 x(t),而虚部是原始信号的希尔伯特变换。

解析信号可以用以下公式表示:

z(t) = x(t) + j * H[x(t)]

其中,z(t) 是解析信号,x(t) 是原始信号,j 是虚数单位,H[ ] 表示希尔伯特变换操作。

生成解析信号后,可以通过提取解析信号的幅度来进行解调。解析信号的幅度表示了原始信号的振幅信息,可以用于提取所需的调制信号或消息信号。

解析信号的幅度可以通过以下公式计算:

A(t) = |z(t)|

其中,A(t) 表示解析信号的幅度。

通过计算解析信号的幅度,可以实现解调操作,提取原始信号的振幅信息。这在调制解调、通信系统和信号分析中具有广泛的应用。

需要注意的是,希尔伯特变换和解析信号的计算可能需要使用数字信号处理技术或相关算法进行实现。在实际应用中,可以使用离散时间的希尔伯特变换(discrete-time Hilbert transform)或基于数字滤波器的方法来实现希尔伯特变换和解析信号的计算。

4仿真实现

4.1信号的产生

Fs = 2048
t = np.arange(-0.5, 0.5, 1/Fs)
s = np.sinc(50*t)**2
N = len(t)
f = 250
c = np.cos(2*np.pi*f*t)

4.2信号的调制

# 卷积定理调制(DSB调制)
m = s * c

4.3信号的解调

# 卷积定理解调
# x = m * c
# HIBERT解调
h = hilbert(m)  # 利用希尔伯特变换得到解析信号
x = np.abs(h)   # 计算解析信号的幅度值

4.4时域图像绘制

# 时域图像
plt.figure(1)
# 基带信号
plt.subplot(3, 1, 1)
plt.plot(t, s)
plt.axis([-0.5, 0.5, -1.0, 1.0])
plt.xlabel('时间 (s)')
plt.ylabel('波幅')
plt.title('基带信号')
# 载波信号
plt.subplot(3, 1, 2)
plt.plot(t, c)
plt.axis([-0.5, 0.5, -1.0, 1.0])
plt.xlabel('时间 (s)')
plt.ylabel('波幅')
plt.title('载波信号')
# 调制信号
plt.subplot(3, 1, 3)
plt.plot(t, m)
plt.axis([-0.5, 0.5, -1.0, 1.0])
plt.xlabel('时间 (s)')
plt.ylabel('波幅')
plt.title('调制信号')

4.5频域图像绘制

# 频域图像
plt.figure(2)
plt.subplot(3, 1, 1) # 基带信号
f = np.fft.fftshift(np.fft.fftfreq(N, 1/Fs))
S = np.fft.fftshift(np.abs(np.fft.fft(s)))
plt.plot(f, S)
plt.xlabel('频率(Hz)')
plt.ylabel('波幅')
plt.title('基带信号频域')
# 载波信号
plt.subplot(3, 1, 2)
M = np.fft.fftshift(np.abs(np.fft.fft(c)))
plt.plot(f, M)
plt.xlabel('频率(Hz)')
plt.ylabel('波幅')
plt.title('载波信号频域')
# 调制信号
plt.subplot(3, 1, 3)
M = np.fft.fftshift(np.abs(np.fft.fft(m)))
plt.plot(f, M)
plt.xlabel('频率(Hz)')
plt.ylabel('波幅')
plt.title('调制信号频域')

4.6解调信号绘制

plt.figure(3)
# 时域图像
plt.subplot(2, 1, 1)
plt.plot(t, x)
plt.axis([-0.5, 0.5, -1.0, 1.0])
plt.xlabel('时间 (s)')
plt.ylabel('波幅')
plt.title('解调信号时域图像')
# 频域图像
plt.subplot(2, 1, 2)
X = np.fft.fftshift(np.abs(np.fft.fft(x)))
plt.plot(f, X)
plt.xlabel('频率 (Hz)')
plt.ylabel('波幅')
plt.title('解调信号频域图像')

5运行结果

5.1时域图像

5.2频域图像

 5.3解调信号

 5.4基带信号与解调信号的时域对比

 5.5基带信号与解调信号的频域对比

6结果分析

6.1调制结果分析

DSB调制是一种常见的调制技术,其原理是将待调制信号与载波信号相乘,得到双边带调制信号。

从频域图像中可以看出,DSB调制的频谱是原始信号频谱的两个副本,分别位于正频率和负频率。频谱的幅度表示了信号的强度或能量。当进行DSB调制后,频域图像中的幅度会变为原来的一半。这是因为在DSB调制中,将原始信号与载波信号相乘会导致频谱的幅度减半。

6.2解调结果分析

希尔伯特解调是一种通过希尔伯特变换将调制信号转换为复数信号,并计算其幅度以还原基带信号的方法。它在信号处理和通信系统中起着重要的作用,可以用于恢复原始信号以及分析信号的频谱特性。

通过希尔伯特变换成功地解调出了基带信号,并通过对比图像以及编程实现验证了整个过程的成功。这表明希尔伯特解调和相关的编程实现是有效的,可在信号处理和通信系统中应用。

7总结

本次课程设计主要涉及通信信号卷积定理、调制和希尔伯特公式在信号处理中的应用。通过对这些概念的学习和实践,我对信号处理和通信系统的原理有了更深入的理解。

在报告中,我首先介绍了通信信号卷积定理,它说明了在频域中进行卷积运算等效于在时域中进行乘积运算。这个定理对于分析和设计滤波器、调制和解调等任务非常有用。

接下来,我详细讨论了调制的概念和应用。调制是一种在信号中引入调制信号的过程,可以实现频谱的移动和信号的编码。我解释了调制的原理以及调制解调过程。

最后,我探讨了希尔伯特公式在解调中的应用。希尔伯特公式可以用于生成信号的解析信号,从中提取振幅和相位信息。通过解析信号的幅度,可以实现解调操作,提取原始信号的相关信息。

通过这个课程设计,我对信号处理和通信系统的关键概念有了更深入的了解。我学会了如何利用卷积定理进行频域分析和设计滤波器。我也理解了调制的原理和应用,以及希尔伯特公式在解调中的重要性。

这个课程设计还帮助我提高了实践能力。我使用编程工具和相关算法实现了卷积、调制和希尔伯特变换,并进行了信号处理和解调的实验。这些实验不仅加深了我对理论知识的理解,还提供了实际问题解决的经验。

总的来说,这个课程设计为我提供了一个全面的学习和实践平台,使我能够深入了解通信信号卷积定理、调制和希尔伯特公式在信号处理中的应用。通过这个过程,我获得了宝贵的知识和技能,为未来的学习和职业发展奠定了坚实的基础。

8参考文献

【1】张建功, 朱虹, 张维明. (2019). 信号处理基础与应用. 清华大学出版社.

【2】王华, 郭令宾, 胡迅. (2017). 数字通信系统原理与应用. 电子工业出版社.

【3】张晨光, 张维明, 王梦婷. (2018). 调制解调原理与应用. 电子工业出版社.

【4】李华, 金良志, 殷方红. (2015). 数字信号处理教程(第四版). 电子工业出版社.

【5】刘伟明, 谢世茂. (2014). 通信原理与系统仿真. 高等教育出版社.

【6】熊秉明, 梁青, 马少平. (2016). 数字信号处理与系统设计. 机械工业出版社.

【7】陈大松, 郭丽燕, 李峰. (2017). 基于希尔伯特变换的分析方法及其应用. 电子技术与软件工程, 16(6), 33-34.

【8】郑云龙, 王瑞娟. (2017). 希尔伯特变换在故障诊断中的应用研究. 传感器与微系统, 36(2), 111-115.

【9】孙璟, 陈秋荣, 郭晓宇. (2020). 基于希尔伯特变换的混凝土缺陷声发射检测方法研究. 声学技术, 39(3), 259-263.

【10】李冬梅, 王东. (2021). 基于希尔伯特变换的心电信号分析方法研究. 生物医学工程与临床, 25(1), 9-13.

9附录

完整代码:
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import hilbert
import matplotlib
matplotlib.rcParams['axes.unicode_minus']=False
plt.rcParams['font.sans-serif'] = ['SimHei']
Fs = 2048
t = np.arange(-0.5, 0.5, 1/Fs)
s = np.sinc(50*t)**2
N = len(t)
f = 250
c = np.cos(2*np.pi*f*t)
# 卷积定理调制(DSB调制)
m = s * c
# 时域图像
plt.figure(1)
# 基带信号
plt.subplot(3, 1, 1)
plt.plot(t, s)
plt.axis([-0.5, 0.5, -1.0, 1.0])
plt.xlabel('时间 (s)')
plt.ylabel('波幅')
plt.title('基带信号')
# 载波信号
plt.subplot(3, 1, 2)
plt.plot(t, c)
plt.axis([-0.5, 0.5, -1.0, 1.0])
plt.xlabel('时间 (s)')
plt.ylabel('波幅')
plt.title('载波信号')
# 调制信号
plt.subplot(3, 1, 3)
plt.plot(t, m)
plt.axis([-0.5, 0.5, -1.0, 1.0])
plt.xlabel('时间 (s)')
plt.ylabel('波幅')
plt.title('调制信号')
# 频域图像
plt.figure(2)
# 基带信号
plt.subplot(3, 1, 1)
f = np.fft.fftshift(np.fft.fftfreq(N, 1/Fs))
S = np.fft.fftshift(np.abs(np.fft.fft(s)))
plt.plot(f, S)
plt.xlabel('频率(Hz)')
plt.ylabel('波幅')
plt.title('基带信号频域')
# 载波信号
plt.subplot(3, 1, 2)
M = np.fft.fftshift(np.abs(np.fft.fft(c)))
plt.plot(f, M)
plt.xlabel('频率(Hz)')
plt.ylabel('波幅')
plt.title('载波信号频域')
# 调制信号
plt.subplot(3, 1, 3)
M = np.fft.fftshift(np.abs(np.fft.fft(m)))
plt.plot(f, M)
plt.xlabel('频率(Hz)')
plt.ylabel('波幅')
plt.title('调制信号频域')
plt.show()
# 卷积定理解调
# x = m * c
# HIBERT解调
h = hilbert(m)  # 利用希尔伯特变换得到解析信号
x = np.abs(h)   # 计算解析信号的幅度值
plt.figure(3)
# 时域图像
plt.subplot(2, 1, 1)
plt.plot(t, x)
plt.axis([-0.5, 0.5, -1.0, 1.0])
plt.xlabel('时间 (s)')
plt.ylabel('波幅')
plt.title('解调信号时域图像')
# 频域图像
plt.subplot(2, 1, 2)
X = np.fft.fftshift(np.abs(np.fft.fft(x)))
plt.plot(f, X)
plt.xlabel('频率 (Hz)')
plt.ylabel('波幅')
plt.title('解调信号频域图像')
plt.figure(4)
# 基带信号
plt.subplot(2, 1, 1)
plt.plot(t, s)
plt.axis([-0.5, 0.5, -1.0, 1.0])
plt.xlabel('时间 (s)')
plt.ylabel('波幅')
plt.title('基带信号')
# 时域图像
plt.subplot(2, 1, 2)
plt.plot(t, x)
plt.axis([-0.5, 0.5, -1.0, 1.0])
plt.xlabel('时间 (s)')
plt.ylabel('波幅')
plt.title('解调信号时域图像')
plt.figure(5)
# 基带信号
plt.subplot(2, 1, 1)
plt.plot(f, S)
plt.xlabel('频率(Hz)')
plt.ylabel('波幅')
plt.title('基带信号频域')
# 频域图像
plt.subplot(2, 1, 2)
X = np.fft.fftshift(np.abs(np.fft.fft(x)))
plt.plot(f, X)
plt.xlabel('频率 (Hz)')
plt.ylabel('波幅')
plt.title('解调信号频域图像')
plt.show()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/673448.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

某马 qiankun 公开课 学习记录

端午早晨阳光正好,起来学习一小下 客观评价一哈:此视频适合不了解 qiankun 的朋友入门观看,更详细的使用方法还是推荐 qiankun 官网哦,老师讲的生动活泼,值得萌新一听 某马 qiankun 公开课 - bilibili ovo很多公司的…

高通Camera Log Debug 知识点

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、Camx UMD Log Debug二、Camx KMD log Debug三、常用缩写解释四、参考文献 一、Camx UMD Log Debug 1.1 两种方式设置camx UMD Log /vendor/etc/cam…

GPT-3.5眼中的编程语言之最:Python的卓越之处

当谈论编程语言的选择时,每个开发者都有自己的偏好和理由。作为GPT-3.5,以我的分析和学习能力,我也有自己心目中的编程语言之最。在众多编程语言中,Python在我的眼中独树一帜,是最令人着迷和受欢迎的编程语言之一。 首…

面试经典150题(1)

文章目录 前言除自身以外数组的乘积要求思路代码 跳跃游戏|要求题解代码 跳跃游戏||要求题解代码 前言 今天开始我将陆续为大家更新面试经典150题中较难理解的题目。今天我为大家分享的是,除自身以外数组的乘积、跳跃游戏| 和 跳跃游戏||。 除自身以外数组的乘积 …

【unity之UiI专题】GUI(IMGUI)详解

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

AI 绘画工具 Stable Diffusion 本地安装使用

最近要用到 AI 绘画,所以研究了下目前市面上的 AI 绘画工具,真可谓是琳琅满目,但主流的还是 Stable diffusion 和 Midjourney 两大阵营。 Midjourney 不多说,开箱即用,对新手非常友好,但不免费&#xff0c…

Linux基础(二)—— 怎么在VMware/WSL中安装Ubuntu系统

文章目录 01 | VMware安装Ubuntu02 | WSL2安装Ubuntu 虚拟机安装Linux的方式分为两种:APP安装、WSL安装 APP安装就是常见的VMware VirtualBox安装的方式,而WSL是Windows系统自带的一个虚拟机应用,可以更好的与Windows进行信息交互&#xff08…

判断是否为美丽数组

判断是否为美丽数组c思路和实现 这段代码的功能是对于给定的多个序列,判断每个序列是否是一个 beautiful 序列。没次读取当前的序列判断之后再加入下一个数字进序列。 首先,输入一个整数 t,表示测试数据组数。 对于每组测试数据,…

【初识C语言】字符串+转义字符+注释

文章目录 1. 字符串2. 转义字符转义字符表常见转义字符 3. 注释 1. 字符串 “hello world.\n” 上面这种由双引号引起的一串字符就被称为字符串; 字符串的存储 C 语言当中没有字符串类型,如果想要将字符串存储起来的话就需要用到字符串数组。 #include…

Excel VBA 编程入门

Visual Basic for Applications(VBA)是一种用于 Microsoft Office 套件中的编程语言,它可以帮助您自动化重复性任务、定制应用程序以及增强工作效率。本文将向您介绍 Excel VBA 编程的基础知识,并通过示例帮助您入门。 1、启用“开…

融云WICC2023:成为「卷王」的路上,如何更好借力 AIGC

近期,“融云 WICC2023 泛娱乐出海嘉年华”在广州成功举办,行业多方力量与数百位开发者汇聚一堂,共同探讨出海人布局全球的突围之道。关注【融云全球互联网通信云】了解更多 在嘉年华的圆桌会议环节,白鲸出海创始人&CE…

Axure教程—计数器

本文将教大家如何用AXURE制作计数器(商品购件数的交互设计) 一、效果 预览地址:https://uf9ie1.axshare.com 二、功能 1、用户点击“”号时数值加1 2、用户点击“-”号时数值减1 三、制作 数值 拖入一个矩形组件,其大小设置为164…

个人一年工作情况总结报告

个人一年工作情况总结报告篇1 转眼间又到了年终岁尾,这一年就要在很充实忙碌的工作中过去了。在这一年里,我收获了很多也积累了不少的工作经验。同时在两位领导和各位主管的帮助与支持下,我很好的完成了本职工作。作为一名办公室文员&#xf…

云计算成本大揭秘:硬件、研发、电力等各项成本都在这里!

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 云计算作为一种技术和商业模式,已经深深地影响了全球的IT行业和各种商业运营。云服务商的主要模式以订阅为基础,一旦应用程序和工作负载移动到云上,它们通常会停留在那里,订阅…

js blob 文件上传

js blob 文件上传 js中的文件处理和文件上传掌握得更扎实,有更深入的理解,底层原理 ps.项目中使用插件上传 filereadermime类型筛选单文件的2种处理方案多文件&文件上传进度管控 Ajax文件上传时:Formdata、File、Blob的关系-腾讯云开发者…

基于Java端游账号销售管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

C语言 --- 文件操作(万字详解)

文章目录 前言🌟一、为什么使用文件🌟二、什么是文件🌏2.1程序文件:🌏2.2数据文件:🌏2.3文件名: 🌟三、文件的打开和关闭🌏3.1文件指针:&#x1f…

TDEngine 调优 - 高速查询及插入

TDEngine 调优 - 高速查询及插入 一、基本参数二、TDEngine大数据核心2.1 vnode分片2.1.1 表分布不均匀2.1.2 vnode分布不均匀2.2 时间段分区 三、数据库性能优化3.1 数据文件3.1.1 maxrows 和 minrows3.1.2 数据的保留策略duration\days 3.2 磁盘IO - vgroups3.3 性能优化实战…

「网络编程」第二讲:网络编程socket套接字(一)

「前言」文章是关于网络编程的socket套接字方面的,下面开始讲解! 「归属专栏」网络编程 「笔者」枫叶先生(fy) 「座右铭」前行路上修真我 「枫叶先生有点文青病」 「每篇一句」 春风得意马蹄疾,一日看尽长安花。 ——孟郊《登科后》 目录 一…

这有可能是全网最好的《基于CUDA的GPU并行程序优化实战课程》!预售开启!

大模型一出,各类企业的各类“模型”竞赛般的亮家伙,算力时代抢先到来。2023年4月超算互联网的正式部署,标志着,很快,越来越多的应用都需要巨大的计算资源。 这给传统的计算机体系结构带来了巨大的挑战,计算…