热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

matlab编写单路扫频,MATLAB产生任意信号波形(多周期线性扫频信号)

目录一、背景二、MATLAB代码2.1、单周期时间设置2.2、三个周期的时间设置2.3、全部MATLAB代码2.4、加上频谱2.5、仿真结果一、背景写论文时需要仿真多个周期的线性扫

目录

一、背景

二、MATLAB代码

2.1、单周期时间设置

2.2、三个周期的时间设置

2.3、全部MATLAB代码

2.4、加上频谱

2.5、仿真结果

一、背景

写论文时需要仿真多个周期的线性扫频信号,但是网上的代码多是一个周期,后面试了挺多方法的,后面使用MOD函数对时间t求余实现多个周期循环。

二、MATLAB代码

2.1、单周期时间设置

单周期时间设置:仿真的单周期时间默认为1,如果修改单周期时间为x,修改1为x,同时修改mod(t,1)为mod(t,x),即是对x求余即可实现以x为周期的多周期波形。

t=0:0.00001:1-0.00001;%单个周期时间设置

2.2、三个周期的时间设置

三个周期的时间设置,其他n个周期可以对应修改3为n即可产生n个周期的波形

t=0:0.00001:3-0.00001;%3个周期时间设置

2.3、全部MATLAB代码

t=0:0.00001:3-0.00001;%3对应3个周期,0.00001为精度

f0=5;%扫频起始频率

fe=100;%扫频截止频率

x=chirp(mod(t,1),f0,1,fe);%1代表的是单周期时间

subplot(3,1,1);plot(t,x);title('三个周期的线性扫频信号波形');xlabel('时间(s)');ylabel('幅度(V)');

ft=f0+(fe-f0)*mod(t,1);

subplot(3,1,2);plot(t,ft);title('线性扫频信号频率-时间图');xlabel('时间(s)');ylabel('频率(Hz)');

2.4、加上频谱

如果想要加上频谱。因为求频谱时对多个周期求频谱有一些问题,所以这里针对单周期进行求频谱。之前的代码有问题,修改:

subplot(3,1,3);plot(f(1:N/2),cxf(1:N/2)); axis([0 150 0 1]);

为plot(cxf),可以直接对cxf进行画图即可。下面是修改后的代码。

subplot(3,1,3);plot(cxf); axis([0 150 0 1]);

t=0:0.00001:3-0.00001;%3对应3个周期,0.00001为精度

f0=5;%扫频起始频率

fe=100;%扫频截止频率

x=chirp(mod(t,1),f0,1,fe);%1代表的是单周期时间

subplot(3,1,1);plot(t,x);title('三个周期的线性扫频信号波形');xlabel('时间(s)');ylabel('幅度(V)');

ft=f0+(fe-f0)*mod(t,1);

subplot(3,1,2);plot(t,ft);title('线性扫频信号频率-时间图');xlabel('时间(s)');ylabel('频率(Hz)');

t=0:0.00001:1;%求频谱时不能对多周期的求,对1个周期进行FFT

x=chirp(t,f0,1,fe);

C1=fft(x); %对载波信号进行傅里叶变换

cxf=abs(C1); %进行傅里叶变换

cxf=cxf/max(cxf);%归一化

% subplot(3,1,3);plot(f(1:N/2),cxf(1:N/2)); axis([0 150 0 1]); %错误代码

subplot(3,1,3);plot(cxf); axis([0 150 0 1]); %正确代码

title('线性扫频信号归一化频谱');xlabel('频率(Hz)');ylabel('功率');

2.5、仿真结果

仿真结果(3个周期的起始频率为5,结束频率为100):

f1795ed7afd27416a1d62cde3ef3d374.png



推荐阅读
  • 本文详细介绍如何在Vue项目中通过Element UI组件库实现对输入框占位符(placeholder)值的获取,以及数据绑定和查询的基本方法。文章将涵盖v-model双向绑定、el-form表单配置等核心内容。 ... [详细]
  • 解决Element UI中Select组件创建条目为空时报错的问题
    本文介绍如何在Element UI的Select组件中使用allow-create属性创建新条目,并处理创建条目为空时出现的错误。我们将详细说明filterable属性的必要性,以及default-first-option属性的作用。 ... [详细]
  • 本题要求将由小写字母组成的字符串划分为多个片段,确保每个字母只出现在一个片段中。目标是生成尽可能多的片段,并返回每个片段的长度列表。本文将详细解释问题描述、解题思路及代码实现。 ... [详细]
  • 本文介绍如何调整Element UI组件的边框样式,以确保内容与边框之间有足够的间距,并展示如何通过CSS实现更好的布局效果。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • Unity编辑器插件:NGUI资源引用检测工具
    本文介绍了一款基于NGUI的资源引用检测工具,该工具能够帮助开发者快速查找和管理项目中的资源引用。其功能涵盖Atlas/Sprite、字库、UITexture及组件的引用检测,并提供了替换和修复功能。文末提供源码下载链接。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • 探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ... [详细]
  • 本文介绍了如何使用 Python 的 Matplotlib 和 Pandas 库进行数据可视化。通过示例代码展示了折线图、柱状图和水平柱状图的创建方法,并解释了图表参数设置的具体细节。 ... [详细]
  • 利用生成对抗网络生成多标签离散电子健康记录
    本文探讨了通过生成对抗网络(GAN)生成合成电子健康记录(EHR)的方法,旨在解决隐私保护问题并促进医学研究。论文地址为:https://arxiv.org/abs/1703.06490v1。该方法通过生成高维离散变量的综合EHR数据,显著提升了医学研究中的数据可用性和安全性。 ... [详细]
  • 本文探讨了如何在iOS开发环境中,特别是在Xcode 6.1中,设置和应用自定义文本样式。我们将详细介绍实现方法,并提供一些实用的技巧。 ... [详细]
  • Kubernetes 持久化存储与数据卷详解
    本文深入探讨 Kubernetes 中持久化存储的使用场景、PV/PVC/StorageClass 的基本操作及其实现原理,旨在帮助读者理解如何高效管理容器化应用的数据持久化需求。 ... [详细]
  • 本文介绍如何利用 Python 中的 NumPy 和 Matplotlib 库,从 NumPy 数组中绘制线图。通过具体的代码示例和详细解释,帮助读者理解并掌握这一技能。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 本文介绍如何使用.NET Framework开发一个简单的Windows Forms应用程序,以实现图形在窗口内的动态移动。文章详细描述了代码结构、关键逻辑以及最终的实现效果。 ... [详细]
author-avatar
何氏眼科-李剑华_951_745
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有