Matlab:音頻處理

用Matlab繪制一段音頻信號在時域上的波形圖,然后用低通濾波器濾掉噪音并再次繪制

1、導入音頻文件

filename = 'X:\1.mp3'; % 替換為你的音頻文件路徑
[x, Fs] = audioread(filename);

2、獲取音頻信號長度

len = length(x);

3、計算時間軸

t = (0:len-1) / Fs;

4、繪制音頻信號在時域上的波形圖

figure;
plot(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Audio Signal in Time Domain');

5、設計并應用低通濾波器

cutoff_frequency = 2600; % 截止頻率為2600 Hz
normalized_cutoff = cutoff_frequency / (Fs/2);
order = 8; % 濾波器階數
[b, a] = butter(order, normalized_cutoff, 'low');filtered_x = filter(b, a, x);

6、繪制濾波后的音頻信號在時域上的波形圖

subplot(2,1,2);
plot(t, filtered_x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Filtered Audio Signal in Time Domain');

總:

% 導入音頻文件
filename = 'C:\Users\ahiii\Desktop\1.mp3'; % 替換為你的音頻文件路徑
[x, Fs] = audioread(filename);% 獲取音頻信號長度
len = length(x);% 計算時間軸
t = (0:len-1) / Fs;% 繪制音頻信號在時域上的波形圖
figure;
plot(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Audio Signal in Time Domain');% 設計低通濾波器
cutoff_frequency = 2600; % 截止頻率為2600 Hz
normalized_cutoff = cutoff_frequency / (Fs/2);
order = 8; % 濾波器階數
[b, a] = butter(order, normalized_cutoff, 'low');% 應用低通濾波器
filtered_x = filter(b, a, x);% 繪制濾波后的音頻信號在時域上的波形圖
subplot(2,1,2);
plot(t, filtered_x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Filtered Audio Signal in Time Domain');

效果:

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

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

相關文章

小程序properties默認值定義及父子組件的傳值

因經常寫vue,很久沒寫小程序,容易串頻道,現記錄一下小程序的組件用法、監聽傳入值及父子傳值方式 首先小程序中傳值是沒有:(冒號)的,其次properties中定義默認值不需要寫default 1.自定義組件中,首先json…

OSPF原理(1)

一、OSPF介紹 OSPF(Open Shortest Path First,開放最短路徑優先)協議作為一種基于鏈路狀態的路由協議,它為網絡中的路由器提供了一種高效、可靠的方式來共享路由信息,并計算出最短路徑。 特點: 收斂速度快…

踩坑——紀實

開發踩坑紀實 1 npm安裝1.1 查看當前的npm鏡像設置1.2 清空緩存1.3 修改鏡像1.4 查看修改結果1.5 重新安裝vue 2 VScode——NPM腳本窗口找不到3 springboot項目中updateById()失效4 前端跨域4.1 后端加個配置類4.2 CrossOrigin注解 5 路由出口6 springdoc openapi3 swagger3文件…

C語言函數遞歸

文章目錄 一、遞歸1.遞歸的概念2.遞歸的思想3.遞歸的限制條件 二、遞歸的一些典型例子1.求一個數的階乘2.順序打印一個整數的每一位3.漢諾塔4.青蛙跳臺階5斐波那契數列遞歸和迭代的對比 一、遞歸 1.遞歸的概念 遞歸是學習C語言函數繞不開的一個話題,那什么是遞歸呢…

【算法刷題day56】 Leetcode:647. 回文子串、516. 最長回文子序列

文章目錄 Leetcode 647. 回文子串解題思路代碼總結 Leetcode 516. 最長回文子序列解題思路代碼總結 草稿圖網站 java的Deque Leetcode 647. 回文子串 題目:647. 回文子串 解析:代碼隨想錄解析 解題思路 斜上三角,從左下往上遍歷&#xff0c…

【代碼隨想錄】動態規劃之完全背包問題與打家劫舍問題

前言 更詳細的在大佬的代碼隨想錄 (programmercarl.com) 本系列僅是簡潔版筆記&#xff0c;為了之后方便觀看 完全背包 for(int i 0; i < weight.size(); i) { // 遍歷物品for(int j weight[i]; j < bagWeight; j) { // 遍歷背包容量dp[j] max(dp[j], dp[j - weigh…

ElementPlus Steps步驟條插槽 v-slot:title

<el-steps finish-status"success"><el-stepv-for"item in uniqueReverseArr":status"item.status 2? success: item.status 3? error: item.status 1? finish: process"click.native"stepClick(item)"><templat…

PyTorch中Tensor簡介

PyTorch中所有的操作都是基于Tensor&#xff08;張量&#xff09;的&#xff0c;因此理解張量的含義并能夠自由創建張量是十分必要的。 張量是PyTorch中最基本的操作對象。我們可以用數學中的概念來輔助理解一下張量&#xff0c;如圖5-1所示。 標量&#xff08;Scalar&#x…

c#數據庫的增刪改查

** 安裝數據庫包 ** 在使用 SQLite 數據庫時&#xff0c;你需要安裝適當的 NuGet 包來提供與 SQLite 的集成。 1.打開 Visual Studio 中的你的項目 2.在頂部菜單欄中選擇 “項目” -> “管理 NuGet 包” 3.在 NuGet 管理器中搜索 “System.Data.SQLite” 4.找到適合你項目…

【openlayers系統學習】1.1渲染GeoJSON,添加link交互

一、渲染GeoJSON 在進入編輯之前&#xff0c;我們將看一下使用矢量源和圖層進行基本要素渲染。Workshop在 data? 目錄中包含一個 countries.json? GeoJSON文件。我們首先加載該數據并將其渲染在地圖上。 首先&#xff0c;編輯 index.html? 以便向地圖添加深色背景&#xf…

Vue 組件的生命周期鉤子有哪些用途是什么

Vue 組件的生命周期鉤子提供了在不同階段執行特定邏輯的機會&#xff0c;這些鉤子在組件的創建、掛載、更新、銷毀等過程中被調用。以下是每個生命周期鉤子的常見用途&#xff1a; beforeCreate 用途&#xff1a;由于在這個階段&#xff0c;組件的 data、computed、methods 和…

使用llama.cpp實現LLM大模型的格式轉換、量化、推理、部署

使用llama.cpp實現LLM大模型的量化、推理、部署 大模型的格式轉換、量化、推理、部署概述克隆和編譯環境準備模型格式轉換GGUF格式bin格式 模型量化模型加載與推理模型API服務模型API服務(第三方)GPU推理 大模型的格式轉換、量化、推理、部署 概述 llama.cpp的主要目標是能夠在…

【代碼隨想錄算法訓練營第37期 第十五天 | LeetCode226.翻轉二叉樹、101.對稱二叉樹 2】

代碼隨想錄算法訓練營第37期 第十五天 | LeetCode226.翻轉二叉樹、101.對稱二叉樹 2 一、226.翻轉二叉樹 解題代碼C&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : …

【軟考中級 軟件設計師】數據結構

數據結構是計算機科學中一個基礎且重要的概念&#xff0c;它研究數據的存儲結構以及在此結構上執行的各種操作。在準備軟考中級-軟件設計師考試時&#xff0c;掌握好數據結構部分對于通過考試至關重要。下面是一些核心知識點概覽&#xff1a; 基本概念&#xff1a; 數據結構定義…

VBA_MF系列技術資料1-615

MF系列VBA技術資料1-615 為了讓廣大學員在VBA編程中有切實可行的思路及有效的提高自己的編程技巧&#xff0c;我參考大量的資料&#xff0c;并結合自己的經驗總結了這份MF系列VBA技術綜合資料&#xff0c;而且開放源碼&#xff08;MF04除外&#xff09;&#xff0c;其中MF01-0…

spring-boot集成slf4j(二)logback配置詳解

一、configuration 根節點&#xff1a;configuration&#xff0c;作為頂級標簽&#xff0c; 可以用來配置一些lockback的全局屬性&#xff0c;常見的屬性如下&#xff1a; &#xff08;1&#xff09;scan“true” &#xff1a;scan是否開啟自動掃描&#xff0c;監控配置文件更…

el-table 組件實現 “合并單元格 + N行數據小計” 功能

目錄 需求 - 要實現的效果初始代碼代碼升級&#xff08;可供多個表格使用&#xff09;CommonTable.vue 子組件 使用子組件1 - 父組件 - 圖1~圖3使用效果展示 使用子組件2 - 父組件 - 圖4使用效果展示 注意【代碼優化 - 解決bug】 需求 - 要實現的效果 父組件中 info 數據示例 …

內網安全之證書服務基礎知識

PKI公鑰基礎設施 PKI(Public Key Infrastructure)公鑰基礎設施&#xff0c;是提供公鑰加密和數字簽名服務的系統或平臺&#xff0c;是一個包括硬件、軟件、人員、策略和規程的集合&#xff0c;用來實現基于公鑰密碼體制的密鑰和證書的產生、管理、存儲、分發和撤銷等功能。企業…

Android Debug Bridge(ADB)命令使用

引言 Android Debug Bridge&#xff08;ADB&#xff09;是一套功能強大的命令行工具&#xff0c;它為Android開發者和高級用戶提供了與Android設備通信的能力。無論是進行應用開發、測試還是執行日常設備管理任務&#xff0c;ADB都是不可或缺的工具。本文將詳細介紹一些常用的…

element-plus:踩坑日記

el-table Q&#xff1a;有fixed屬性時&#xff0c;無數據時&#xff0c;可能出現底部邊框消失的bug 現象&#xff1a; 解決方法&#xff1a; .el-table__empty-block {border-bottom: 1px solid var(--el-table-border-color); } el-collapse 折疊面板 Q&#xff1a;標題上…