吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Matlab實現傅里葉變換的步驟

冬至子 ? 來源:算法工程師的學習日志 ? 作者:搬磚工程師domi ? 2023-07-19 17:47 ? 次閱讀

傅里葉變換是將按時間或空間采樣的信號與按頻率采樣的相同信號進行關聯的數學公式。在信號處理中,傅里葉變換可以揭示信號的重要特征(即其頻率分量)。

圖片

對于包含 n 個均勻采樣點的向量 x,其傅里葉變換定義為

圖片

ω=e?2πi/n 是 n 個復單位根之一,其中 i 是虛數單位。對于 x 和 y,索引 j 和 k 的范圍為 0 到 n?1。

MATLAB中的 fft 函數使用快速傅里葉變換算法來計算數據的傅里葉變換。以正弦信號 x 為例,該信號是時間 t 的函數,頻率分量為 15 Hz 和 20 Hz。使用在 10 秒周期內以 150 秒為增量進行采樣的時間向量。

t = 0:1/50:10-1/50;                     
x = sin(2*pi*15*t) + sin(2*pi*20*t);
figure
plot(t,x)

圖片

計算信號的傅里葉變換,并在頻率空間創建對應于信號采樣的向量 f。

y = fft(x);     
f = (0:length(y)-1)*50/length(y);

以頻率函數形式繪制信號幅值時,幅值尖峰對應于信號的 15 Hz 和 20 Hz 頻率分量。

figure
plot(f,abs(y))
title('Magnitude')

圖片

該變換還會生成尖峰的鏡像,對應于信號的負頻率。為了更好地以可視化方式呈現周期性,使用 fftshift 函數對變換執行以零為中心的循環平移。

n = length(x);                         
fshift = (-n/2:n/2-1)*(50/n);
yshift = fftshift(y);
figure
plot(fshift,abs(yshift))

圖片

含噪信號

在科學應用中,信號經常遭到隨機噪聲破壞,掩蓋其頻率分量。傅里葉變換可以清除隨機噪聲并顯現頻率。例如,通過在原始信號 x 中注入高斯噪聲,創建一個新信號 xnoise

rng('default')
xnoise = x + 2.5*randn(size(t));

頻率函數形式的信號功率是信號處理中的一種常用度量。功率是信號的傅里葉變換按頻率樣本數進行歸一化后的平方幅值。計算并繪制以零頻率為中心的含噪信號的功率譜。盡管存在噪聲,仍可以根據功率中的尖峰辨識出信號的頻率。

ynoise = fft(xnoise);
ynoiseshift = fftshift(ynoise);    
power = abs(ynoiseshift).^2/n; 
figure
plot(fshift,power)
title('Power')

1.jpg

計算效率

直接使用傅里葉變換公式分別計算 y 的 n 個元素需要 n平方 數量級的浮點運算。使用快速傅里葉變換算法,則只需要 nlogn 數量級的運算。在處理包含成百上千萬個數據點的數據時,這一計算效率會帶來很大的優勢。在 n 為 2 的冪時,許多專門的快速傅里葉變換實現可進一步提高效率。

以加利福尼亞海岸的水下麥克風所收集的音頻數據為例。在康奈爾大學生物聲學研究項目維護的庫中可以找到這些數據。載入包含太平洋藍鯨鳴聲的文件 bluewhale.au,并對其中一部分數據進行格式化。可使用命令 sound(x,fs) 來收聽完整的音頻文件。

whaleFile = 'bluewhale.au';
[x,fs] = audioread(whaleFile);
whaleMoan = x(2.45e4:3.10e4);
t = 10*(0:1/fs:(length(whaleMoan)-1)/fs);
figure
plot(t,whaleMoan)
xlabel('Time (seconds)')
ylabel('Amplitude')
xlim([0 t(end)])

圖片

指定新的信號長度,該長度是大于原始長度的最鄰近的 2 的冪。然后使用 fft 和新的信號長度計算傅里葉變換。fft 會自動用零填充數據,以增加樣本大小。此填充操作可以大幅提高變換計算的速度,對于具有較大質因數的樣本大小更是如此。

m = length(whaleMoan); 
n = pow2(nextpow2(m));
y = fft(whaleMoan,n);

繪制信號的功率譜。繪圖指示,鳴聲包含約 17 Hz 的基本頻率和一系列諧波(其中強調了第二個諧波)。

f = (0:n-1)*(fs/n)/10; % frequency vector
power = abs(y).^2/n;   % power spectrum      
figure
plot(f(1:floor(n/2)),power(1:floor(n/2)))
xlabel('Frequency')
ylabel('Power')

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 變換器
    +關注

    關注

    17

    文章

    2109

    瀏覽量

    109557
  • FFT
    FFT
    +關注

    關注

    15

    文章

    437

    瀏覽量

    59563
  • MATLAB仿真
    +關注

    關注

    4

    文章

    176

    瀏覽量

    19998
  • 傅里葉變換
    +關注

    關注

    6

    文章

    442

    瀏覽量

    42711
  • 信號采樣電路

    關注

    1

    文章

    2

    瀏覽量

    1215
收藏 人收藏

    評論

    相關推薦

    圖像頻率域分析之傅里葉變換

    文章目錄傅里葉變換基礎傅里葉級數傅里葉積分傅里葉變換一維連續傅里葉變換一維離散傅里葉變換二維離散傅里葉變換
    發表于 05-22 07:41

    傅里葉變換是什么?如何求傅里葉變換

    傅里葉變換是什么?三傅里葉變換的意義是什么?如何求傅里葉變換
    發表于 05-08 09:23

    DSP變換運算-傅里葉變換

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

    什么是傅里葉變換

    什么是傅里葉變換 傅里葉變換(Transformée de Fourier)是一種積分變換。 因其基本思想首先
    發表于 11-29 12:46 ?9593次閱讀
    什么是<b class='flag-5'>傅里葉變換</b>

    傅立葉變換五大性質的matlab實現

    matlab關于傅里葉變換的一些實現方法。
    發表于 02-23 18:21 ?0次下載

    傅立葉變換matlab實現

    有關傅里葉變換matlab教程,簡單明了。
    發表于 02-23 18:22 ?0次下載

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

    小波變換傅里葉變換有什么區別嗎?小波變換傅里葉變換哪個好?我們通過小波變換傅里葉變換的詳細
    發表于 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>詳解

    傅里葉變換去除圖像條紋雜訊實現步驟

    空間域的處理方法比較多,比如傅里葉變換和小波變換等。
    的頭像 發表于 05-15 10:29 ?1700次閱讀
    <b class='flag-5'>傅里葉變換</b>去除圖像條紋雜訊<b class='flag-5'>實現</b><b class='flag-5'>步驟</b>

    matlab對信號進行傅里葉變換

    傅氏變換分析是信號分析中很重要的方法,借助matlab可以很方便的對各類信號進行傅氏頻域分析。本文介紹了集中離散的傅氏變換以及matlab實現
    的頭像 發表于 07-19 10:10 ?1874次閱讀
    用<b class='flag-5'>matlab</b>對信號進行<b class='flag-5'>傅里葉變換</b>

    傅里葉變換基本性質 傅里葉變換本質 傅里葉變換的應用

    傅里葉變換基本性質 傅里葉變換本質 傅里葉變換的應用 傅里葉變換是現代數學、物理學、工程學等領域中非常重要的一種數學工具和基本理論。在信號處理、圖像處理、通信技術、音樂分析、光學、醫學
    的頭像 發表于 09-07 16:18 ?6625次閱讀

    傅里葉變換實現方法

    傅里葉變換實現方法? 傅里葉變換是一種將信號在時間域和頻率域之間相互轉換的數學工具。它的實現方法有很多種,其中最常見的是離散傅里葉變換(D
    的頭像 發表于 09-07 16:47 ?1446次閱讀

    傅里葉變換和離散傅里葉變換的關系

    傅里葉變換和離散傅里葉變換的關系 傅里葉變換(Fourier Transform)是一種將時間域(或空間域)的信號轉換為頻率域(或波數域)的信號的數學工具。而離散傅里葉變換(Discr
    的頭像 發表于 09-07 17:04 ?2627次閱讀

    傅里葉變換的定義 傅里葉變換的意義

    傅里葉變換的定義 傅里葉變換的意義? 傅里葉變換,表示能將滿足一定條件的某個函數表示成三角函數(正弦和/或余弦函數)或者它們的積分的線性組合。 在不同的研究領域,傅里葉變換具有多種不同
    的頭像 發表于 11-30 15:32 ?2350次閱讀

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

    傅里葉變換和逆變換是一對數學變換,用于分析信號和數據的頻域特征。傅里葉變換將一個信號或函數從時間域轉換到頻域,而逆變換則將
    的頭像 發表于 01-11 17:19 ?4230次閱讀

    如何實現離散傅里葉變換

    離散傅里葉變換(DFT)是將離散時序信號從時間域變換到頻率域的數學工具,其實現方法有多種,以下介紹幾種常見的實現方案: 一、直接計算法 直接依據離散
    的頭像 發表于 11-14 09:35 ?514次閱讀
    威尼斯人娱乐备用网址| 大发888娱乐游戏平台| 百家乐官网8点| 大发888娱乐城df888| 百家乐游戏怎么刷钱| 可以玩百家乐官网的博彩公司| 大发888真钱游戏祖比| 百家乐现金平台排名| 飞天百家乐的玩法技巧和规则 | 七胜百家乐官网娱乐场| 新全讯网777| 百家乐官网赌场筹码| 威尼斯人娱乐城会员| 百家乐官网的规则玩法| 威尼斯人娱乐网站安全吗| 百家乐官网游戏机技| 大发888游戏平台 df888ylcxz46 | 蒙特卡罗娱乐场| 百家乐视频游戏世界| 必博百家乐官网游戏| 百家乐官网娱乐分析软件v| 三台县| 卡迪拉娱乐| 棋牌游戏论坛| 百家乐发牌牌规| 视频百家乐游戏| 百家乐电脑游戏高手| 金牌百家乐官网的玩法技巧和规则| 尼勒克县| 尊龙百家乐娱乐场开户注册| 澳门百家乐官网现场视频| 巴厘岛百家乐的玩法技巧和规则 | 八大胜开户| 网络百家乐游赌博| 百家乐官网扑克片礼服| 大发888游戏平台c17| 百家乐庄闲多少| 澳门百家乐官网备用网址| 威尼斯人娱乐场送1688元礼金领取lrm | 江华| A8百家乐赌场娱乐网规则|