Audition是音频工程师广泛使用的音频分析处理软件。Audition的频率分析模块能够得到音频序列的频谱图,通过编写matlab,实现类似Audition的结果。

大致思路是:对序列进行分帧,加窗,添加恢复系数,FFT,abs,平均。

保证matlab的结果与audition相同。

Matlab对粉红噪声进行FFT计算结果

Audition对粉红噪声进行频率分析结果

function [ mag, ang, freq ] = fft_average( filename, nfft, average_num )
%对输入信号进行分帧fft运算,并对fft结果进行平均
% OutPut:
%    mag 幅度;
%    ang 相位;
%    freq 频率;
% Input:
%    filename 输入音频文件的路径名;
%    FS 采样率;
%    nfft FFT的点数;
%    average_num FFT分帧数
% Syntax:
%    [ mag, ang, freq ] = fft_average( 'D:\03_media\01_audio\WLAN Direct\volume_5.wav', 4096, 1000)
% Fs = 48000;
% filename = 'D:\03_media\01_audio\WLAN Direct\volume_5.wav';
% nfft=512;
% average_num = 1000
disp('read file');
[Y,Fs] = audioread(filename, 'double');
fprintf('the sample rate is %d.\n', Fs);
ns=nfft;
audio_frames_num = length(Y(:,1))/ns;
if average_num > audio_frames_num
    average_num = audio_frames_num;
end
average_num = audio_frames_num;
t=(0:1/Fs:(average_num*ns-1)/Fs)';
p_average = 0;
a_average = 0;
n_first = 1;
for index=1:average_num
    xn=Y(n_first:n_first+ns-1,1);
    wd = hann(ns);
    xwd = 2*xn.*wd;
    n_first = n_first+ns;
    y = fft(xwd, nfft);
    p2=abs(y/ns);
    a1 = unwrap(angle(y));
    p1=p2(1:nfft/2+1);
    p1(2:end-1)= 2*p1(2:end-1);
    p_average = p_average + p1;
    a_average = a_average + a1;
end
f=(0:nfft/2)*Fs/nfft;
freq = f;
mag = 20*log10(p_average/average_num);
ang = a_average/average_num;
subplot(2,1,1);
plot(t,Y(1:average_num*nfft));hold on;
subplot(2,1,2);
plot(f, mag);
ylim([-96,0]);
xlim([10,20000]);
set(gca,'XScale','log')

end

Audition频率分析的Matlab实现代码:对同一个音源,matlab计算结果与Audition相同相关推荐

  1. 雷达系统设计matlab仿真 代码,《雷达系统设计matlab仿真》

    <雷达系统设计matlab仿真> matlab 2020-12-5 下载地址 https://www.codedown123.com/53184.html 雷达系统设计matlab仿真的资 ...

  2. 码分复用matlab仿真代码,频分复用时分复用系统MATLAB仿真.doc

    频分复用时分复用系统MATLAB仿真 上海大学2013-2014学年冬季学期 "通信原理"课程项目报告 课程名称: <通信原理> 课程编号: 项目名称和内容: 搭建一个 ...

  3. matlab mnist 代码,MNIST手写字 Matlab程序,包含BP和CNN程序

    [实例简介] MNIST手写字 Matlab程序,包含BP和CNN程序.不依赖任何库,包含MNIST数据,BP网络可达到98.3%的识别率,CNN可达到99%的识别率.CNN比较耗时,关于CNN的程序 ...

  4. 游程编码用matlab实现代码_二值图像游程编码matlab代码

    >> image1=imread('D:\Program Files\MATLAB\R2012a\bin\D.jpg'); % 读入图像 imshow(image1); % 显示原图像 & ...

  5. matlab 逐步回归代码,(最新整理)逐步回归matlab程序

    <(最新整理)逐步回归matlab程序>由会员分享,可在线阅读,更多相关<(最新整理)逐步回归matlab程序(6页珍藏版)>请在人人文库网上搜索. 1.完整)逐步回归matl ...

  6. 复制matlab的代码直接运行了,Matlab教程(代码直接复制调试).doc

    第1章 基础准备及入门 1.1 最 简单的计算器使用法 为易于学习,本节以算例方式叙述,并通过算例归纳一些 MATLAB 最基本的规则和语 法结构.建议读者,在深入学习之前,先读一读本节. [例 1. ...

  7. matlab 在代码旁加注释,matlab 这里有一段代码,求加注释解释意思:logx=log10(1:length(y));logy=log10(y...

    clear clc %假设的原始数据 y = [1,2,3,4,5,6,7,8,9,11]; %实际自变量x为1到n(n为y的长度),这里将log10(x)作为自变量 logx=log10(1:len ...

  8. 【音频处理】Polyphone 样本编辑 和 样本工具 ( 波形图 | 信息 | 频率分析 | 均衡器 | 播放器 | 终点裁剪 | 自动循环节 | 空白移除 | 音量 平衡 音调 调整 )

    文章目录 一. Polyphone 工具简介 1. 相关参考资料 2. 简要介绍 (1) 软件界面 二. 音源编辑 1. 波形图 ( 1 ) 波形图样式 ( 2 ) 波形图操作 2. 信息 ( 1 ) ...

  9. 基于MATLAB的频率分析

    1 电力系统频率变化的影响及产生原因 现代电力系统是一个超高压.大容量.跨区域的巨大联合动力系统,频率是衡量电力系统质量的一个重要指标.而频率时时刻刻都在受到干扰,影响系统运行,甚至还会产生一些危害. ...

最新文章

  1. 计算机视觉常用图像数据集标记平台
  2. Android Studio查看代码行数和删除注释空行等
  3. Spring Cloud之Hystrix
  4. Magic Leap不带普通消费者玩了,疫情之下卖身未果,裁员一半求生
  5. 计算机辅助设计工业产品cad竞赛试题,2017计算机辅助设计(工业产品CAD)赛项样题...
  6. android中gradle的作用,Gradle 之 Android 中的应用
  7. c语言本身有输入输出语句正确错误,C语言模拟选择题
  8. 0基础入门前端,会遇到哪些困难?
  9. 什么是低信噪比图像及处理方法
  10. Zebra 命令模式分析2
  11. .netcore 2.0 mysql_MySQL数据库之.Net Core 2.0 使用EF连接MySQL数据库
  12. WPF:将Office文档、任意类型文件嵌入到EXE可执行文件中
  13. 按键精灵_汉字转拼音
  14. php zscan,PHP redis SCAN、SSCAN、ZSCAN、HSCAN 的使用, pipe 快速redis插入数据
  15. 阻抗,特征阻抗与等效阻抗
  16. Spring Cloud如何可用于微服务架构
  17. Poco C++类库使用说明
  18. 计算机专业转ubc绩点,中国留学生申请加拿大名校,如何换算GPA成绩?
  19. Agarose bound-WFA,WFL;琼脂糖结合紫藤凝集素(WFA,WFL)
  20. js实现个任意位正小数,向上进位

热门文章

  1. [网络安全]墨者学院-HTTP动作练习
  2. 动词的使役+授受辅助动词
  3. 无法启动此程序因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll
  4. [BZOJ4338][BJOI2015]糖果(扩展Lucas)
  5. 最全最小系统板原理图设计实操(涉及电容、电阻选型)
  6. 玩快手技巧怎么涨粉丝
  7. 如何快速涨粉,如何使用智能剪辑工具在抖音快速涨粉
  8. 利用Python编写一个AI脚本自动控制2048网页小游戏
  9. 物联网卡让物流行业“灵活”起来
  10. 《C语言的科学与艺术》课后习题答案第八章(部分)