线性扫频(转载)

转载自:Sweep扫频信号的数学表达式_jiespider的博客-CSDN博客_扫频信号波形Sweep wave数学表达式,Labview,Matlab,NIhttps://blog.csdn.net/jiespider/article/details/115360115

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函数来实现都行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值