重点关注点:知道如何生成Chirp信号,在Matlab和Python中使用FFT和功率谱密度(PSD)计算其傅里叶变换。
介绍
到目前为止讨论的所有信号的频率都不会随时间变化。获取时变频率的信号是这里的重点。频率随时间变化的信号称为“chirp”。啁啾信号的频率可以从低频变为高频(up-chirp)或从高频变为低频(low chirp)。
观察
啁啾信号/特征在雷达、声纳、扩频、光通信、图像处理、多普勒效应、钟摆运动、引力波、调频(FM)、回波定位等许多应用中都会遇到[1]等。
数学描述:
线性啁啾信号线性地将频率从低频扫到高频(或vice-versa)。产生啁啾信号的一种方法是将一系列正弦波分段串联起来,每个正弦波段的频率依次递增(或递减)。这种方法由于每个这样的分段的相位失配,在啁啾信号中引入了不连续性。修改正弦方程以产生啁啾信号是一种更好的方法。
产生振幅正弦(此处为余弦)信号的方程式A类,角频率和初始阶段是
这可以写成瞬时相位的函数
哪里是正弦曲线的瞬时相位,它是线性时间.瞬时相位的时间导数等于角频率正弦曲线-在上述等式中为常数。
不要让相位在时间上呈线性,让我们将相位改为二次型,从而使其呈非线性。
对于一些常量.
因此,线性调频信号的方程采用以下形式,
相位的一阶导数,即瞬时角频率成为时间的函数,由下式给出
时变频率(赫兹)由下式给出
在上述方程中,频率不再是常数,而是具有时变性质,初始频率由因此,根据上述等式,给定一个持续时间T型,频率变化率由下式给出
哪里,是扫描的起始频率,是持续时间结束时的频率T型.
替换(7)&(8)在里面(6)
发件人(6)和(8)
其中是一个常数,将用作扫描的初始阶段。
因此,产生啁啾信号的修正方程(从方程(5)和(10))由提供
其中,时变频率函数由下式给出
Chirp信号的生成,使用FFT和功率谱密度(PSD)在Matlab中计算其傅里叶变换,如需Python代码,请参阅本书使用Python的数字调制.
在不使用Matlab中内置的“线性调频”函数的情况下生成线性调频信号:
使用方程式实现描述啁啾的函数(11)和(12)。扫描的起始频率为以及时间频率是.初始阶段在以下函数中构成参数的最后一部分
函数x=mychirp(t,f0,t1,f1,相位)%Y=mychirp(t,f0,t1,f1)生成线性扫描频率的样本%时基数组t中定义的时间实例的信号。瞬时%时间0时的频率为f0赫兹。瞬时频率f1%在时间t1实现。%参数“phase”是可选的。它定义了%信号以弧度衰减。默认相位=0弧度如果nargin==4相位=0;结束t0=t(1);T=t1-t0;k=(f1-f0)/T;x=cos(2*pi*(k/2*t+f0).*t+相位);结束
下面的包装器脚本使用上述函数,并生成一个具有起始频率的chirp在时基开始时在这是时基的结束。从PSD图可以确定信号能量仅集中在25赫兹
fs=500;%采样频率t=0:1/fs:1;%时基-最多1秒f0=1;%啁啾起始频率f1=fs/20;%t1=1秒时的啁啾频率x=mychirp(t,f0,1,f1);子区(2,2,1)图(t,x,‘k’);标题([“啁啾声信号”]);xlabel(“时间”);ylabel(“振幅”);
FFT和功率谱密度
与前几篇文章中描述的其他信号一样,让我们绘制生成的chirp信号的FFT及其功率谱密度.
L=长度(x);NFFT=1024;X=偏移(fft(X,NFFT));Pxx=X.*conj(X)/(NFFT*NFFT);%具有适当缩放的计算能力f=fs*(-NFFT/2:NFFT/2-1)/NFFT;%频率矢量子区(2,2,2)图(f,abs(X)/(L),‘r’);标题(“FFT幅度”);xlabel(“频率(Hz)”)ylabel(‘震级|X(f)|');xlim([-50 50])Pxx=X.*conj(X)/(NFFT*NFFT);%具有适当缩放的计算能力子区(2,2,3)图(f,10*log10(Pxx),‘r’);标题(“双面-功率谱密度”);xlabel(“频率(Hz)”)ylabel(“功率谱密度-P_{xx}dB/Hz”);xlim([-100 100])X=快速傅里叶变换(X,NFFT);X=X(1:NFFT/2+1);%NFFT/2后抛出样本进行单面打印Pxx=X.*conj(X)/(NFFT*NFFT);f=fs*(0:NFFT/2)/NFFT;%频率矢量子区(2,2,4)图(f,10*log10(Pxx),‘r’);标题(“单面-功率谱密度”);xlabel(“频率(Hz)”)ylabel(“功率谱密度-P_{xx}dB/Hz”);
参考文献:
[1]帕特里克·弗兰德林(Patrick Flandrin),《到处唧唧喳喳》,CNRS——里昂师范学院
本章主题
作者的书籍