• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB使用fft求取给定音频信号的频率

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一段10s立体声音频,采样率位8000Hz,已知频率为1000Hz

 1 clc;
 2 clear;
 3 [data, Fs] = audioread('1khz_stereo_8000.wav');
 4 fs=Fs;
 5 N=4000;
 6 n=2*fs:2*fs+N-1;     %从第2s结束开始取样
 7 f=(n-2*fs)*fs/N;     %数字频率转换成模拟频率 本来应该是n/N * fs,但由于n是从第三个周期开始的
 8 temp=data(:,1);      %取单个声道样本
 9 x=temp(n);
10 y=fft(x,N);  
11 mag=abs(y);          %求得Fourier变换后的振幅
12 plot(f,mag); 
13 [max,pos] = max(mag);%找到幅值最高点,记录所在横坐标
14 freq = f(pos);       %幅值最高对应基频分量
15 disp(freq);
16 grid on;

频谱图为

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB绘制柱状图带标准误差线发布时间:2022-07-18
下一篇:
matlab中多项式等表达式的因子分解或者提取公共因子的方法发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap