0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

談?wù)凪atlab短時傅里葉變換和小波變換的時頻

冬至子 ? 來源:算法工程師的學(xué)習(xí)日志 ? 作者:搬磚工程師domi ? 2023-07-19 17:44 ? 次閱讀

簡介

本文主要給定一小段音頻,通過短時傅里葉變換和小波變換制作時頻圖。音頻的采樣率為44100,

圖片

短時傅里葉變換

matlab中,短時傅里葉變換的分析函數(shù)為spectrogram,其使用情況如下:

功能 :使用短時傅里葉變換得到信號的頻譜圖。

語法

[S,F,T,P]=spectrogram(x,window,noverlap,nfft,fs)

[S,F,T,P]=spectrogram(x,window,noverlap,F,fs)

說明:當(dāng)使用時無輸出參數(shù),會自動繪制頻譜圖;有輸出參數(shù),則會返回輸入信號的短時傅里葉變換。當(dāng)然也可以從函數(shù)的返回值S,F,T,P繪制頻譜圖,具體參見例子。

參數(shù)

x---輸入信號的向量。默認(rèn)情況下,即沒有后續(xù)輸入?yún)?shù),x將被分成8段分別做變換處理,如果x不能被平分成8段,則會做截斷處理。默認(rèn)情況下,其他參數(shù)的默認(rèn)值為:window---窗函數(shù),默認(rèn)為nfft長度的海明窗Hamming;noverlap---每一段的重疊樣本數(shù),默認(rèn)值是在各段之間產(chǎn)生50%的重疊;nfft---做FFT變換的長度,默認(rèn)為256和大于每段長度的最小2次冪之間的最大值。另外,此參數(shù)除了使用一個常量外,還可以指定一個頻率向量F;fs---采樣頻率,默認(rèn)值歸一化頻率。

Window---窗函數(shù),如果window為一個整數(shù),x將被分成window段,每段使用Hamming窗函數(shù)加窗。如果window是一個向量,x將被分成length(window)段,每一段使用window向量指定的窗函數(shù)加窗。所以如果想獲取specgram函數(shù)的功能,只需指定一個256長度的Hann窗。

Noverlap---各段之間重疊的采樣點數(shù)。它必須為一個小于window或length(window)的整數(shù)。其意思為兩個相鄰窗不是尾接著頭的,而是兩個窗有交集,有重疊的部分。

Nfft---計算離散傅里葉變換的點數(shù)。它需要為標(biāo)量。

Fs---采樣頻率Hz,如果指定為[],默認(rèn)為1Hz。

S---輸入信號x的短時傅里葉變換。它的每一列包含一個短期局部時間的頻率成分估計,時間沿列增加,頻率沿行增加。如果x是長度為Nx的復(fù)信號,則S為nfft行k列的復(fù)矩陣,其中k取決于window,如果window為一個標(biāo)量,則k = fix((Nx-noverlap)/(window-noverlap));如果window為向量,則k = fix((Nx-noverlap)/(length(window)-noverlap))。對于實信號x,如果nfft為偶數(shù),則S的行數(shù)為(nfft/2+1),如果nfft為奇數(shù),則行數(shù)為(nfft+1)/2,列數(shù)同上。

F---在輸入變量中使用F頻率向量,函數(shù)會使用Goertzel方法計算在F指定的頻率處計算頻譜圖。指定的頻率被四舍五入到與信號分辨率相關(guān)的最近的DFT容器(bin)中。而在其他的使用nfft語法中,短時傅里葉變換方法將被使用。對于返回值中的F向量,為四舍五入的頻率,其長度等于S的行數(shù)。

T---頻譜圖計算的時刻點,其長度等于上面定義的k,值為所分各段的中點。

P---能量譜密度PSD(Power Spectral Density),對于實信號,P是各段PSD的單邊周期估計;對于復(fù)信號,當(dāng)指定F頻率向量時,P為雙邊PSD。P矩陣的元素計算公式如下P(I,j)=k|S(I,j)|2,其中的的k是實值標(biāo)量,定義如下對于單邊PSD,計算公式如下,其中w(n)表示窗函數(shù),F(xiàn)s為采樣頻率,在0頻率和奈奎斯特頻率處,分子上的因子2改為1;

MATLAB程序:

[Au, Fs]=audioread('audio.mp3');   % Fs 采樣率 44100
[B, F, T, P] = spectrogram(Au(:,1),1024,512,1024,Fs);   % B是F大小行T大小列的頻率峰值,P是對應(yīng)的能量譜密度
figure
imagesc(T,F,10*log10(abs(P)));
set(gca,'YDir','normal')
colorbar;
xlabel('時間 t/s');
ylabel('頻率 f/Hz');
title('短時傅里葉時頻圖');

圖片

注意:

  • nfft越大,頻域的分辨率就越高(分辨率=fs/nfft),但離瞬時頻率就越遠(yuǎn);
  • noverlap影響時間軸的分辨率,越接近nfft,分辨率越高,相應(yīng)的冗余就越多,計算量越大,但計算機只要能承受,問題不大。

小波變換

首先,在matlab中,小波變換的分析函數(shù)為cwt,其使用情況如下:

功能 :實現(xiàn)一維連續(xù)小波變換的函數(shù)。

語法

COEFS=cwt(S, SCALES, 'wname')

COEFS=cwt(S, SCALES, 'wname', 'plot')

COEFS=cwt(S, SCALES, 'wname', 'PLOTMODE')

COEFS=cwt(S, SCALES, 'wname', 'PLOTMODE', XLIM)

參數(shù)

COEFS=cwt(S, SCALES, 'wname') 采用'wname'小波,在正、實尺度SCALES下計算向量一維小波系數(shù)。

COEFS=cwt(S, SCALES, 'wname', 'plot') 除了計算小波系數(shù)外,還加以圖形顯示。

COEFS=cwt(S, SCALES, 'wname', 'PLOTMODE') 計算并畫出連續(xù)小波變換的系數(shù),并使用PLOTMODE對圖形著色。

COEFS=cwt(S, SCALES, 'wname', 'plot') 相當(dāng)于 格式 COEFS=cwt(S, SCALES, 'wname', 'PLOTMODE') 中的語法 COEFS=cwt(S, SCALES, 'wname', 'absglb')

COEFS=cwt(S, SCALES, 'wname', 'PLOTMODE', XLIM) 能夠計算并畫出連續(xù)小波變換的系數(shù)。系數(shù)使用PLOTMODE和XLIM進(jìn)行著色。其中:XLIM=[x1,x2],并且有如下關(guān)系:1<=x1<=x2<=length(S)。

MODE值含義:

'lvl' scale-by-scale著色模式

'glb' 考慮所有尺度的著色模式

'abslvl'或'lvlabs' 使用系數(shù)絕對值的scale-by-scale著色模式

'absglb'或'glbabs' 使用系數(shù)絕對值并考慮所有尺度的著色模式

COEFS行的大小等于SCALES尺度的長度,COEFS列的大小等于信號S的長度。

MATLAB程序:

totalscal=1024*16;
wavename='cmor3-3';
Fc=centfrq(wavename); % 小波的中心頻率
c=2*Fc*totalscal;    
scals=c./(1:totalscal);
f=scal2frq(scals,wavename,1/Fs); % 將尺度轉(zhuǎn)換為頻率   頻率在0-500Hz取1024
coefs = cwt(Au(totalscal,1),scals,wavename); % 求連續(xù)小波系數(shù)
t=0:1/Fs:(totalscal-1)/Fs;
figure
imagesc(t,f,abs(coefs));
set(gca,'YDir','normal')
colorbar;
xlabel('時間 t/s');
ylabel('頻率 f/Hz');
title('小波時頻圖');

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 小波變換
    +關(guān)注

    關(guān)注

    2

    文章

    183

    瀏覽量

    29684
  • PSD
    PSD
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    45374
  • MATLAB仿真
    +關(guān)注

    關(guān)注

    4

    文章

    175

    瀏覽量

    19890
  • 頻譜儀
    +關(guān)注

    關(guān)注

    7

    文章

    339

    瀏覽量

    35943
  • 傅里葉變換
    +關(guān)注

    關(guān)注

    6

    文章

    429

    瀏覽量

    42540
收藏 人收藏

    評論

    相關(guān)推薦

    短時傅里葉變換STFT原理詳解

    傳統(tǒng)傅里葉變換的分析方法大家已經(jīng)非常熟悉了,特別是快速傅里葉變換(FFT)的高效實現(xiàn)給數(shù)字信號處理技術(shù)的實時應(yīng)用創(chuàng)造了條件,從而加速了數(shù)字信號處理技術(shù)的發(fā)展。
    的頭像 發(fā)表于 01-07 09:46 ?2578次閱讀
    <b class='flag-5'>短時</b><b class='flag-5'>傅里葉變換</b>STFT原理詳解

    DSP變換運算-傅里葉變換

    第24章 DSP變換運算-傅里葉變換本章節(jié)開始進(jìn)入此教程最重要的知識點之一傅里葉變換。關(guān)于傅里葉變換,本章主要是把傅里葉相關(guān)的基礎(chǔ)知識進(jìn)行必要的介紹,沒有這些基礎(chǔ)知識的話,后面學(xué)習(xí)FF
    發(fā)表于 08-03 06:14

    變換思想及其在信號處理中的應(yīng)用

    傅里葉變換短時傅里葉變換到小變換的思想發(fā)展過程中分析了小
    發(fā)表于 02-27 15:33 ?22次下載

    基于短時傅里葉變換的OFDM時間同步方法

    該文提出了一種基于短時傅里葉變換的OFDM符號同步方法。該方法通過短時傅里葉變換得到OFDM信號的二維幅度譜,并提取其中的周期平穩(wěn)時結(jié)構(gòu)信
    發(fā)表于 10-10 15:18 ?42次下載
    基于<b class='flag-5'>短時</b><b class='flag-5'>傅里葉變換</b>的OFDM時間同步方法

    STFT短時傅里葉變換

    關(guān)于短時傅里葉變換的原理及其在通信的應(yīng)用。
    發(fā)表于 05-17 16:41 ?5次下載

    變換傅里葉變換好在哪里_小變換傅里葉變換詳解

    變換傅里葉變換有什么區(qū)別嗎?小變換傅里葉變換哪個好?我們通過小
    發(fā)表于 01-13 11:02 ?1.6w次閱讀
    小<b class='flag-5'>波</b><b class='flag-5'>變換</b>比<b class='flag-5'>傅里葉變換</b>好在哪里_小<b class='flag-5'>波</b><b class='flag-5'>變換</b>與<b class='flag-5'>傅里葉變換</b>詳解

    詳解傅里葉變換與小變換

    詳細(xì)講述傅里葉變換和小變換原理
    發(fā)表于 01-16 14:34 ?9次下載

    傅里葉變換的介紹傅里葉變換有什么意義和應(yīng)用

    傅里葉變換是數(shù)字信號處理領(lǐng)城種很重要的算法。傅里葉表明:任何連續(xù)測量的時序或信號,都可以表示為不同頻率的正弦信號的無限疊加。而根據(jù)該原理的傅里葉變換算法利用直接測量到的原始信號,以累加方式來計算該
    發(fā)表于 04-30 08:00 ?2次下載
    <b class='flag-5'>傅里葉變換</b>的介紹<b class='flag-5'>傅里葉變換</b>有什么意義和應(yīng)用

    分析之短時傅里葉變換STFT資源下載

    分析之短時傅里葉變換STFT資源下載
    發(fā)表于 04-26 11:35 ?7次下載

    短時傅里葉變換特點 短時傅里葉變換的意義

    短時傅里葉變換特點 短時傅里葉變換的意義? 短時傅里葉變換(Short-time Fourier
    的頭像 發(fā)表于 09-07 16:23 ?1954次閱讀

    傅里葉變換移公式

    傅里葉變換移公式 傅里葉變換是一種將信號從時域轉(zhuǎn)換到頻域的數(shù)學(xué)工具。它可以將一個信號分解成一系列正弦和余弦的和,這些正弦和余弦的振幅和
    的頭像 發(fā)表于 09-07 16:29 ?3474次閱讀

    變換傅里葉變換的區(qū)別和聯(lián)系

    變換傅里葉變換的區(qū)別和聯(lián)系? 1. 傅里葉變換和小變換的定義
    的頭像 發(fā)表于 09-07 17:04 ?2657次閱讀

    短時傅里葉變換和小變換差別

    短時傅里葉變換和小變換差別 短時傅里葉變換(short-time Fourier transf
    的頭像 發(fā)表于 09-07 17:04 ?3012次閱讀

    傅里葉變換和離散傅里葉變換的關(guān)系

    Fourier Transform,簡稱DFT)則是適用于離散信號的傅里葉變換方法。 傅里葉變換的基本原理是將一個連續(xù)的信號,分解成一系列簡單的正弦或者余弦。而這些正弦
    的頭像 發(fā)表于 09-07 17:04 ?2453次閱讀

    什么是傅里葉變換和逆變換?為什么要用傅里葉變換?

    、工程、圖像處理、信號處理等領(lǐng)域。 傅里葉變換的核心思想是,任何一個連續(xù)時間的周期性信號可以表示為無窮多個不同頻率正弦(或復(fù)指數(shù))的疊加。傅里葉變換將信號分解為不同頻率的正弦元素,
    的頭像 發(fā)表于 01-11 17:19 ?3486次閱讀