Sweep扫频信号的数学表达式
Sweep扫频信号的数学表达式
近期,因评估测试中需要实现一个满足特定时延的上升(Linear rising up)、下降沿(exp-falling down)的电平信号,在实现过程中用到了NI的模拟输出卡,由于平时测试过程中也需要使用Sweep Sine Wave信号,顺便了解了一下Sweep Wave的实现方式,以便以后可以实现Labview控制NI模拟输出卡输出Sweep扫频信号。
提示:以下内容是基于个人经验做的学习记录,所提供的案例仅供参考,错误之处欢迎指正。
一、为什么需要Sweep信号
为了评估某产品的在某一频率范围内的频率响应情况,就需要给产品施加各频率点的输入信号,而实际不可能在一次测试过程中只施加单个频率的输入信号进行测试,这个时候就需要用到Sweep信号,即扫频信号。
二、如何生成模拟Sweep信号
1.使用Matlab中的chirp函数可自动生成Sweep信号
Matlab中的chirp函数生成的是cos sweep波形。
Matlab代码如下(示例):
PI=3.1415926535898;
f0=2;%初始频率
fe=50;%结束频率
fs=10000;%采样频率
dT=1;%一个周期时间长度
t0=0:1/fs:dT*1;%1对应1个周期
y=chirp(mod(t0,dT),f0,dT,fe);%使用Matlab chirp生成啁啾([zhōu jiū])信号
% Y = CHIRP(T,F0,T1,F1) generates samples of a linear swept-frequency
% signal at the time instances defined in array T. The instantaneous
% frequency at time 0 is F0 Hertz. The instantaneous frequency F1
% is achieved at time T1. By default, F0=0, T1=1, and F1=100.
2.利用数学表达式生成Sweep信号
数学式cos(2* PI * f0 * t) 表示频率固定为f0的cos波形;
要生成一个频率从f0经过时间dT就可以线性增加到fe的cos波形,就需要cos波形在时间t点的频率为F(t)=f0+K0*t,(K0为频率变化率(fe-f0)/dT);
将cos波形的瞬时频率看作是其相位的微分,则相位就是频率的积分。
对F(t)=f0+K0*t积分可得f0 * t+0.5 * K0 t * t,乘上2PI就可得时间t点对应cos波形的相位φ。
cos(φ)代入上述推导出的时间t点的相位表达式,可得频率线性增加的cos 扫频波形的数学表达式。
Matlab代码如下(示例):
%使用数学函数式生成啁啾信号
t1=0:1/fs:dT;
K0=(fe-f0)/dT;%频率线性增长率
% cos(2*PI*f0*t) 表示频率为f0的cos波形,2*PI*f0*t表示当前波形相位,
%瞬时频率为F(t)=f0+K0*t,则当前相位为瞬时频率的积分---> 2*PI*(f0*t+0.5*K0*t*t)
pts=cos(2*PI*(f0.*t1+0.5*K0.*t1.*t1));
%pts=sin(2*PI*(f0.*t1+0.5*K0.*t1.*t1)+0.5*PI);
最后生成波形与Matlab自带的chirp生成的波形对比,验证一下效果。
% subplot(2,1,1);
matPlot0=plot(t0,y);
hold all
cusPlot0=plot(t1,pts);set(cusPlot0,'color','blue','LineWidth',1.5);
set(matPlot0,'color','red','LineWidth',0.5);
set(0,'DefaultAxesLineStyleOrder','-|:|-.|--');
title('Linear Sweep Signal');
如下图,数学表达式生成的波形(蓝色)和Matlab自带的chirp生成的波形(红色)完美重合!
总结
以上就是对Sweep波形的数学表达式的推导与验证。至于sine波形的Sweep信号,cos波形和sine波形只相差1/2*PI的初始相位,其他是一样的,平移初始相位或更换为sine函数来实现都行。
Sweep扫频信号的数学表达式相关推荐
- Qt计算器开发(二):信号槽实现数学表达式合法性检查
表达式的合法性 由于我们的计算器不是单步计算的,所以我们能够一次性输入一个长表达式.然而假设用户输入的长表达式不合法的话,那么就会引发灾难.所以有必要对于用户的输入做一个限制. 一些限制举例: 比方, ...
- sinusoidal sweep正弦扫频信号
相对于单音信号,正弦扫频信号即为在一定的频段范围内频率连续变化的信号.正弦扫频信号可作为系统激励和测取系统传递函数的较好方法.它主要实现对元器件.电路及整机的频率特性的测试,广泛应用在科研及生产等多个 ...
- 【Matlab项目实战】Sine Sweep(正弦扫频信号)
原来有个博主写的python代码,我这里改成matlab了 clc;clear all; samplingrate = 44100; sweeptime = 1; f0 = 20; f1 = 200; ...
- Stack应用 - 数学表达式(Balanced parentheses)括号完全匹配
概念 数学表达式常常包含括号,如何确保正确的括号嵌套,有很多算法可以实现.今天介绍一种较为简单的算法,主要用到Python中Stack(堆栈)的概念. 实用list基础数据类型实现栈.众所周知,栈的主 ...
- 了解一下chirp,扫频信号的生成
了解一下chirp,扫频信号的生成 参考 chirp信号作为测试激励信号,用处很多,搜索了一下也有很多成熟的应用,如matlab和python都能生成,可以从scipy-chirp 获取示例代码自己来 ...
- Vivado调用DDS IP核实现扫频信号
一.实验目的 1.熟悉 FPGA 硬件开发平台. 2.学习 DDS IP 核的调用和配置. 3.熟悉 Vivado 的操作流程. 4.掌握 Verilog HDL 的基本语言逻辑. 二.实验仪器 FP ...
- 数学表达式一键变图,CMU开发实用工具Penrose,堪称图解界LaTeX(附链接)
来源:七月在线实验室 本文长度为2000字,建议阅读5分钟 本文为大家介绍了卡内基梅隆大学开发的一款可自动生成的新工具. 有 A.B 两个集合,A 与 B 相交,C 是 A 与 B 的交集,分别将三个 ...
- 数学表达式解析器简介
2019独角兽企业重金招聘Python工程师标准>>> 在实际项目开发中如果需要解析数学公式,无须再运用解释器模式进行设计,可以直接使用一些第三方解析工具包,它们可以统称为数学表达式 ...
- Matplotlib 中文用户指南 4.6 编写数学表达式
编写数学表达式 原文:Writing mathematical expressions 译者:飞龙 协议:CC BY-NC-SA 4.0 你可以在任何 matplotlib 文本字符串中使用子 TeX ...
最新文章
- AIO+BIO+NIO+同步+异步+阻塞+非阻塞
- Nature | 基于单细胞RNA测序绘制人类肺组织分子细胞图谱,成功鉴定多种未知细胞类型...
- Ubuntu下安装JDK1.8并配置开发环境
- jeecg中的树形控件demo
- FreeRTOS源码分析与应用开发04:消息队列
- U3D AND UDK 各自特点
- 基于FPGA的数字电压表设计
- 深度解析 steam密码js逆向(篇幅很长)
- pgadmin4 如何改成中文版
- python中相对路径怎么写,python相对路径写法
- 中国十大电商网站优势与劣势分析
- 荣耀20公测鸿蒙,荣耀 20、30 系列等机型,将开始逐步适配华为鸿蒙系统
- Android系统的指纹开发
- Progressive Scanning (逐行扫描) vs Interlaced Scanning (隔行扫描)
- Transact-SQL(T-SQL)编程
- 公有云成本节省神器!京东云共享带宽包正式上线
- trainging contest#1(2011大连现场赛)C BY bly
- oracle 证件脱敏存储过程
- 528_计算圆弧上某一点的坐标
- JAVA编程求单源最短路径_【算法】单源最短路径——dijkstra算法