那是因为你没有绘制幅度.您正在绘制的是系数,但这些是复杂的.因此,水平轴是实部,垂直轴是虚部.此外,当您单独使用

sound时,默认采样频率为8 kHz(准确地说是8192 Hz),这可以解释为什么您的声音音调较低.您需要将采样频率用作声音的第二个参数,并由audioread的第二个输出提供给您.

所以,尝试在fft调用后放置abs并将Fs用于声音:

[y,Fs] = audioread('600freq.wav');

sound(y, Fs);

plot(abs(fft(y)))

此外,上面的代码没有正确绘制水平轴.如果您想这样做,请在进行傅立叶变换后确保fftshift光谱,然后正确标记轴.如果你想确定每个水平值在频率方面是什么,那么Paul R这篇精彩的帖子就可以解决这个问题:How do I obtain the frequencies of each value in an FFT?

基本上,FFT中的每个水平值都是这样的:

F = i * Fs / N

i是bin编号,Fs是采样频率,N是您用于FFT的点数. F是您正在查看的组件的解释频率.

默认情况下,fft假定N是数组中的总点数.对于单侧FFT,由于奈奎斯特采样定理,i从0,1,2变为最大值((N-1)/ 2).

因为你在你试图写的代码中实际做的是显示光谱的两侧,这就是为什么将光谱居中以使DC频率位于中间而左侧是负光谱并且右侧是正光谱.

我们可以在此处将其合并到您的代码中:

[y,Fs] = audioread('600freq.wav');

sound(y, Fs);

F = fftshift(abs(fft(y)));

f = linspace(-Fs/2, Fs/2, numel(y)+1);

f(end) = [];

plot(f, F);

水平轴现在反映每个组件的正确频率以及反映每个组件大小的垂直轴.

通过运行生成600 Hz正弦音的音频生成代码,然后使用上面的代码绘制光谱,我得到:

请注意,我在光谱的正面插入了一个工具尖端……它大约是600赫兹!

matlab 音频fft,在wav文件和FFT的matlab中的Audioread相关推荐

  1. PCM音频数据封装为WAV文件

    ------------------------------------全系列文章目录------------------------------------ PCM(Pulse Code Modul ...

  2. matlab读取、播放wav文件

    [x, Fs] = audioread('E:\语音信号处理\speech_signal\bluesky3.wav'); %读取wav文件 fprintf('默认抽样频率为:%d\n', Fs); % ...

  3. matlab怎么逐行读取txt文件内容,转载:matlab 逐行 读取 txt 文件

    转载自:http://blog.sciencenet.cn/blog-762216-1086021.html % The load function can be used to load txt f ...

  4. matlab生成wav文件并用python验证

      在进行频谱分析时,发现MATLAB和python读取wav文件的波形不一致,导致不能得出正确结果,为了验证MATLAB和python哪部分有问题,于是有了这篇博客. 1.需求分析    用MATL ...

  5. matlab 读取WAV文件

    最近工作需要,要对wav文件中存储的声音信息进行分析处理.所以花了些时间收集了各种数学软件中处理wav 文件的方法. Matlab Matlab 是最方便的.甚至于不用写任何代码就能读取 wav 文件 ...

  6. wav数据提取 matlab,matlab 读取处理 wav 文件

    最近工作需要,要对wav文件中存储的声音信息进行分析处理.所以花了些时间收集了各种数学软件中处理wav文件的方法. Matlab Matlab 是最方便的.甚至于不用写任何代码就能读取wav文件(我用 ...

  7. mp3转换wav文件_如何将WAV文件转换为MP3

    mp3转换wav文件 WAV audio files are a great way to preserve the complete and accurate quality of a record ...

  8. 使用matlab来压缩avi视频文件,版本 matlab2014a

    使用matlab来压缩avi视频文件,版本:matlab 2014a. 记录一下自己的工作 fileName = 'input.avi'; %输入的视频文件名 %读取视频函数 obj = VideoR ...

  9. MATLAB实现实时录音,语音采集与读写用matlab实现录音以及语谱图的绘制.pdf

    <语音信号处理>仿真作业 院 系 电气与电子工程学院 专业班级 姓 名 学 号 指导教师 2020 年 3 月 作业题目:语音采集与读写 一.目的 (1)了解matlab 采集语音信号的原 ...

最新文章

  1. 图像处理中消除相机透镜畸变和视角变换
  2. 《一个操作系统的实现》——pmtest1.asm详解
  3. 开始使用vue.js
  4. 简易的bbs论坛开发过程上(后台开发)
  5. SAP S/4HANA Cloud 系统集成的一些场景介绍
  6. ajax实现局部删除,Express+AdminLTE+hbs+Ajax实现局部刷新终极版(第二部分)
  7. 安全研究公司Gauntlet称轻量级区块链协议Mina的攻击成本很高
  8. 需求跟踪矩阵模板_大连电视台采用无跟踪虚拟技术升级多套节目
  9. [再学Python] - 4 - 循环
  10. Atitit 常见的树形结构 红黑树  二叉树   B树 B+树  Trie树 attilax理解与总结
  11. 服务器部署文档模板,完整word版)部署文档模板
  12. 华为数据之道学习分享
  13. 20220508ARCore 初体验
  14. 【数理统计】卡方检验
  15. android 标签开源控件,Android开源控件ViewPager Indicator的使用方法
  16. 手脱FSG压缩壳及问题处理
  17. 网易2017春招笔试——工作安排
  18. SDWAN组网与传统组网方式的对比
  19. All The Elements Pronounced in Order (American English)
  20. SQL 中的 IFNULL和NULLIF

热门文章

  1. 二叉树:已知先序和中序求后序,已知中序和后序求先序
  2. python将不同类型文件分开
  3. matlab c 函数库,matlab 函数库 去哪下载
  4. oracle运维与mysql_运维日记| MySQL/Oracle深度解析之一:逻辑读
  5. 用while和for循环分别计算100以内奇数和偶数的和,并输出。(Java)
  6. ORACLE PL/SQL编程
  7. 联想微型计算机开机没反应,电脑开机没反应,教您怎么解决电脑开机没反应
  8. k8s.io/client-go@v0.20.2/tools/cache/reflector.go:167: Failed to watch *v1beta1.Ingress: failed to l
  9. Table固定列和表头
  10. CoreDNS介绍以及解析流程【kubernetes】