Python環境下一種改進的基于梯度下降的自適應短時傅里葉變換

在數字信號處理技術中,傅里葉變換及其逆變換是一種信號時頻分析方法。該方法將信號的時域描述及頻域描述聯系在一起,時域信號可通過正變換轉變為頻域信號,頻域信號可通過逆變換轉變為時域信號進行分析。但傅里葉變換及其逆變換是一種信號的整體變換,要么完全在時域內進行分析處理,要么完全在頻域內進行分析處理,無法得到信號頻譜含量隨時間的變化規律,即傳統傅里葉變換及其逆變換存在不適用于非平穩信號、沒有局限性及時域與頻域分割的缺陷。要克服上述缺陷,就需要尋找聯合時頻方法。

1946年,GaborD.提出了短時傅里葉變換,該變換可將信號的時域分析和頻域分析結合起來,其變換結果既反映了信號的頻率內容,又反映了頻率內容隨時間變化的規律。短時傅里葉變換的過程為:用一個時寬足夠窄的窗函數與時間信號相乘,窗內的信號近似視為平穩信號,然后在窗內進行傅里葉變換,得到信號的瞬時頻譜。隨著截取窗在時間軸上移動,得到整個時間域上的頻譜。

短時傅里葉變換是一種線性的聯合時頻分析方法,其采用固定的窗函數對信號進行加窗處理,該變換克服了傳統傅里葉變換的缺陷,同時易于實現。與傅里葉分析不同,短時傅里葉變換中的窗函數種類繁多,為將短時傅里葉變換的效果最優化,窗函數的選取顯得尤為重要。實際應用的基本窗函數,主要分為以下類型:應用冪次時間函數的冪窗、應用三角時間函數的三角函數窗及應用指數時間函數的指數窗。

短時傅里葉變換中,采用窗函數對信號進行截取會造成頻譜泄露,即某一頻率的信號能量擴散到其相鄰頻率點。頻譜泄漏與窗函數頻譜的兩側旁瓣有關,從保持信號最大信息和消除旁瓣的綜合效果出發,窗函數選取的基本原則為:(1)盡可能使窗函數頻譜中的主瓣寬度足夠窄,以獲得較陡的過渡帶,能量盡可能集中在主瓣內,提高頻譜分析時的頻率分辨率;(2)旁瓣高度盡量小且隨頻率盡快衰減,以提高阻帶的衰減,減小頻譜分析時的泄露失真。但主瓣既窄,旁瓣又小衰減又快的窗函數很難找到,所以需要根據信號的性質和研究目的來選取合適的窗函數。

為了自適應的對窗長進行調整,提出一種基于梯度下降的自適應短時傅里葉變換,主要貢獻是窗口長度優化的新范例,包括修改STFT算子的定義,使窗長成為一個連續的參數,進而使得譜圖可以被微分,運行環境為Python,采用Jupyter Notebook文件格式。部分模塊如下:

from math import pi
import matplotlib.pyplot as plt
import numpy as np
import torch
import torchaudio

部分代碼如下:

sr = 1e4
t = torch.arange(0, 2.5, 1/sr)
f = torch.sin(2*pi*t) * 1e2 + 1e2 * torch.ones_like(t) + 5e1 * t
x = (torch.sin(torch.cumsum(f, dim=0) / 2e2) + 0.1 *torch.randn(t.shape))[None, :]
x += torch.sin(torch.cumsum(1e2*5 * torch.ones_like(t), dim=0) / 2e2)
x = x.to(device)
print(x.shape)plt.plot(f)spec = torchaudio.transforms.Spectrogram(n_fft=1_000, win_length=1_000, hop_length=100)(x.cpu())
plt.imshow(spec[0].log().cpu(), aspect='auto', origin='lower', cmap='jet', extent=[0,spec.shape[-1], 0, spec.shape[-2]])
plt.ylabel('frequencies (Hz)', fontsize=18)
plt.xlabel('frames', fontsize=18)

出圖如下:

工學博士,擔任《Mechanical System and Signal Processing》審稿專家,擔任
《中國電機工程學報》優秀審稿專家,《控制與決策》,《系統工程與電子技術》,《電力系統保護與控制》,《宇航學報》等EI期刊審稿專家。

擅長領域:現代信號處理,機器學習,深度學習,數字孿生,時間序列分析,設備缺陷檢測、設備異常檢測、設備智能故障診斷與健康管理PHM等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713654.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713654.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713654.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux/Centos 部署靜態IP,解決無法訪問目標主機、Destination Host Unreachable、無法ping通互聯網的問題

Linux/Centos 部署IP,解決無法訪問目標主機、Destination Host Unreachable、無法ping通互聯網的問題 Linux/Centos 部署靜態IP查物理機/自身電腦的IP設置VMware上的虛擬網絡編輯器設置網卡IP,激活至此就可訪問百度了 Linux/Centos 部署靜態IP 需要注意…

軟考基礎知識2

1.DMA控制方式:直接內存存取。數據在內存與I/O設備間直接成塊傳送,不需要CPU的任何干涉,由DMA硬件直接執行完成。 例題: 2.程序計數器總是存下一個指令的地址。 例題: 3.可靠度的計算: 例題&#xff1a…

吸貓毛空氣凈化器哪個好?推薦除貓毛效果好寵物空氣凈化器品牌

當下有越來越多的家庭選擇養寵物!盡管家里變得更加溫馨,但養寵可能會帶來異味和空氣中的毛發增多可能會帶來健康問題,這是一個大問題! 不想家里彌漫著異味,特別是來自寵物便便的味道,所以需要一款能夠處理…

大語言模型LLM Pro+中Pro+(Prompting)的意義

—— Pro ,即Prompting,構造提示 1.LLM Pro中Pro(Prompting)的意義 Prompting不僅是大語言模型交互和調用的一種高效手段,而且已成為推動模型泛化能力和應用靈活性的關鍵技術路徑,它不僅極大地拓展了模型功…

ABAP - SALV教程02 - 開篇:打開SALV的三種方式之二

全屏模式生成SALV的方式:http://t.csdnimg.cn/CzNLz本文講解生成可控模式的SALV,該方式需要依賴自己創建屏幕的自定義控件區域(Custom Control)實現步驟:需要注意的點是SALV的實例對象和dispaly方法一定是在屏幕PBO事件…

利用IP地址識別風險用戶:保護網絡安全的重要手段

隨著互聯網的發展和普及,網絡安全問題日益突出,各種網絡詐騙、惡意攻擊等風險不斷涌現,給個人和企業的財產安全和信息安全帶來了嚴重威脅。在這樣的背景下,利用IP地址識別風險用戶成為了保護網絡安全的重要手段之一。IP數據云探討…

Qt常用的多線程使用方式

目前(Qt5)常用的多線程的方式? 1、派生于QThread然后重寫run()函數 2、通過將派生QObject的類對象通過moveToThread()來移動到新的線程中 3、通過inherit QRunnable類然后重寫run()方法、然后借助QThreadPool線程池來實現多線程 4、通過高級語法 QtConcurrent模塊來…

JVM內存回收算法

1.1 引用計數法 每個對象創建的時候,會分配一個引用計數器,當這個對象被引用的時候計數器就加1,當不被引用或者引用失效的時候計數器就會減1。任何時候,對象的引用計數器值為0就說明這個對象不被使用了,就認為是“垃圾…

奇舞周刊第521期:“一切非 Rust 項目均為非法”

奇舞推薦 ■ ■ ■ 拜登:“一切非 Rust 項目均為非法” 科技巨頭要為Coding安全負責。這并不是拜登政府對內存安全語言的首次提倡。“程序員編寫代碼并非沒有后果,他們的?作?式于國家利益而言至關重要。”白宮國家網絡總監辦公室(ONCD&…

在idea中用模板骨架初始創建maven管理的web項目時沒有src有關的目錄的解決方案

一.問題如下 二.解決方法 首先關閉當前項目,接著修改全局設置,重新創建項目 在VM Options中添加"-DarchetypeCataloginternal",點擊ok保存 點擊創建,如果創建成功沒報錯且有src,就ok了。 當然如果出現以下…

「媒體宣傳」如何寫好新聞稿?

傳媒如春雨,潤物細無聲,大家好,我是51媒體網胡老師。 寫好新聞稿是媒體宣傳的關鍵環節之一,下面是一些關于如何寫好新聞稿的建議: 明確新聞稿的目的和受眾:在寫新聞稿之前,首先要明確新聞稿的目…

仿牛客網項目---帖子詳情功能的實現

這篇文章主要講講帖子詳情功能。其實帖子詳情功能簡單來說就是你點進去可以看到文章&#xff0c;這就叫帖子詳情功能。那接下來我講講我的這個項目是如何實現這個功能的。 首先寫DAO層。 Mapper public interface DiscussPostMapper {List<DiscussPost> selectDiscussPo…

StarRocks實戰——表設計規范與監控體系

目錄 前言 一、StarRocks表設計 1.1 字段類型 1.2 分區分桶 1.2.1 分區規范 1.2.2 分桶規范 1.3 主鍵表 1.3.1 數據有冷熱特征 1.3.2 大寬表 1.4 實際案例 1.4.1 案例一&#xff1a;主鍵表內存優化 1.4.2 案例一&#xff1a;Update內存超了&#xff0c;導致主鍵表導…

AI推薦算法的演進之路

推薦算法 基于大數據和AI技術&#xff0c;提供全流程一站式推薦平臺&#xff0c;協助企業構建個性化推薦應用&#xff0c;提升企業應用的點擊率留存率和永久體驗。目前&#xff0c;主要的推薦方法包括&#xff1a;基于內容推薦、協同過濾推薦、基于關聯規則推薦、基于效用推薦…

基于阿里云平臺 通過樹莓派實現 1:1人臉識別

之前的學習中&#xff0c;曾經在香橙派上使用阿里云平臺的服務實現過類型識別&#xff1a; 使用香橙派并基于Linux實現最終版智能垃圾桶項目 --- 下_香橙派 項目-CSDN博客 現在&#xff0c;嘗試在樹莓派上通過阿里云平臺的服務實現人臉識別&#xff01; 通過VScode遠程連接樹莓…

2024年新提出的算法|鸚鵡優化器(Parrot optimizer):算法及其在醫療問題中的應用

本期介紹一種基于訓練后鸚鵡關鍵行為的高效優化方法——鸚鵡優化器(Parrot Optimizer, PO)。該成果于2024年2月發表在中科院2區top SCI期刊Computers in Biology and Medicine&#xff08;IF7.7&#xff09; 1、簡介 鸚鵡優化器&#xff08;PO&#xff09;是一種受訓練有素的…

pytest教程-13-conftest.py文件

上一小節我們學習了fixture的作用域&#xff0c;本小節我們學習一下pytest conftest.py文件的使用方法。 conftest.py文件的作用 conftest.py文件是pytest框架中的一個特殊文件&#xff0c;用于定義共享的設置、夾具(fixture)和鉤子函數&#xff08;hook&#xff09;。 在py…

2.模擬問題——2.使用二維數組輸出圖形

用二維數組描述圖形 首先要計算出整個輸出的方框大小&#xff0c;從而判定相應關鍵循環點 #include <cstdio> char arr[1000][3000]; int main() {int h;//初始化&#xff0c;全部內部填空格while(scanf("%d",&h) ! EOF){for (int i 0; i < h; i) {f…

HTML---表單驗證

文章目錄 目錄 本章目標 一.表單驗證概述 二.表單選擇器 屬性過濾選擇器 三.表單驗證 表單驗證的方法 總結 本章目標 掌握String對象的用法會使用表單選擇器的選擇頁面元素會使用JQuery事件進行表單驗證Ajax的概念和作用 一.表單驗證概述 前端中的表單驗證是在用戶提交表…

圖神經網絡導論 - 劉知遠

一、神經網絡基礎 近年來&#xff0c;機器學習領域的發展迅速&#xff0c;主要表現在多種神經網絡架構的出現。盡管不同的神經網絡架構相差甚遠&#xff0c;但現有的神經網絡架構可以分為幾個類別&#xff1a; 卷積神經網路是前饋神經網路的特殊形式&#xff0c;FNN通常是全…