主要内容

시간-주파수분석에대한실용적입문

이예제에서는기본적시간—주파수신호분석을수행하고해석하는방법을보여줍니다。실제응용사례에서많은신호가비정상적(非平稳)입니다。이는이러한신호의주파수영역표현(스펙트럼)이시간이지남에따라달라진다는것을의미합니다。이예제에서는신호의주파수영역또는시간영역표현에서시간-주파수기법을사용하는경우얻을수있는이점에대해다룹니다。다음과같은기본적질문에대한답을제시합니다。“내신호에서특정주파수성분이언제나타납니까?“시간또는주파수분해능을높이려면어떻게해야합니까?”“성분의스펙트럼을매끄럽게하거나특정모드를추출하려면어떻게해야합니까?”' '시간-주파수` ` `현에서전력을측정하려면어떻게해야합니까?“내신호의시간-주파수정보를시각화하려면어떻게해야합니까?”“관심있는신호의주파수성분에포함된간헐적간섭을찾아내려면어떻게해야합니까?

시간-주파수분석을사용하여DTMF신호에서번호식별하기

거의모든시변신호는정상(静止)신호로간주하기에충분할정도로짧은시간구간으로나눠질수있습니다。시간-주파수분석은신호를이러한짧은구간으로분할하고슬라이딩윈도우에대한스펙트럼을추정하는방식으로수행되는것이가장일반적입니다。pspectrum함수를的谱图옵션과함께사용하면각슬라이딩윈도우에대해FFT기반스펙트럼추정값을계산하고신호의주파수성분이시간이지남에따라어떻게변화하는지시각화할수있습니다。

디지털전화다이얼의신호시스템을살펴보겠습니다。이러한시스템에서생성되는신호를이중톤다중주파수(dtmf)신호라고합니다。각각의눌린번호에서생성되는소리는2개의상호배타적인주파수집단에서가져온주파수를갖는2개의정현파 - ,즉2개의톤 - 의합계로구성됩니다。각각의톤쌍은저주파수무리의주파수하나(697 hz, 770 hz, 852 hz또는941 hz)와고주파수무리의주파수하나(1209 hz, 1336 hz또는1477 hz)를포함하며,고유한기호를나타냅니다。다음은전화패드의버튼에할당된주파수입니다。

DTMF신호를생성하고이를들어봅니다。

[tones, Fs] = helperDTMFToneGenerator();p = audioplayer(音调,Fs,16);玩(p)

신호를들어보면3자리번호를눌렀음을알수있습니다。그러나어떤번호지는알수없습니다。다음으로,신호를시간영역과650 hz ~ 1500 hz대역의주파수영역에서시각화합니다。사각윈도우를사용하고주파수분해능을개선하기위해pspectrum함수의“漏”파라미터를1로설정합니다。

N =数字(音调);t = (0:N-1)/Fs;Subplot (2,1,1) plot(1e3*t,tones) xlabel(“时间(ms)”) ylabel (“振幅”)标题(DTMF信号的) subplot(2,1,2) pspectrum(tone,Fs,“漏”, 1“FrequencyLimits”(650、1500))

图中包含2个轴对象。标题为DTMF Signal的Axes对象1包含一个类型为line的对象。标题为Fres = 7.8144 Hz的Axes对象2包含一个line类型的对象。

신호의시간영역플롯을보면3개의눌러진버튼에해당하는3개의에너지버스트가있음을알수있습니다。버스트길이를측정하려면RMS포락선의펄스폭을구하면됩니다。

Env =信封(音调,80,“rms”);脉冲宽度(env, Fs)
ans =3×10.1041 0.1042 0.1047
标题(“均方根包络的脉冲宽度”

图脉冲宽度图包含一个轴对象。标题为“RMS Envelope脉冲宽度”的axis对象包含10个类型为patch、line的对象。这些对象表示脉冲宽度、信号、中间交叉、上边界、上状态、下边界、中间参考、下状态。

길이가각각대략100밀리초marketing펄스3개를볼수있습니다。그러나,어떤번호를눌렀는지는알수없습니다。주파수영역플롯은신호에존재하는주파수를보여주기때문에이를파악하는데도움이됩니다。

4개의서로다른주파수대역에서평균주파수를추정하여주파수피크를찾습니다。

f = [meanfreq(tones,Fs,[700 800]),...meanfreq(音调,Fs 900 [800]),...meanfreq(音调,Fs 1000 [900]),...meanfreq(音调,Fs 1400 [1300])];轮(f)
ans =1×4770 852 941 1336

추정된주파수를전화패드도식에맞춰보면,' 5 ',' 8 ',' 0 '이눌러진버튼임을알수있습니다。하지만,주파수영역플롯은버튼이눌러진순서를파악할수있는그어떤유형의시간정보도제공하지않습니다。이에대한가능한조합은' 580 ',' 508 ',' 805 ',' 850 ',' 085 '또는' 058 '입니다。이퍼즐을풀기위해pspectrum함수를사용하여스펙트로그램을계산하고신호의주파수성분이시간에따라어떻게달라지는지관찰합니다。

기본주파수성분만시각화하기위해,650 hz ~ 1500 hz대역에서스펙트로그램을계산하고전력수준이 - 10dB아래电表성분을제거합니다。톤의지속시간과시간톤의지속시간과시간역에서의해당위치를보기위해0%중첩을사용합니다。

pspectrum(音调,Fs,的谱图“漏”, 1“OverlapPercent”0,...“MinThreshold”, -10,“FrequencyLimits”(650、1500));

图脉冲宽度图包含一个轴对象。标题为Fres = 45.7145 Hz, Tres = 21.875 ms的axis对象包含一个image类型的对象。

스펙트로그램의색은주파수전력수준을부호화합니다。노란색은전력이높은주파수성분을나타내고,파란색은전력이매우낮은주파수성분을나타냅니다。진한노란색가로줄은특정주파수에서톤이존재함을나타냅니다。이플롯은눌러진3개의번호에모두1336 hz톤이존재한다는것을명확히보여주므로번호가모두키패드의두번째열에있다는것을알수있습니다。플롯을보면가장낮은주파수770Hz를가장먼저눌렀음을알수있습니다。가장높은주파수941Hz가그다음이고,중간주파수852Hz가마지막입니다。따라서,누른번호는508입니다。

시간분해능과주파수분해능을절충하여신호에가장적합한@ @현구하기

pspectrum함수는신호를세그먼트로나눕니다。세그먼트가길수록주파수분해능이향상되고,세그먼트가짧을수록시간분해능이향상됩니다。세그먼트길이는“FrequencyResolution”파라미터와“TimeResolution”파라미터를사용하여제어할수있습니다。지정된주파수분해능값이나시간분해능값이없는경우,pspectrum은입력신호길이를기준으로시간분해능과주파수분해능간에적절한균형을찾으려고합니다。

다음에서살펴볼신호는태평양흰긴수염고래가부르는노래중짧게반복되는소리로구성되었으며,4 khz로샘플링되었습니다。

负载whaleTrillp = audioplayer(whaleTrill,Fs,16);玩(p)

짧게반복되는소리신호는일련의음조펄스로이루어집니다。이제시간신호와함께,분해능을지정하지않았을때와시간분해능을10밀리초로설정했을때pspectrum으로구한스펙트로그램을살펴보겠습니다。“漏”파라미터를1로설정하여사각윈도우를사용합니다。펄스의시간위치를국한하고자하기때문에중첩비율을0으로설정합니다。마지막으로, - 60 db의“MinThreshold”를사용하여스펙트로그램보기에서배경잡음을제거합니다。

t = (0:length(whaleTrill)-1)/Fs;图ax1 = subplot(3,1,1);plot(t,whaleTrill) ax2 = subplot(3,1,2);pspectrum (whaleTrill Fs,的谱图“OverlapPercent”0,...“漏”, 1“MinThreshold”, -60) colorbar (ax2,“关闭”) ax3 = subplot(3,1,3);pspectrum (whaleTrill Fs,的谱图“OverlapPercent”0,...“漏”, 1“MinThreshold”, -60,“TimeResolution”, 10e-3) colorbar(ax3,“关闭”) linkaxes (ax₁,ax2 ax3],“x”

图中包含3个轴对象。Axes对象1包含一个line类型的对象。axis对象2,标题Fres = 21.2767 Hz, Tres = 47 ms,包含一个图像类型的对象。标题为Fres = 100.0004 Hz, Tres = 10 ms的Axes对象3包含一个图像类型的对象。

pspectrum에서선택한47밀리초시간분해능은스펙트로그램에서짧게반복되는소리펄스를모두국한할만큼크기가작지않습니다。반면10밀리초시간분해능은짧게반복되는각소리펄스를시간영역에서특정시점으로충분히국한할수있습니다。이는몇몇펄스를확대해보면더명확하게알수있습니다。

xlim ([0.3 - 0.55])

图中包含3个轴对象。Axes对象1包含一个line类型的对象。axis对象2,标题Fres = 21.2767 Hz, Tres = 47 ms,包含一个图像类型的对象。标题为Fres = 100.0004 Hz, Tres = 10 ms的Axes对象3包含一个图像类型的对象。

이제큰갈색박쥐(Eptesicus fuscus)가발사한반향정위펄스로구성된신호를불러오겠습니다。이신호는7마이크로초의샘플링간격으로측정되었습니다。신호의스펙트로그램을분석합니다。

负载batsignalFs = 1/DT;图pspectrum (batsignal Fs,的谱图

图中包含一个轴对象。标题为Fres = 7.3336 kHz, Tres = 350 μs的轴对象包含一个图像类型的对象。

디폴트파라미터값으로구성된스펙트로그램에는4개의성긴시간-주파수리지가표시됩니다。각리지의주파수변동에대한자세한정보를얻기위해주파수분해능값을3千赫로줄입니다。

pspectrum (batsignal Fs,的谱图“FrequencyResolution”, 3 e3)

图中包含一个轴对象。标题为Fres = 3.0075 kHz, Tres = 854 μs的轴对象包含一个图像类型的对象。

이제주파수리지가주파수역에서특정주파수로더잘국한되었음을알수있습니다。그러나주파수분해능은시간분해능에반비례하기때문에,스펙트로그램의시간분해능이훨씬더작습니다。시간윈도우를평활화하기위해중첩을99%로설정합니다。“MinThreshold” - 60dB을사용하여원치않는배경성분을제거합니다。

pspectrum (batsignal Fs,的谱图“FrequencyResolution”3 e3,...“OverlapPercent”, 99,“MinTHreshold”, -60)

图中包含一个轴对象。标题为Fres = 3.0075 kHz, Tres = 854 μs的轴对象包含一个图像类型的对象。

이새로운설정은반향정위신호의주파수리지4개를명확하게표시하는스펙트로그램을생성합니다。

시간-주파수재할당

4개의주파수리지를식별할수는있지만,여전히각리지가여러인접주파수本에걸쳐분산되어있음을알수있습니다。이는시간과주파수모두에사용되는윈도우적용방법의누설로한것입니다。

pspectrum함수는시간과주파수모두에서각스펙트럼추정값에대한에너지중심을추정할수있습니다。각추정값의에너지를새로운시간및주파수중심에가장가까운本에재할당하면윈도우의누설을일부해결할수있습니다。“再分配”파라미터를사용하면가능합니다。이파라미터를真正的로설정하면신호의재할당된스펙트로그램이계산됩니다。

pspectrum (batsignal Fs,的谱图“FrequencyResolution”3 e3,...“OverlapPercent”, 99,“MinTHreshold”, -60,“再分配”,真正的)

图中包含一个轴对象。标题为Fres = 3.0075 kHz, Tres = 854 μs的轴对象包含一个图像类型的对象。

이제주파수리지가훨씬더매끄러워졌으며,시간영역에서특정시간으로더잘국한되었습니다。또한 함수fsst를사용하여신호에너지를국한할수도있습니다。이에대해서는다음섹션에서설명합니다。

시간-주파수리지(山脊)재생성하기

시간이지남에따라주파수가감소하는처프신호(线性调频信号)와마지막에무엇인가세게부딪히는”철퍼덕“소리로구성된다음녹음을살펴보겠습니다。

负载长条木板p = audioplayer(y,Fs,16);玩(p) pspectrum (y, Fs,的谱图

图中包含一个轴对象。标题为Fres = 133.9285 Hz, Tres = 19.165 ms的axis对象包含一个图像类型的对象。

시간-주파수평면에서리지를추출하여“철퍼덕”소리의일부를재구성해보겠습니다。여기서는fsst를사용하여잡음이많은“철퍼덕”신호에대한스펙트럼을매끄럽게하고,tfridge를사용하여처프소리의리지를식별하며,ifsst를사용하여처프를재생성합니다。그과정에서,재구성된신호의잡음이제거됩니다。

가우스잡음을“철퍼덕”소리의처프부분에추가합니다。추가된잡음덕분에저가의마이크로녹음한듯한결과를얻게됩니다。시간-주파수스펙트럼성분을검토합니다。

rng (“默认”) t =(0:长度(y)-1)/Fs;yNoise = y + 0.1*randn(size(y));yChirp = yNoise(t<0.35);pspectrum (yChirp Fs,的谱图“MinThreshold”, -70)

图中包含一个轴对象。标题为Fres = 116.8154 Hz, Tres = 21.9727 ms的axis对象包含一个图像类型的对象。

푸리에싱크로스퀴즈변환(傅里叶同步变换),즉fsst를사용하여스펙트럼을매끄럽게만듭니다。fsst는고정시간동안주파수상에서에너지를재할당하여시간-주파수평면의특정영역에에너지를국한합니다。잡음이있는처프의싱크로스퀴즈변환을계산하고플로팅합니다。

fsst (yChirp Fs,“桠溪”

图中包含一个轴对象。标题为傅里叶同步压缩变换的坐标轴对象包含一个图像类型的对象。

처프가시간-주파수평면에서국한된리지로나타납니다。tfridge를사용하여리지를식별합니다。변환과함께리지를플로팅합니다。

[sst,f] = fsst(yChirp,Fs);[fridge, iridge] = tfridge(sst,f,10);helperPlotRidge (yChirp、Fs、冰箱);

图中包含一个轴对象。标题为“Chirp的时间-频率脊”的轴对象包含图像、线类型的2个对象。

다음으로,리지marketing덱스벡터iridge를사용하여처프신호를재생성합니다。리지의양쪽에하나의Bin을포함시킵니다。재생성된신호의스펙트로그램을플로팅합니다。

Yrec = ifsst(sst,kaiser(256,10),iridge,“NumFrequencyBins”1);pspectrum (yrec Fs,的谱图“MinThreshold”, -70)

图中包含一个轴对象。标题为Fres = 116.8154 Hz, Tres = 21.9727 ms的axis对象包含一个图像类型的对象。

리지를재생성함으로써신호에서잡음이제거되었습니다。잡음이있는신호와잡음이제거된신호를연속으로재생하여차이를들어보십시오。

p = audioplayer([yChirp;zero (size(yChirp));yrec],Fs,16);玩(p);

전력측정하기

일반적레이다파형복소선형주파수변조(lfm)펄스를살펴보겠습니다。1.27마이크로초의시간분해능중과90%첩을사용하여신호의스펙트로그램을계산합니다。

Fs = 1e8;Bw = 60e6;t = 0:1/Fs:10e-6;IComp = chirp(t,-bw/2,t(end), bw/2,“线性”, 90) + 0.15 * randn(大小(t));QComp = chirp(t,-bw/2,t(end), bw/2,“线性”, 0) + 0.15 * randn(大小(t));IQData = IComp + 1i*QComp;segmentLength = 128;pspectrum (IQData Fs,的谱图“TimeResolution”1.27 e-6“OverlapPercent”, 90)

图中包含一个轴对象。标题为Fres = 2.0371 MHz, Tres = 1.26 μs的axis对象包含一个image类型的对象。

스펙트로그램계산에사용된파라미터lem신는호에대한명확한시간-주파수표현을제공합니다。pspectrum은파워스펙트로그램을계산하는데,이는색값이실제전력수준(단위:dB)에대응함을의미합니다。컬러바를보면신호의전력수준이약 - 4dB임을알수있습니다。

로그주파수스케일시각화

특정응용사례에서는로그주파수스케일을사용해신호의스펙트로그램을시각화하는것이더바람직할수있습니다。y축의YScale속성을변경하면그렇게할수있습니다。예를들어,1kHz로샘플링된로그처프(啁啾)가있다고가정하겠습니다。처프의주파수는10초동10Hz에서400Hz로가합니다。

Fs = 1e3;t = 0:1/Fs:10;Fo = 10;F1 = 400;Y = chirp(t,fo,10,f1,“对数”);pspectrum (y, Fs,的谱图“FrequencyResolution”, 1...“OverlapPercent”, 90,“漏”, 0.85,“FrequencyLimits”, 1 f / 2)

图中包含一个轴对象。标题为Fres = 1.0002 Hz, Tres = 1.468 s的axis对象包含一个image类型的对象。

처프의스펙트로그램은주파수스케일이로그일때직선으로나타납니다。

Ax = gca;斧子。YScale =“日志”

图中包含一个轴对象。标题为Fres = 1.0002 Hz, Tres = 1.468 s的axis对象包含一个类型为surface的对象。

3차원폭포플롯시각화

视图명령을사용하여신호의스펙트로그램을3차원폭포플롯으로시각화할수있습니다。또한colormap함수를사용하여@ @시색을변경할수도있습니다。

Fs = 10e3;t = 0:1/Fs:2;x1 = vco(锯齿形(2*pi*t,0.5),[0.1 0.4]*Fs,Fs);pspectrum (x1, Fs,的谱图“漏”, 0.8)

图中包含一个轴对象。标题为Fres = 106.1965 Hz, Tres = 15.7 ms的axis对象包含一个image类型的对象。

colormap视图(-45、65)

图中包含一个轴对象。标题为Fres = 106.1965 Hz, Tres = 15.7 ms的axis对象包含一个类型为surface的对象。

지속성스펙트럼을사용하여간섭찾기

신호의지속성스펙트럼은주어진주파수가신호에존재하는시간비율을보여주는시간-주파수보기입니다。지속성스펙트럼은전력-주파수역의히스토그램입니다。신호가전개될때신호의특정주파수가오래지속될수록그주파수가차지하는시간비율이높아지기때문에해당주파수색이디스플레이에더밝거나”뜨겁게”표시됩니다。지속성스펙트럼을사용하여다른신호에숨어있는신호를식별할수있습니다。

광대역신호에포함된협대역간섭신호를살펴보겠습니다。500초동1kHz로샘플링된처프를생성합니다。측정하는동처프의주파수는180Hz에서220Hz로가합니다。

Fs = 1000;T = (0:1/fs:500)';x =唧唧喳喳(220 t, 180 t(结束),)+ 0.15 * randn(大小(t));

또한신호에는진폭이0.05 210赫兹인간섭도포함되는데,이간섭은총신호지속시간의1/6동안에만존재합니다。

Idx =地板(长度(x)/6);(1: idx) = x (1: idx) + 0.05 * cos(2 *π* t (1: idx) * 210);

100Hz~290Hz구간에대한신호의파워스펙트럼을계산합니다。약한정현파가처프에의해가려집니다。

pspectrum (x, fs,“FrequencyLimits”290年[100])

图中包含一个轴对象。标题为Fres = 976.801 mHz的axes对象包含一个line类型的对象。

신호의지속성스펙트럼을계산합니다。이제두신호성분이명확히보입니다。

图colormapparulapspectrum (x, fs,“坚持不懈”“FrequencyLimits”(100 290),“TimeResolution”, 1)

图中包含一个轴对象。标题为Fres = 3.9101 Hz, Tres = 1 s的axis对象包含一个image类型的对象。

결론

이예제에서는pspectrum함수를사용하여시간-주파수분석을수행하는방법과스펙트로그램데이터와전력수준을해석하는방법에대해배웠습니다。그리고신호에대한이해를돕기위해시간분해능과주파수분해능을변경하는방법과fsstifssttfridge를사용하여스펙트럼을매끄럽게만들고시간-주파수리지를추출하는방법을배웠습니다。또한스펙트로그램플롯을구성하여로그주파수스케일과3차원시각화를구현하는방법도배웠습니다。마지막으로,지속성스펙트럼을계산하여간섭신호를찾는방법을알아보았습니다。

부록

이예제에서는다음헬퍼함수가사용되었습니다。

참고 항목

|||