m基于MATLAB的通信系统仿真,包括信号源,载波信号,放大器,带宽滤波器,接收端包括放大器,带宽滤波器,载波解调,低通滤波器等

news2025/7/13 8:13:09

目录

1.算法概述

2.仿真效果预览

3.MATLAB部分代码预览

4.完整MATLAB程序


1.算法概述

Interference : 200KHz

Signal source: 需要在给出的一个excel 文档里调用,我对应的信号是第二竖栏,就是从B1到B60

里面所有的filter(滤波器)都是自己来选值,但必须和图里要求的一样,band-pass filter 只能用带通滤波器,不可用其他代替。Low-pass filter(低通滤波器)是同样的道理。

Scaling factor为-20,

Noise为随机向量*0.3,

Interference为200khz。

 这个部分主要分为放大器,带宽滤波器,载波解调,原始的信号。

2.仿真效果预览

matlab2022a仿真

 

 

 

 

 

 

 

3.MATLAB部分代码预览

.................................................
%STEP1 发送端
%信号源
SINGNALS=xlsread('Signals.xls','Sheet1','B1:B600');
figure(1)
subplot(511),plot(SINGNALS),title('原始的信号');
 
%乘以载波
N = 20                       % Set the number of signal samples
Freq = 250000;                 % 250k
dt = 1/(N*Freq);               % Set the sample time
SimTime = 600/Freq;              % Set simulation time to 3 periods of the signal
t = dt:dt:SimTime;              % Create Time vector(from 0 upto SimTime)
Carrier= sin(2*pi*Freq*t);  
subplot(512),plot(Carrier),title('调制载波');
 
%信号采样化
for i = 1 : length(Carrier)-1
SINGNALS1(i) = SINGNALS(floor(i/20)+1);
end
SINGNALS1(length(Carrier)) = SINGNALS1(length(Carrier)-1);
 
SINGNALS2=SINGNALS1.*Carrier;
% SINGNALS2=SINGNALS1.*Carrier + SINGNALS1.*Carrier.*Carrier;
subplot(513),plot(SINGNALS2),title('信号调制信号');
 
%放大
SINGNALS3=15*SINGNALS2;
subplot(514),plot(SINGNALS3),title('模拟放大信号');
 
%带通滤波器
order = 4;
wn = [0.01 0.1];
[B,A]=butter(order,wn);
SINGNALS4 = filter(B,A,SINGNALS3);
subplot(515);plot(SINGNALS4),title('带通滤波后的信号');
 
 
 
%STEP2 信道
figure(2)
 
alpha = -20;                               % scaling factor
noise = 0.3*randn(1,length(SINGNALS4));    % Generate a random number
subplot(211);plot(noise);
 
N2 = N;                                    
Fre = 200000;                              % Set the frequency of the signal
dt2 = 1/(N2*Fre);                          % Set the sample time
SimTime2 = 600/Fre;                        % Set simulation time to 3 periods of the signal
t2 = dt2:dt2:SimTime2;                     % Create Time vector(from 0 upto SimTime
 
interference = sin(2*pi*Fre*t2);           % Determine the sinusoidal function for interference
output_sig   = SINGNALS4.* alpha;
 
SINGNALS5 = output_sig + noise + interference;
 
subplot(212);plot(SINGNALS5);
 
%STEP3 接收端
figure(3);
a2=6;
SINGNALS6 = a2*SINGNALS5;
order2 = 4;
wn2 = [0.01 0.1];
[B2,A2]=butter(order2,wn2);
SINGNALS7 = filter(B2,A2,SINGNALS6);
subplot(311);plot(SINGNALS7),title('接收端后的低通滤波信号');
SINGNALS8=-SINGNALS7.*Carrier;  
% SINGNALS8= SINGNALS7.*Carrier;
subplot(312);plot(SINGNALS8),title('解调信号');
wn1 = 0.1;
order1 = 10; % Filter Order
[C,D] = butter(order1,wn1,'low'); % create the fourth order butterworth filter
SINGNALS9 = filter(C,D,SINGNALS8);
subplot(313);plot(SINGNALS9),title('还原后的信号');
figure(4)
subplot(211);plot(SINGNALS);title('系统发送接收信号的对比');
subplot(212);plot(SINGNALS9);axis([0,length(Carrier),0,5000]);
01-29m

4.完整MATLAB程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

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

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

相关文章

驱动 私有数据传参点灯

1.在串口工具进行输入: echo 1 > /dev/myled0 ---->led1灯点亮 echo 0 > /dev/myled0 ---->led1灯熄灭 echo 1 > /dev/myled1 ---->led1灯点亮 echo 0 > /dev/myled1 ---->led1灯熄灭 echo 1 > /dev/myled2 ----…

243 h160 相交链表

题解 本题关键: acbbca // 243 h160 相交链表public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode pointAheadA,pointBheadB;int rount2;while (rount>0){if (pointApointB){return pointA;}pointApointA.next;pointBpointB.next;if (pointAnul…

【树莓派不吃灰】命令篇⑥ 了解树莓派Boot分区,学习Linux启动流程

目录1. Linux启动过程1.1 内核引导1.2 运行init初始化进程 —— 初始化系统环境1.3 运行级别 —— runlevel1.4 系统初始化 —— 加载开机启动程序1.5 用户登录1.5.1 方式1:命令行登录1.5.2 方式2:ssh登录(常用)1.5.3 方式3&#…

[附源码]计算机毕业设计JAVA恒星学院网络计费系统

[附源码]计算机毕业设计JAVA恒星学院网络计费系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM my…

Lingo软硬件划分 实例

文章目录一、SM2 加密算法软硬件划分1.1 实验目标1.2 实验过程(1) 综合考虑使得系统整体性能最(2)只考虑硬面积,即系统硬件面积最小(3)只考虑功耗,即系统功耗最小(4&…

SpringBoot实用开发篇复习4(实用开发篇完)

在上面一节,我们学习了SpringBoot整合第三方技术,这次我们主要学习监控技术,主要包含四个部分,分别为监控的意义,可视化监控平台,监控的原理,自定义监控指标等,下面一起来学习吧。 …

nodejs+vue+elementui前台美食网上订餐点菜系统 vscode项目

前端技术:nodejsvueelementui 前端:HTML5,CSS3、JavaScript、VUE 系统分为不同的层次:视图层(vue页面),表现层(控制器类),业务层(接口类)和持久层…

SSM框架+LayUi+Mysql实现的物流配送管理系统(功能包含分角色,登录/注册、车辆管理/路线管理/运单管理/调度安排/信息管理等)

博客目录SSM框架LayUiMysql实现的物流配送管理系统实现功能截图系统功能使用技术代码完整源码SSM框架LayUiMysql实现的物流配送管理系统 本系统为了解决物流平台的配送难题,将司机/物流配送的整体流程话,便于物流公司的统一管理,提高了物流日…

JUC学习笔记——共享模型之内存

在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的内存部分 我们会分为以下几部分进行介绍: Java内存模型可见性模式之两阶段终止模式之Balking原理之指令级并行有序性volatile原理 Java内存模型 我们首先来介绍一下Java内存模型&#xf…

博途1200PLC编码器速度信号采集和滤波处理

速度估算有M法和T法测速2种常用方法,工业控制PLC上基本采用M法测速,M法测速的详细原理,这里不再赘述。感兴趣的可以参看下面的文章链接: PLC通过编码器反馈值计算速度的推荐做法(算法解析+ST代码)_RXXW_Dor的博客-CSDN博客PLC如何测量采集编码器的位置数据,不清楚的可以…

spring框架源码十七、Bean对象创建子流程

Bean对象创建子流程Bean对象创建子流程new ClassPathXmlApplicationContextClassPathXmlApplicationContext#ClassPathXmlApplicationContext(java.lang.String)ClassPathXmlApplicationContext#ClassPathXmlApplicationContext(java.lang.String[], boolean, org.springframew…

冒泡事件在Vue中的应用

什么是事件冒泡? 一想到“冒泡”这两个词会想到什么?想必然,那就是气泡自下而上的从水底往上生的场景,但是我们也知道,水在往上升的过程中,也会经历不同的高度。由此场景,那么想必然&#xff0c…

JavaEE 进阶:Spring 核⼼与设计思想

文章目录一、Spring 是什么1、什么是容器2、什么是 IoC① 传统程序开发Ⅰ 轮胎尺寸固定a. 代码b. 缺陷Ⅱ 轮胎尺寸改变a. 代码b. 缺陷② 控制反转式程序开发Ⅰ 控制反转Ⅱ 需求增加Ⅲ 优点③ 对⽐总结规律3、理解 Spring IoC4、DI 概念说明一、Spring 是什么 Spring是当前Java…

Windows安装nginx

Windows安装nginx1.下载Nginx2.Nginx的使用2.1 修改nginx.conf2.2 启动nginx3.可能出现的问题观前提示: 本文所使用的系统Windows10。 1.下载Nginx Nginx官网,点击download下载 根据需求下载自己所需版本,这里我下载的是稳定版本 2.Nginx的…

链表

章节目录:一、链表1.1 概述二、单向链表2.1 实现思路2.2 代码示例三、双向链表3.1 实现思路3.2 代码示例四、单向环形链表4.1 约瑟夫问题4.2 实现思路4.3 代码示例五、结束语一、链表 1.1 概述 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元…

谷粒学院(一) 项目环境搭建

一、数据库设计 数据库设计规约 以下规约只针对本模块,更全面的文档参考《阿里巴巴Java开发手册》:五、MySQL数据库 1、库名与应用名称尽量一致 2、表名、字段名必须使用小写字母或数字,禁止出现数字开头, 3、表名不使用复数名…

idea导入springboot项目运行教程

前置要求 ①具备Java环境,并且可以通过Maven进行安装项目依赖; ②具备IntelliJ IDEA工具,推荐专业版,社区版也不影响; ③具备Mysql5.7或以上版本数据库; ④具备Navicat数据库可视化管理工具;…

力扣(LeetCode)14. 最长公共前缀(C++)

模拟 取出 strsstrsstrs 的第一个字符串 strs[0]strs[0]strs[0] , 遍历strs[0]strs[0]strs[0] , 依次比较所有串的当前位置的字符,是否和 strs[0]strs[0]strs[0] 的当前字符相同。 代码展示 class Solution { public:string longestCommon…

现代修谱,如何处理族员离婚再娶,配偶携子改嫁同服弟等情况

现代修谱的那些糟心事 现代修谱过程中,会遇到各种突发情况以及非常棘手的问题。比如说族员离婚再娶,配偶携子改嫁同服弟的情况,族谱该如何记载?很多人都以为这是笔者在说笑,但这种情况在修谱时,不能说很难…

Qt源码解析11-QLineEdit与QValidator关系源码解析

Qt源码解析 索引 Qt源码解析11-QLineEdit与QValidator关系源码解析 测试 本想了解QRegExpValidator的正则表达式如何生效的,发现分析起来比想象的复杂。 测试实例: // regexp: optional - followed by between 1 and 3 digitsQRegExp rx("-?\…