模拟调制仿真

合集下载

基于MATLAB的模拟调制系统仿真及测试(AM调制)

基于MATLAB的模拟调制系统仿真及测试(AM调制)

闽江学院《通信原理设计报告》题目:基于MATLAB的模拟调制系统仿真与测试学院:计算机科学系专业:12通信工程组长:曾锴(3121102220)组员:薛兰兰(3121102236)项施旭(3121102222)施敏(3121102121)杨帆(3121102106)冯铭坚(3121102230)叶少群(3121102203)张浩(3121102226)指导教师:余根坚日期:2014年12月29日——2015年1月4日摘要在通信技术的发展中,通信系统的仿真是一个重点技术,通过调制能够将信号转化成适用于无线信道传输的信号。

在模拟调制系统中最常用最重要的调制方式是用正弦波作为载波的幅度调制和角度调制。

在幅度调制中,文中以调幅、双边带和单边带调制为研究对象,从原理等方面阐述并进行仿真分析;在角度调制中,以常用的调频和调相为研究对象,说明其调制原理,并进行仿真分析。

利用MATLAB下的Simulink工具箱对模拟调制系统进行仿真,并对仿真结果进行时域及频域分析,比较各个调制方式的优缺点,从而更深入地掌握模拟调制系统的相关知识,通过研究发现调制方式的选取通常决定了一个通信系统的性能。

关键词模拟调制;仿真;Simulink目录第一章绪论 (1)1.1 引言 (1)1.2 关键技术 (1)1.3 研究目的及意义 (2)1.4 本文工作及内容安排 (2)第二章模拟调制原理 (3)2.1 幅度调制原理 (3)2.1.1 AM调制 (4)第三章基于Simulink的模拟调制系统仿真与分析 (6)3.1 Simulink工具箱简介 (6)3.2 幅度调制解调仿真与分析 (8)3.2.1 AM调制解调仿真及分析 (8)第四章总结 (12)4.1 代码 (13)4.2 总结 (14)第一章绪论1.1引言在通信技术的发展中,通信系统的仿真是一个技术重点。

通常情况下,调制可以分为模拟调制和数字调制。

在模拟调制中,调制信号为连续的信号,而在数字调制中调制信号为离散信号。

基于MATLAB模拟调制系统的仿真设计

基于MATLAB模拟调制系统的仿真设计

基于MATLAB模拟调制系统的仿真设计调制是无线通信系统中的重要环节,主要用于在传输信号过程中对信号进行编码和解码,以实现信号的传输和接收。

MATLAB作为一种强大的数学仿真工具,可以方便地进行调制系统的仿真设计。

调制系统一般包括三个主要部分:调制器、信道和解调器。

调制器负责将发送信号进行编码,以适应信道传输的需求;信道主要是指无线信号在传输过程中的传播环境,会受到各种影响,如多径效应、噪声等;解调器对接收到的信号进行解码,恢复出原始信号。

在MATLAB中,可以利用其信号处理、通信和仿真工具箱来进行调制系统的仿真设计。

以下是一个基于MATLAB的调制系统的仿真设计流程:1.确定调制方式:首先确定要使用的调制方式,比如常见的调制方式有调幅(AM)、调频(FM)、相位调制(PM)等。

根据需求选择合适的调制方式。

2.信号生成:使用MATLAB的信号处理工具箱生成原始信号。

可以选择不同的函数生成不同的信号,如正弦信号、方波信号、高斯脉冲等。

3.调制器设计:根据选择的调制方式,设计相应的调制器。

比如对于AM调制,可以通过将原始信号与载波进行乘法运算来实现;对于FM调制,可以通过改变载波频率的方式来实现。

在MATLAB中,可以使用相关函数来实现这些调制方式。

4.信号传输:将调制后的信号传输到信道中。

可以在仿真中模拟不同的信道情况,如加入噪声、多径效应等。

MATLAB提供了相关函数来模拟这些信道效应。

5.解调器设计:设计相应的解调器以恢复原始信号。

解调器的设计与调制器的设计相对应。

在MATLAB中,可以使用相关函数来实现解调器。

6.信号分析:对仿真结果进行分析。

可以通过绘制波形图、功率谱密度图等来观察信号在传输过程中的变化。

除了上述基本的仿真设计流程外,还可以在仿真过程中加入其他功能,如信号压缩、信号变换等。

MATLAB提供了大量的工具箱,可以方便地实现这些功能。

总之,基于MATLAB的调制系统仿真设计可以方便地模拟调制系统的工作过程,以及对不同信道效应的影响。

AM模拟调制系统的设计与仿真

AM模拟调制系统的设计与仿真

AM模拟调制系统的设计与仿真AM(幅度调制)模拟调制系统是一种将模拟信号调制到载波上的技术。

设计与仿真AM模拟调制系统可以帮助我们理解AM调制原理、调制过程以及系统的性能。

以下是一个关于AM模拟调制系统的设计与仿真的详细介绍。

首先,AM模拟调制系统的设计包括两个主要部分:调制器和解调器。

调制器负责将来自音频源的模拟信号调制到载波信号上,解调器负责从调制后的信号中恢复出原始音频信号。

在设计调制器时,首先需要确定载波频率。

一般情况下,载波频率选择在AM广播频段范围内,例如535kHz至1605kHz。

然后,选择一个适当的载波幅度,这会影响到解调过程中的恢复信号的质量。

接下来,设计一个低通滤波器,该滤波器用于去除调制过程中产生的上、下频谱区域。

最后,通过一个运放电路将调制后的信号放大到合适的水平。

在设计解调器时,需要采用一个带通滤波器来滤除载波信号和上、下频谱区域,使得只剩下原始音频信号。

然后,通过一个恢复电路将解调后的信号放大和恢复正常的幅度。

最后,通过一个扬声器将音频信号转换为可听的声音。

在进行系统的仿真时,可以使用一些仿真软件,例如MATLAB或Simulink,来模拟AM调制系统的性能。

首先,可以创建一个输入信号作为模拟音频信号源,该信号可以是音乐、语音或其他类型的声音。

然后,可以创建一个载波信号,其频率和幅度与设计中选择的相同。

接下来,使用模拟调制技术将输入信号调制到载波信号上,并通过一个示波器观察调制后的信号波形。

然后,使用带通滤波器去除载波和上、下频谱区域,并通过示波器观察解调后的信号波形。

最后,通过扬声器播放解调后的信号,以观察恢复音频信号的质量。

在仿真过程中,还可以改变不同参数的取值,例如载波频率、幅度、带宽等,以观察其对系统性能的影响。

此外,还可以添加噪声、多径传播等干扰信号,以评估系统在复杂环境下的性能。

总结来说,AM模拟调制系统的设计与仿真是一个学习和理解AM调制原理和性能的过程。

AM模拟调制系统的设计与仿真

AM模拟调制系统的设计与仿真

AM模拟调制系统的设计与仿真AM调制是一种将基带信号调制到载频上的调制技术,广泛应用于无线电通信、广播电视、音频传输等领域。

本文将介绍AM模拟调制系统的设计与仿真。

AM调制系统主要由三个部分组成:基带信号产生器、载波信号产生器和调制器。

基带信号产生器用于产生模拟调制信号,载波信号产生器用于产生载波信号,调制器将基带信号和载波信号进行调制。

通过仿真可以验证系统的正确性和性能。

首先,需要设计基带信号产生器。

基带信号可以是音频信号、语音信号或其他需要传输的信号。

可以使用软件工具如MATLAB来产生基带信号,也可以使用硬件电路如函数发生器来产生基带信号。

其次,设计载波信号产生器。

载波信号通常是一个高频正弦波信号,频率根据具体应用需求决定。

可以使用软件工具如MATLAB来产生载波信号,也可以使用硬件电路如震荡器来产生载波信号。

最后,设计调制器。

调制器主要是将基带信号和载波信号进行调制,实现信号的叠加。

调制器可以使用模拟电路如放大器和混频器来实现,也可以使用数字电路如FPGA来实现。

在调制过程中,可以选择不同的调制方式,如DSB-SC调制、SSB调制或VSB调制,根据需求选择适合的调制方式。

设计完整的调制系统后,可以进行系统的仿真。

仿真可以使用软件工具如MATLAB、Simulink或Multisim等来实现。

通过输入不同的基带信号,观察经过调制后的信号,检查是否满足要求。

可以使用示波器来显示信号的时域和频域特性,分析调制效果和系统性能。

在进行系统仿真时,可以对系统的不同参数进行调整和优化,如基带信号的频谱、带宽、载波信号的频率、调制指数等。

通过调整参数,可以优化系统性能,提高信号的质量和传输效果。

在设计和仿真过程中,需要考虑系统的线性度、功率效率、频率响应等指标。

根据具体应用需求,可以对系统进行优化和改进。

总之,AM模拟调制系统的设计与仿真是一个综合性的工程项目,需要综合考虑基带信号产生器、载波信号产生器和调制器的设计与实现。

基于MATLAB模拟调制系统的仿真设计

基于MATLAB模拟调制系统的仿真设计

基于MATLAB模拟调制系统的仿真设计摘要:本文基于MATLAB平台,通过建立调制系统的仿真模型,实现了对调制系统的仿真设计。

首先对调制系统的基本原理进行了介绍,然后建立了调制系统的数学模型。

接着使用MATLAB对模型进行了仿真分析,包括调制信号的产生、载波信号的产生、调制信号与载波信号的混合调制、调制后的信号的传输等过程。

最后,通过仿真结果的分析,对调制系统的性能进行了评估,并提出了优化方案。

本文的研究对于调制系统的设计和优化具有一定的参考意义。

关键词:调制系统;MATLAB仿真;混合调制;性能评估;优化方案一、引言调制是无线通信中的一项基本技术,通过将信息信号与载波信号进行合成,使信息信号能够被传输到远距离的通信接收端。

调制系统是实现调制技术的关键,其性能直接影响到通信系统的可靠性和传输质量。

因此,对调制系统的研究和优化具有重要的意义。

二、调制系统的基本原理调制系统的基本原理是将信息信号经过调制器与载波信号进行混合调制,形成调制后的信号。

调制过程中,需要考虑到载波频率、调制信号幅度、调制信号频率等参数的选择。

常见的调制方式有幅度调制(AM)、频率调制(FM)、相位调制(PM)等。

三、调制系统的数学模型调制系统的数学模型是根据调制原理建立的,一般可表示为:$s(t) = A_c \cdot (1 + m \cdot \cos(f_m \cdot t)) \cdot\cos(f_c \cdot t)$其中,$s(t)$表示调制后的信号,$A_c$为载波幅度,$m$为调制系数,$f_m$为调制信号频率,$f_c$为载波频率。

四、MATLAB仿真设计4.1调制信号的产生通过MATLAB生成调制信号,并将其绘制出来,以便后续的仿真分析。

4.2载波信号的产生通过MATLAB生成载波信号,并将其绘制出来,以便后续的仿真分析。

4.3调制信号与载波信号的混合调制将调制信号与载波信号进行混合调制,并将调制后的信号绘制出来,以便后续的仿真分析。

基于Matlab的模拟调制与解调实验报告

基于Matlab的模拟调制与解调实验报告

基于Matlab的模拟调制与解调(开放实验)一、实验目的(一)了解AM、DSB和SSB 三种模拟调制与解调的基本原理(二)掌握使用Matlab进行AM调制解调的方法1、学会运用MATLAB对基带信号进行AM调制2、学会运用MATLAB对AM调制信号进行相干解调3、学会运用MATLAB对AM调制信号进行非相干解调(包络检波)(三)掌握使用Matlab进行DSB调制解调的方法1、学会运用MATLAB对基带信号进行DSB调制2、学会运用MATLAB对DSB调制信号进行相干解调(四)掌握使用Matlab进行SSB调制解调的方法1、学会运用MATLAB对基带信号进行上边带和下边带调制2、学会运用MATLAB对SSB调制信号进行相干解调二、实验环境MatlabR2020a三、实验原理(一)滤波法幅度调制(线性调制)(二)常规调幅(AM)1、AM表达式2、AM波形和频谱3、调幅系数m(三)抑制载波双边带调制(DSB-SC)1、DSB表达式2、DSB波形和频谱(四)单边带调制(SSB)(五)相关解调与包络检波四、实验过程(一)熟悉相关内容原理 (二)完成作业已知基带信号()()()sin 10sin 30m t t t ππ=+,载波为()()cos 2000c t t π= 1、对该基带信号进行AM 调制解调(1)写出AM 信号表达式,编写Matlab 代码实现对基带进行进行AM 调制,并分别作出3种调幅系数(1,1,1m m m >=<)下的AM 信号的时域波形和幅度频谱图。

代码 基带信号fs = 10000; % 采样频率 Ts = 1/fs; % 采样时间间隔t = 0:Ts:1-Ts; % 时间向量m = sin(10*pi*t) + sin(30*pi*t); % 基带信号载波信号fc = 1000; % 载波频率c = cos(2*pi*fc*t); % 载波信号AM调制Ka = [1, 0.5, 2]; % 调制系数m_AM = zeros(length(Ka), length(t)); % 存储AM调制信号相干解调信号r = zeros(length(Ka), length(t));绘制AM调制信号的时域波形和幅度频谱图figure;for i = 1:length(Ka)m_AM(i, :) = (1 + Ka(i)*m).*c; % AM调制信号subplot(3, 2, i);plot(t, m_AM(i, :));title(['AM调制信号(Ka = ' num2str(Ka(i)) ')']);xlabel('时间');ylabel('幅度');ylim([-2, 2]);subplot(3, 2, i+3);f = (-fs/2):fs/length(m_AM(i, :)):(fs/2)-fs/length(m_AM(i, :));M_AM = fftshift(abs(fft(m_AM(i, :))));plot(f, M_AM);title(['AM调制信号的幅度频谱图(Ka = ' num2str(Ka(i)) ')']);xlabel('频率');ylabel('幅度');r(i, :) = m_AM(i, :) .* c; % 相干解调信号end绘制相干解调信号的时域波形和幅度频谱图figure;for i = 1:length(Ka)subplot(length(Ka), 1, i);plot(t, r(i, :));title(['相干解调信号(Ka = ' num2str(Ka(i)) ')']);xlabel('时间');ylabel('幅度');end图像(2)编写Matlab代码实现对AM调制信号的相干解调,并作出图形。

模拟调制信号课程设计

模拟调制信号课程设计

模拟调制信号课程设计一、课程目标知识目标:1. 理解模拟调制信号的基本概念,掌握调制原理及其分类;2. 学会使用特定的数学工具描述和分析模拟调制信号;3. 掌握常见模拟调制信号的波形特征及其应用场景。

技能目标:1. 能够运用模拟调制技术设计简单的通信系统;2. 能够运用数学软件对模拟调制信号进行仿真和分析;3. 能够运用实验设备观察和检测模拟调制信号。

情感态度价值观目标:1. 培养学生对通信科学的兴趣,激发他们探索未知领域的热情;2. 培养学生严谨的学术态度和良好的团队合作精神;3. 增强学生的国家意识,使他们认识到通信技术在国家发展中的重要性。

课程性质:本课程为高中年级电子信息技术课程的一部分,侧重于实践与应用,强调理论联系实际。

学生特点:高中年级学生具备一定的物理和数学基础,对通信技术有一定的好奇心,但可能缺乏实际操作经验。

教学要求:结合学生特点,注重理论讲解与实验操作相结合,提高学生的实际动手能力;通过小组讨论和课后拓展,培养学生的创新思维和问题解决能力。

将课程目标分解为具体的学习成果,为后续教学设计和评估提供依据。

二、教学内容1. 模拟调制信号基本概念:介绍调制的基本定义,包括载波、调制信号和已调信号的概念,以及模拟调制与数字调制的区别。

教材章节:第一章第二节2. 调制原理与分类:详细讲解幅度调制(AM)、频率调制(FM)和相位调制(PM)的原理及其特点。

教材章节:第二章3. 数学工具与分析方法:介绍傅里叶级数和傅里叶变换在模拟调制信号分析中的应用,以及如何运用相关数学工具对信号进行处理。

教材章节:第三章4. 常见模拟调制信号:分析AM、FM、PM信号的波形特征、调制方法和应用场景。

教材章节:第四章5. 实践操作与仿真:组织学生进行模拟调制信号的实验操作,运用数学软件(如MATLAB)对调制信号进行仿真和分析。

教材章节:第五章6. 案例分析与讨论:通过实际案例,让学生了解模拟调制信号在现实生活中的应用,提高他们分析问题和解决问题的能力。

基于MATLAB的FSK调制信号发生器的模拟仿真

基于MATLAB的FSK调制信号发生器的模拟仿真

2012年8月第24期科技视界SCIENCE &TECHNOLOGY VISION 科技视界Science &Technology Vision作者简介:葛熠(1991—),男,江苏溧阳人,本科,通信工程专业,研究方向为信息与通信工程。

0引言由于目前大多数信道不适合传输基带信号,为了使基带信号能利用这些信道进行传输,必须使代表信息的原始信号经过一种变换得到另一种新信号,这种变换就是调制。

在数字调制中,频移键控(FSK)[1]方法简单,易于实现,并且解调不须恢复本地载波,可以异步传输,抗噪声和抗衰落性能也较强。

因此,FSK 调制技术在通信行业得到了广泛地应用,并且主要适用于用于低、中速数据传输[2]。

因此本文以通用DSP builder 来实现FSK 调制信号发生器的设计,并借助MATLAB 仿真工具SIMULINK 进行仿真检测。

1MATLAB 和DSP Builder 的简单介绍1.1MATLAB 简介MATLAB 是矩阵实验室的简称,主要包括MATLAB 和Simulink 两大部分。

MATLAB 可以进行矩形运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域[3]。

Simulink 是MATLAB 最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。

在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。

Simulink [4]具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点。

1.2DSP Builder 简介Altera 可编程逻辑器件中的DSP 系统设计需要高级算法和HDL 开发工具。

Altera DSP Builder 将MATLAB 和Simulink 系统级设计工具的算法开发、仿真和验证功能与VHDL 综合、仿真和Altera 开发工具整合在一起,实现了这些工具的集成[5]。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告题目模拟调制仿真目录一.原理 (1)二.编程思想 (2)三.结果 (3)四.分析 (5)五.程序代码 (8)一.原理1.1模拟调制原理模拟调制包括幅度调制(DSB,SSB,AM)和相角调制(频率和相位调制)。

在本次设计中主要讨论模拟调制中的幅度调制,幅度调制即用基带调制信号去控制高频载波的幅度,使其按基带信号的规律变化的过程。

幅度调制主要有AM调制,DSB调制,SSB调制。

他们的调制原理如下,AM调制:AM 是用调制信号去控制高频正弦载波的幅度,使其按调制信号的规律变化的过程;DSB调制:在幅度调制的一般模型中,若假设滤波器为全通网络,调制信号中无直流分量,则输出的已调信号就是无载波分量的双边调制信号,或称抑制载波双边带调制信号;SSB调制:由于 DSB 信号的上、下两个边带是完全对称的,皆携带了调制信号的全部信息,因此从信息传输的角度来考虑,仅传输其中一个边带。

1.2 AM调制AM信号的时域表示式:频谱:调制器模型如图所示:1.3 DSB调制DSB信号的时域表示式频谱:1.4 相干解调相干解调器原理:为了无失真地恢复原基带信号,接收端必须提供一个与接收的已调载波严格同步(同频同相)的本地载波(称为相干载波),它与接收的已调信号相乘后,经低00()[()]cos cos()cos AM c c cs t A m t t A t m t tωωω=+=+1()[()()][()()]2AM c c c c S A M Mωπδωωδωωωωωω=++-+++-⊗()m t()ms tct⊕通滤波器取出低频分量,即可得到原始的基带调制信号DSB的相干解调模型如图所示:二.编程思想1.先在MATLAB中生成一个调制信号(以一个一定频率和振幅的余弦波为调制信号)和载波。

2.结合AM调制和相干解调的过程,在MATLAB中,采用顺序结构,依次模拟调制信号加上直流量,调制载波,通过带通滤波器,通过相干解调器的过程。

3.设计几个子函数生成带通滤波器和低通滤波器,利用函数将时域转换成频域。

(AM调制和DSB调制两者的的编程思想与实现过程类似)三.结果本次设计主要研究在MATLAB中模拟AM调制以及解调的过程。

其过程如下:1.设置调制信号的参数,生成调制信号的波形和频谱,并给调制信号加上直流量。

两种信号的波形和频谱如下:2.在MATLAB中生成载波,并用加入直流的调制信号去调制载波。

两种信号的波形和频谱如下:3.生成噪声和带通滤波器,噪声和信道中的信号的波形和频谱如下:4.通过带通滤波器后的输出信号的波形和频谱以及混频后的信号的波形和频谱如下:5.生成低通滤波器,信号通过低通滤波器。

通过低通滤波器后的输出信号波形和频谱如下:5.恢复信号波形和频谱如下:四.分析1.定性分析:在不同的信噪比下,AM调制后调制信号和恢复信号的比较:在信噪比为100的情况下,恢复信号与调制信号的波形如下:在信噪比为10的情况下,恢复信号与调制信号的波形如下:通过观察上面两张图可知,在大信噪比的情况下,解调信号的失真较小。

而在小信噪比的情况下,解调信号的失真非常严重。

即随着噪声的增大,解调信号和调制信号之间的偏差增大。

2.定量分析在不同的信噪比下,AM调制后调制信号和解调信号的比较:计算在信噪比为100的情况下,恢复信号与调制信号的偏差:求同一时间序列下解调信号同调制信号的差的绝对值,再求这一系列的绝对值的平均值,得到其平均值为0.05516下表为同一时间序列下恢复信号和调制信号的部分值计算在信噪比为10的情况下,解调信号与调制信号的偏差:求同一时间序列下解调信号同调制信号的差的绝对值,再求这一系列的绝对值的平均值,得到其平均值为0.15860结论:即随着噪声的增大,解调信号和调制信号之间的偏差增大。

在不同的信噪比下,DSB调制后调制信号和解调信号的比较:计算在信噪比为100的情况下,解调信号与调制信号的偏差:求同一时间序列下解调信号同调制信号的差的绝对值,再求这一系列的绝对值的平均值,得到其平均值为0.05616下表为同一时间序列下解调信号和调制信号的部分值(2)在信噪比为10的情况下,解调信号与调制信号的偏差:求同一时间序列下解调信号同调制信号的差的绝对值,再求这一系列的绝对值的平均值,得到其平均值为0.19430下表为同一时间序列下解调信号和调制信号的部分值结论:即随着噪声的增大,解调信号和调制信号之间的偏差增大。

此结论与AM调制得出的结论相同。

五.程序代码AM调制代码:fc=18; %载波频率t0=6;%信号时长dt=0.04;%时间间隔fs=1/dt;%系统采样频率snr=100;%解调器输入信噪比df = 0.001;%所需的频率分辨率t=0:dt:t0; %横坐标snr_lin=10^(snr/10);%信噪比m=cos(pi*t);figure(),subplot(221);plot(t,m);axis([0 t0 -1.5 1.5]);xlabel('t');ylabel('调制信号');[M,m,df1,f]=T2F(m,dt,df,fs);%求出调制信号频谱 f subplot(222);plot(f,fftshift(abs(M)));% 画出调制信号频谱xlabel('f');ylabel('调制信号频谱');Lt=length(t);%仿真过程中,信号长度A=3; %假设调制时直流分量为3u1=(A+m(1:Lt));subplot(223);plot(t,u1);% 画出加入直流的调制信号波形xlabel('t');ylabel('加入直流的调调信号');[U1,u1,df1,f]=T2F(u1,dt,df,fs);subplot(224);plot(f,fftshift(abs(U1)))% 画出加入直流的调制信号频谱xlabel('f');ylabel('加入直流的调调信号频谱');figure(),subplot(221);c=cos(2*pi*fc*t);%载波plot(t,c);axis([0 t0 -1.5 1.5]);xlabel('t');ylabel('载波');[C,c,df1,f]=T2F(c,dt,df,fs);subplot(222);plot(f,fftshift(abs(C)))% 画出载波频谱xlabel('f');ylabel('载波频谱');A=3; %假设调制时直流分量为3u=(A+m(1:Lt)).*c(1:Lt);subplot(223);plot(t,u);% 画出已调信号波形%R=2*max(abs(m))+A;%axis([0 t0 -R R]);xlabel('t');ylabel('已调信号');[U,u,df1,f]=T2F(u,dt,df,fs);subplot(224);plot(f,fftshift(abs(U)))% 已调信号频谱xlabel('f');ylabel('已调信号频谱');signal_power = power_x(u(1:Lt)); %已调信号的平均功率[Bw_eq]=signalband(M,df,t0);%求出信号等效带宽noise_power=(signal_power*fs)/(snr_lin*(2* Bw_eq));%求出噪声方差(噪声均值为0)noise_std = sqrt(noise_power); %噪声标准偏差noise = noise_std*randn(1,Lt); %产生噪声%画出信道高斯白噪声波形及频谱,此时,噪声已实现,为确知信号,可求其频谱figure(),subplot(321);plot(t,noise);% 画出噪声波形axis([0 t0 -6 6])xlabel('t');ylabel('噪声信号');subplot(322);[noisef,noise,df1,f]=T2F(noise,dt,df,fs);%噪声频谱plot(f,fftshift(abs(noisef)))% 画出噪声频谱xlabel('f');ylabel('噪声频谱');sam=u(1:Lt)+noise(1:Lt);%叠加了噪声的已调信号subplot(323); %画出叠加了噪声的已调信号波形plot(t,sam);axis([0 t0 -6 6]);xlabel('t');ylabel('信道中的信号');subplot(324);[samf,sam,df1,f]=T2F(sam,dt,df,fs);%求出叠加了噪声的已调信号频谱plot(f,fftshift(abs(samf)))% 画出叠加了噪声的已调信号频谱xlabel('f');ylabel('信道中信号频谱');f_start=fc-Bw_eq;f_cutoff=fc+Bw_eq;[H,f]=bp_f(length(sam),f_start,f_cutoff,df1,fs,1);%求带通滤波器subplot(325);plot(f,fftshift(abs(H)))% 画出带通滤波器xlabel('f');ylabel('带通滤波器');axis([-1*(f_cutoff+1) f_cutoff+1 -1.5 1.5]);DEM = H.*samf; %滤波器输出的频谱[dem]=F2T(DEM,fs);%滤波器的输出波形figure,subplot(221)%经过理想带通滤波器后的信号波形plot(t,dem(1:Lt))%画出经过理想带通滤波器后的信号波形R=2*max(abs(m))+A;%axis([0 t0 -R R]);xlabel('t');ylabel('理想BPF输出信号');[demf,dem,df1,f]=T2F(dem(1:Lt),dt,df,fs);%求经过理想带通滤波器后信号频谱subplot(222)plot(f,fftshift(abs(demf)));% 画出经过理想带通滤波器后信号频谱xlabel('f');ylabel('理想BPF输出信号频谱');der=dem(1:Lt).*c(1:Lt);%混频subplot(223)%画出混频后的信号plot(t,der);axis([0 t0 -R R]);xlabel('t');ylabel('混频后的信号');subplot(224)[derf,der,df1,f]=T2F(der,dt,df,fs);%求混频后的信号频谱plot(f,fftshift(abs(derf)))%画出混频后的信号的频谱xlabel('f');ylabel('混频后信号频谱');figure(),[LPF,f]=lp_f(length(der),Bw_eq,df1,fs,1.9);%求低通滤波器subplot(221)plot(f,fftshift(abs(LPF)));% 画出理想低通滤波器xlabel('f');ylabel('理想LPF');%混频信号经理想低通滤波器后的频谱及波形DM = LPF.*derf; %理想低通滤波器输出的频谱[dm]=F2T(DM,fs);%滤波器的输出波形subplot(223)plot(t,dm(1:Lt));%画出经过低通滤波器后的解调出的波形这里出了问题axis([0 t0 -R R]);xlabel('t');ylabel('LPF输出信号');subplot(224)[dmf,dm,df1,f]=T2F(dm(1:Lt),dt,df,fs);%求LPF输出信号的频谱plot(f,fftshift(dmf));%画出LPF输出信号的频谱xlabel('f');ylabel('LPF输出信号频谱');axis([-fs/2 fs/2 0 0.5]);dmd=dm(1:Lt)-mean(dm(1:Lt));figure(),subplot(221);plot(t,m(1:Lt));% 画出调制信号波形axis([0 t0 -R/2 R/2]);xlabel('t');ylabel('调制信号');subplot(222);plot(f,fftshift(abs(M)));% 画出调制信号频谱xlabel('f');subplot(223),plot(t,dmd);%画出恢复信号(去除直流分量)axis([0 t0 -R/2 R/2]);xlabel('t');ylabel('恢复信号');[dmdf,dmd,df1,f]=T2F(dmd,dt,df,fs);%求恢复信号的频谱subplot(224)plot(f,fftshift(dmdf));%画出恢复信号的频谱xlabel('f');ylabel('恢复信号的频谱');axis([-fs/2 fs/2 0 0.2]);DSB调制代码:fc=18; %载波频率t0=6;%信号时长dt=0.04;%时间间隔fs=1/dt;%系统采样频率snr=10;%解调器输入信噪比df = 0.001;%所需的频率分辨率t=0:dt:t0; %横坐标snr_lin=10^(snr/10);%信噪比m=cos(pi*t);figure(),subplot(321);plot(t,m);axis([0 t0 -1.5 1.5]);xlabel('t');ylabel('调制信号');[M,m,df1,f]=T2F(m,dt,df,fs);%求出调制信号频谱 fsubplot(322);plot(f,fftshift(abs(M)));% 画出调制信号频谱xlabel('f');ylabel('调制信号频谱');c=cos(2*pi*fc*t);%载波subplot(323);plot(t,c);axis([0 t0 -1.5 1.5]);xlabel('t');ylabel('载波');[C,c,df1,f]=T2F(c,dt,df,fs);subplot(324);plot(f,fftshift(abs(C)))% 画出载波频谱xlabel('f');ylabel('载波频谱');Lt=length(t);%仿真过程中,信号长度A=0; %DSB-SCu=(A+m(1:Lt)).*c(1:Lt);%已调信号subplot(325);plot(t,u);% 画出已调信号波形%R=2*max(abs(m))+A;%axis([0 t0 -R R]);xlabel('t');ylabel('已调信号');[U,u,df1,f]=T2F(u,dt,df,fs);subplot(326);plot(f,fftshift(abs(U)))% 画出已调信号频谱xlabel('f');ylabel('已调信号频谱');signal_power = power_x(u(1:Lt)); %已调信号的平均功率[Bw_eq]=signalband(M,df,t0);%求出信号等效带宽noise_power=(signal_power*fs)/(snr_lin*(2* Bw_eq));%求出噪声方差(噪声均值为0)noise_std = sqrt(noise_power); %噪声标准偏差noise = noise_std*randn(1,Lt); %产生噪声%画出信道高斯白噪声波形及频谱,此时,噪声已实现,为确知信号,可求其频谱figure(),subplot(321);plot(t,noise);% 画出噪声波形axis([0 t0 -6 6])xlabel('t');ylabel('噪声信号');subplot(322);[noisef,noise,df1,f]=T2F(noise,dt,df,fs);%噪声频谱plot(f,fftshift(abs(noisef)))% 画出噪声频谱xlabel('f');ylabel('噪声频谱');sam=u(1:Lt)+noise(1:Lt);%叠加了噪声的已调信号subplot(323); %画出叠加了噪声的已调信号波形plot(t,sam);axis([0 t0 -6 6]);xlabel('t');ylabel('信道中的信号');subplot(324);[samf,sam,df1,f]=T2F(sam,dt,df,fs);%求出叠加了噪声的已调信号频谱plot(f,fftshift(abs(samf)))% 画出叠加了噪声的已调信号频谱xlabel('f');ylabel('信道中信号频谱');f_start=fc-Bw_eq;f_cutoff=fc+Bw_eq;[H,f]=bp_f(length(sam),f_start,f_cutoff,df1,fs,1);%求带通滤波器subplot(325);plot(f,fftshift(abs(H)))% 画出带通滤波器xlabel('f');ylabel('带通滤波器');axis([-1*(f_cutoff+1) f_cutoff+1 -1.5 1.5]);DEM = H.*samf; %滤波器输出的频谱[dem]=F2T(DEM,fs);%滤波器的输出波形figure,subplot(321)%经过理想带通滤波器后的信号波形plot(t,dem(1:Lt))%画出经过理想带通滤波器后的信号波形R=2*max(abs(m))+A;%axis([0 t0 -R R]);xlabel('t');ylabel('理想BPF输出信号');[demf,dem,df1,f]=T2F(dem(1:Lt),dt,df,fs);%求经过理想带通滤波器后信号频谱subplot(322)plot(f,fftshift(abs(demf)));% 画出经过理想带通滤波器后信号频谱xlabel('f');ylabel('理想BPF输出信号频谱');der=dem(1:Lt).*c(1:Lt);%混频subplot(325)%画出混频后的信号plot(t,der);axis([0 t0 -R R]);xlabel('t');ylabel('混频后的信号');subplot(326)[derf,der,df1,f]=T2F(der,dt,df,fs);%求混频后的信号频谱plot(f,fftshift(abs(derf)))%画出混频后的信号的频谱xlabel('f');ylabel('混频后信号频谱');figure(),[LPF,f]=lp_f(length(der),Bw_eq,df1,fs,1.9);%求低通滤波器subplot(221)plot(f,fftshift(abs(LPF)));% 画出理想低通滤波器xlabel('f');ylabel('理想LPF');%混频信号经理想低通滤波器后的频谱及波形DM = LPF.*derf; %理想低通滤波器输出的频谱[dm]=F2T(DM,fs);%滤波器的输出波形subplot(223)plot(t,dm(1:Lt));%画出经过低通滤波器后的解调出的波形axis([0 t0 -R R]);xlabel('t');ylabel('LPF输出信号');subplot(224)[dmf,dm,df1,f]=T2F(dm(1:Lt),dt,df,fs);%求LPF输出信号的频谱plot(f,fftshift(dmf));%画出LPF输出信号的频谱xlabel('f');ylabel('LPF输出信号频谱');axis([-fs/2 fs/2 0 0.5]);figure()subplot(221);plot(t,m(1:Lt));% 画出调制信号波形axis([0 t0 -R/2 R/2]);xlabel('t');ylabel('调制信号');subplot(222);plot(f,fftshift(abs(M)));% 画出调制信号频谱xlabel('f');ylabel('调制信号频谱');dmd=dm(1:Lt); %subplot(223),plot(t,dmd);%画出恢复信号(去除直流分量)axis([0 t0 -R/2 R/2]);xlabel('t');ylabel('恢复信号');[dmdf,dmd,df1,f]=T2F(dmd,dt,df,fs);%求恢复信号的频谱subplot(224)plot(f,fftshift(dmdf));%画出恢复信号的频谱xlabel('f');ylabel('恢复信号的频谱');axis([-fs/2 fs/2 0 0.2]);w=dmd-m;3.各种子函数代码:带通滤波器:function[H,f]=bp_f(n,f_start,f_cutoff,df1,fs,p)n_cutoff = floor(f_cutoff/df1);n_cutoffn_start = floor(f_start/df1);n_startf = [0:df1:df1*(n-1)] -fs/2; %频率向量H = zeros(size(f));H(n_start+1:n_cutoff) = p*ones(1,n_cutoff-n_start);H(length(f)-n_cutoff+1:length(f)-n_start) = p*ones(1,n_cutoff-n_start); 低通滤波器:function [H,f]=lp_f(n,f_cutoff,df1,fs,p)n_cutoff = floor(f_cutoff/df1);f = [0:df1:df1*(n-1)] - fs/2;H = zeros(size(f));H(1:n_cutoff) = p*ones(1,n_cutoff);H(length(f) - n_cutoff+1:length(f)) = p*ones(1,n_cutoff);end计算信号有效带宽:function [Bw_eq]=signalband(sf,df,T)%计算信号等效带宽%sf:信号频谱%df:频率分辨率%T:信号持续时间sf_max=max(abs(sf));Bw_eq=20*sum(abs(sf).^2)*df/T/sf_max.^2;End计算信号功率:function p=power_x(x)%x:输入信号%p:返回信号的x功率p=(norm(x).^2)./length(x);序列的傅里叶变换:function [M, m, df]=fftseq(m,ts,df)fs = 1/ts;if nargin ==2n1 =0;elsen1 = fs/df;endn2 = length(m);n = 2^(max(nextpow2(n1),nextpow2(n2)));M = fft(m,n);m = [m,zeros(1,n-n2)];df = fs/n;end信号时域转频域:function [M,m,df1,f]=T2F(m,ts,df,fs)[M,m,df1]=fftseq(m,ts,df);f = [0:df1:df1*(length(m)-1)] -fs/2; %频率向量M=M/fs;信号频域转时域:function [m]=F2T(M,fs)m = real(ifft(M))*fs;。

相关文档
最新文档