%信号的频域分析方法
%读入样本,对样本进行初步分析
[x,fs,bits]=wavread('e:\wav\s1.wav') %矩阵X读入声音文件的数据,幅值在-1到+1 FS为取样频率 BITS为抽样值的编码位数
t=(1:length(x))/fs %length(x)为x的长度 从1到length(x)除以取样频率
% 图形窗口
x=x(:,1) %所有行的第一列
%
subplot(231); %
plot(t,x) %
title('原信号时域图');
N=21263; %帧长
grid;
%进行FFT变换并做频谱图(幅值谱Am)
y=fft(x,N); %进行fft变换
mag=abs(y); %求幅值
f=(0:length(y)-1)*fs/length(y); %进行对应的频率转换 ????
subplot(232);
plot(f,mag); %做频谱图
%axis([0,100,0,80]);
xlabel('频率(Hz)');
ylabel('幅值');
title(' 幅频谱图N=21263');
grid;
%求均方根谱
sq=abs(y);
subplot(233);
plot(f,sq);
xlabel('频率(Hz)');
ylabel('均方根谱');
title('信号的均方根谱');
grid;
%求功率谱(均方谱Sm)
power=sq.^2;
subplot(234);
plot(f,power);
xlabel('频率(Hz)');
ylabel('功率谱');
title('信号的功率谱');
grid;
%求对数谱(对数谱Lm)
ln=log(sq);
subplot(235);
plot(f,ln);
xlabel('频率(Hz)');
ylabel('对数谱');
title('信号的对数谱');
grid;
%用IFFT恢复原始信号
xifft=ifft(y);
magx=real(xifft);
ti=[0:length(xifft)-1]/fs;
subplot(236);
plot(ti,magx);
xlabel('t');
ylabel('x');
title('通过IFFT转换的信号波形');
grid;
没有合适的资源?快使用搜索试试~ 我知道了~
一段声音的频域分析代码
共4个文件
asv:1个
wav:1个
m:1个
需积分: 15 24 下载量 139 浏览量
2008-10-09
18:49:50
上传
评论 1
收藏 58KB RAR 举报
温馨提示
这是一段用MATLAB编的关于一段声音的频域分析代码,对初学者很有用。
资源推荐
资源详情
资源评论
收起资源包目录
.rar (4个子文件)
一段声音的频域分析代码
Voiceofthefrequencydomainprocessing
fft2.asv 1KB
fft2.m 1KB
APP 按键.wav 83KB
www.pudn.com.txt 218B
共 4 条
- 1
资源评论
jin198494
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功