MATLAB实现AM调制解调

1.基本概念

1.1 AM调制原理

        调幅就是使载波的振幅随调制信号的变化规律而变化。基带信号m(t)与直流分量A0相加,然后和高频载波相乘实现AM信号的调制,如图1所示。

1.2 AM解调原理

       AM信号经过信道传输,引入噪声后,再和载波相乘,经过低通滤波器和隔直流后,输出原始基带信号,如图2所示。

2.MATLAB读取语音文件

       准备一段wav的语音文件,我用笔记本自带的录音机录制了一段语音“软件无线电小方圆.wav“,用MATLAB读取该语音文件,并获取采样频率信息。

clc;
clear all;
%% ***************read file*************************************
filename ='./data_source/软件无线电小方圆.wav';
[m,fm]= audioread(filename);% fm = 48e3; %音频的采样率
sound(m,fm);
figure(1);
plot(m);title('原始的语音信号');

我的这段语音数据源采样率48kHz,时域波形如图3所示,

图3 原始语音信号时域波形

3.AM调制相关参数设置和语音数据源初处理

        设置载波频率192kHz,载波采样率1.92MHz,AM调制直流分量0.5,代码里类似这些参数大家可以根据自己的需求修改。因为AM调制是用基带信号控制载波的幅值,即与载波信号数据相乘,所以在这之前,我们需要将基带信号的采样率进行处理,使其与载波信号采样率一致,代码如下:

%*****************参数设置***********************
fs = 1.92e6; %采样率 载波的采样率
fc = 192e3; %载波中心频率
am_M = 0.5;%直流偏量
%*****************插值48kHz to 1.92MHz************************
m_len=length(m)*fs/fm;%按照载波采样率的长度计算
m_t=zeros(1,m_len);
for i=1:length(m)for j=1:fix(fs/fm)m_t((i-1)*fix(fs/fm)+j)=m(i);end
end

4.Matlab实现AM调制解调

AM调制基带信号时域图如图4所示。

图4 AM调制基带信号

载波信号时域波形如图5所示。

图5 载波信号时域波形

AM信号时域图如图6所示。

图6 AM信号时域波形

AM解调后的信号如图7所示。

图7 AM解调完成信号时域波形

5.Matlab滤波器设计

滤波器系数获取步骤:

步骤1:使用MATLAB自带的滤波器设计工具,即fdatool获取滤波器系数。在MATLAB命令窗口输入fdatool回车,弹出滤波器设计工具

步骤2:滤波器参数设置。

选择低通滤波器,然后设置采样率、通带、阻带等参数后,最后点击设计滤波器,等待结束,生成滤波器,如图8所示:

图8 滤波器参数设置

步骤3:导出滤波器系数。

点击滤波器设计工具右上角“file”,下拉选择“Export”,设置导出系数的名称,勾选覆盖原数据,点击导出“Export”,如图9所示,返回到MATLAB工作区,找到刚刚取的变量名称,即导出的滤波器系数。

图9 导出滤波器系数

Matlab音频文件见:https://download.csdn.net/download/weixin_39813867/89880032。

详细的源码可以评论留言

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis主从复制机制详解

目录 一、主从复制介绍二、搭建主从复制三、主从复制流程四、关于Replication ID五、主从复制核心知识六、主从复制应用场景七、主从复制的注意事项八、读写分离实战 一、主从复制介绍 1、什么是主从复制? 2、为什么要使用主从复制? redis-server单点…

TDC上YARN Web-UI 查看application日志方法

方法一 #通过浏览器访问tdc,访问的工作节点对于TDC都是外部节点。在提交给yarn任务后,YarnRM的Web UI 可以展示yarnnm上运行的application日志,但是由于跳转的svc地址,无法直接访问。 #在tdc界面上找到yarn实例,进入ya…

【MySQL】mysql导出数据WPS科学计数法解决方法

导出的长串数字 id 会导致科学计数法,修改 WPS 单元格格式可以解决 数字太长还是有问题,最后有个数字会变成 0 可以 直接用 python脚本转换一下 vim convert_txt_xlsx.py #!/usr/bin/env python3# 使用方法# 安装库 # pip3 install pandas openpyxl…

微信小程序后台搭建—node+mysql

想必大家都有一个困扰,想要用微信小程序作为前端,但是后端不知道如何用node连接微信小程序,我最近也一直困扰许久,所以我就想用node写后端接口在连接微信小程序,记录一下学习笔记 前言 前端:微信小程序 后端:nodeexpr…

MYSQL-windows安装配置两个或多个版本MYSQL

安装第一个mysql很简单,这里不再赘述。主要说说第二个怎么安装,服务怎么配置。 1. 从官网下载第二个MySQL并安装 一般都是免安装版了,下载解压到某个文件目录下(路径中尽量不要带空格或中文),再新建一个my.ini文件(或…

怎么看待数字化转型是大势所趋?

怎么看到数字化转型是大势所趋?下面我结合最新数据给大家讲明白这个事。 近日,我通过大量的数据相关性分析,有了一些关键发现。 【数字化转型】之所以势在必行,主要是因为数字化转型为各个国家数字经济发展提供了重要的参考依据。…

网络通信与并发编程(一)网络通信、osi五层模型、tcp协议的三次握手与四次挥手

网络通信、osi五层模型、tcp协议的三次握手与四次挥手 文章目录 网络通信、osi五层模型、tcp协议的三次握手与四次挥手一、网络通信二、osi五层模型1.物理层2.数据链路层3.网络层4.传输层5.应用层 三、tcp协议的三次握手与四次挥手 一、网络通信 网络通信是指在网络中的两个或…

cuda入门学习

最近接触cuda 编程,记录一下。 1 工作实现一个【0-100)的加法 如果用python sum 0 for i in range(200):sumi print(sum)2 cuda 的一些简单的概念 一维情况下大概是这样的 (1个grid * 2个blocks * 4个thread) 3 代码直接上代码 我把100分为20个b…

metahuman如何导入UE5

1.启动 通过EPIC启动UE5(UE5内置有Bridge, 但是UE4是需要单独下在Bridge软件) 2.打开Quixel Bridge 在window(窗口)中打开Quixel Bridge 3.Bridge界面 在弹出的Bridge界面选择模型 需要先下载,然后再导入 4.下载模型 点击需要的模型右上方的绿色箭头下载 5.下…

【论文#码率控制】ADAPTIVE RATE CONTROL FOR H.264

目录 摘要1.前言2.基本知识2.1 蛋鸡悖论2.2 基本单元的定义2.3 线性MAD预测模型 3.GOP级码率控制3.1 总比特数3.2 初始化量化参数 4.帧级码率控制4.1 非存储图像的量化参数4.2 存储图像的目标比特 5.基本单元级码率控制6.实验结果7.结论 《ADAPTIVE RATE CONTROL FOR H.264》 A…

OKHTTP 如何处理请求超时和重连机制

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。 😊 座右铭:不…

【ELKB】Kibana使用

搭建好ELKB后访问地址:http://localhost:5601 输入账号密码登录以后 左侧导航有home、Analysis、Enterprise search 、Observability、Security、Management home:首页Analysis:工具来分析及可视化数据Enterprise search:企业级搜…

解读《ARM Cortex-M3 与Cortex-M4 权威指南》——第1章 ARM Cortex-M处理器简介

1. 三级流水线设计 解释:三级流水线设计意味着处理器在执行指令时可以同时处理多个步骤。这些步骤通常包括取指(Fetch)、译码(Decode)和执行(Execute)。好处:这种设计提高了指令的执行效率,使得处理器能够在每个时钟周期内完成更多的工作,从而提升整体性能。2. 哈佛总…

分享一些常用的数据库性能监测工具

以下是一些常用的数据库性能监测工具: 一、MySQL MySQL Enterprise Monitor: 由 MySQL 官方推出,提供全面的数据库性能监控、诊断和优化功能。可以监控数据库的各种指标,如查询性能、连接数、缓存命中率等,并提供警报…

yolo参数调节

1-weight 不同版本的神经网络 可以在这下载复制 2 source图片路径或者文件夹路径 3 img size 尺寸(尽量与神经网络模型匹配) 4 4 -conf-thres 简单理解就是模型识别成功概率超过这一标准才会显示 5 iou多区域重合 (重合比例)…

数学科普读物《从毕达哥拉斯到怀尔斯》

毕达哥拉斯是古希腊数学家,怀尔斯是英国数学家,曾任美国普林斯顿大学教授。这本书是哈工大出版社刘培杰先生主编的。这是一本500多页的书,我不禁慨叹高级数学爱好者刘培杰的博学广识,因为书中纵论古今旁征博引,仅书后的…

数据结构-5.6.二叉树的先,中,后序遍历

一.遍历: 二.二叉树的遍历:利用了递归操作 1.简介: 二叉树的先序遍历,中序遍历,后序遍历都是以根结点遍历顺序为准的,如先序遍历就先遍历根结点 2.实例: 例一: 例二: …

C++中string函数用法总结

一,string的构造函数 string() //无参构造,初始化为空串 string(const string& str) //用str拷贝构造 string(size_t n,char c) //用n个字符c初始化 string(const char* s,size_t n) //用字符串s的前n个字符初始化 string(const string& str…

【最优化方法】最速下降法

给出点 x [1,4,5,8,12] y [7,9,15,14,27] 要找出温度和冰淇淋销量之间的关系,通过线性回归来拟合求出属性和结果之间的线性关系。 如果直接把这些点连起来,是吃力不讨好的,因为如果有新数据进来大概率不在这条线上,这个行为也…

Prometheus + Grafana 监控 MySQL 数据库

文章目录 1、前置介绍2、搭建流程2.1、安装 Docker2.2、安装 MySQL2.3、安装 MySQL Exporter2.4、安装 Prometheus2.5、安装 Grafana 1、前置介绍 本次监控平台搭建,我使用2台阿里云服务器来完成本次的搭建部署操作,配置如下: 阿里云ECS1&am…