美文网首页
声音显示波形图及频谱matlab

声音显示波形图及频谱matlab

作者: sunnylxs | 来源:发表于2018-11-24 18:25 被阅读0次

%该程序读wav文件,然后显示频谱以及波形。注意wav文件不要太长,否则运算会很慢。
[y,fs]=audioread('17-30.wav');

fs

sigLength=length(y);

Y = fft(y,sigLength);

Pyy = Y.* conj(Y) / sigLength;

halflength=floor(sigLength/2);

f=fs*(0:halflength)/sigLength;

figure;plot(f,Pyy(1:halflength+1));xlabel('频率/Hz'); ylabel('幅度');

t=(0:sigLength-1)/fs;

figure;plot(t,y);xlabel('时间/s');ylabel('幅度');

%%%%画出声音对应的频谱图

clear all;

clc;

[w,fs,bits]=wavread('17-30.wav');%读取声音数据,fs表示采样频率(Hz),bits表示采样位数。

figure;

%subplot(1,3,1);

plot(w);

title('原始语音');

axis([1 length(w) -1 1]);

grid;

%用specgram函数做语谱图

Nf=512;%FFT采样点数

FrameLen=160;%帧长

FrameInc=80;%帧移,

FrameCha=FrameLen-FrameInc;%帧差

figure;

%subplot(1,2,1);

specgram(w,Nf,fs,FrameLen);

colormap gray

%specgram(a,nfft,fs,window),nfft指定specgram函数所用FFT长度

%,该值决定了计算短时傅立叶变换的各频点;参数fs是指定采样频率的一个标量;

%参数window指定了一个窗函数以及specgram函数用以分割矢量a的样点数;

title('specgram语谱图');

%分帧

N=length(w);%语音长

Num=ceil((N-FrameLen)/FrameCha)+1;%分帧数目

yframe=enframe(w,FrameLen,FrameInc);%调用分帧函数,函数enframe.m中对每帧数据加Hamming窗

Win=hamming(FrameLen);%定义汉明窗

A=[];%存放FFT后的数据

for i=1:Num

    ys=yframe(:,i).*Win;%对每帧数据加窗

    ys=fft(ys,Nf);

    ys=ys(1:Nf/2);

    %ys=fftshift(ys);%作用:将零频点移到频谱的中间

    ys=abs(ys);%傅里叶变换取模

    ys=(ys.^2)/FrameLen;

    ys=10*log10(ys);

    A(:,i)=ys;

end

%自己做的语谱图

figure;

%subplot(1,2,2);

x=0:0.01:N/fs;%横轴时间

y=[0:Nf/2]*fs/Nf;

imagesc(x,y,A);%将输入变量L显示为图像,并且使用x和y变量确定x轴和y轴的边界。

axis xy;

title('自己做的语谱图');

相关文章

  • 声音显示波形图及频谱matlab

    %该程序读wav文件,然后显示频谱以及波形。注意wav文件不要太长,否则运算会很慢。 [y,fs]=audiore...

  • FFmpeg 通过 showwavespic 获取音频的频谱图

    FFmpeg 的 showwavespic 滤镜如何得到频谱图 音频数据通常由波形图像表示。 FFmpeg 通过使...

  • matlab数据基础

    简介 % 注释。,显示结果,;不显示结果 matlab数据及数据分析 数据分析 max(x,dim) 最大,min...

  • matlab实现声音信号的频谱分析

    首先,我需要理清一下自己的思路 1.转化格式为wav——下载软件2.将声音信号放到matlab里面,那些特征如何显...

  • matlab图像显示及保存

    姓名:边颖超 学号:19021210974 利用MATLAB读取一张灰度和彩色图像,查看其对应的元素矩阵,将灰度图...

  • 20.QTableView操作及导出csv--Apple的学习笔

    一,前言 发现了身边的需求,我准备为此做个小工具。包括信息输出及绘制波形图。今天先解决表格信息显示。 二,需求 按...

  • 音频频谱的导出

    展示需要导出音乐中节奏 个人对节奏的理解就是频谱声音中的频谱 怎样让转换到电机上?频谱的高低直接映射为电机的角度将...

  • Qt 录音播放控件

    Qt 录音播放控件 [TOC] 功能 录音(自动保存WAV文件) 播放音频文件 音频频谱显示 背景色,频谱色可调 ...

  • matlab声音

    B=resample(x,f1,f2);%改变采样率f2->f1博客地址:vhcffh.com

  • 获取语音时域和频谱【MATLAB】

    将声音放于matlab中 到声音的格式、位数、频率等 设置采样时间 获取信号时域曲线 进行变换的点数 对n点进行傅...

网友评论

      本文标题:声音显示波形图及频谱matlab

      本文链接:https://www.haomeiwen.com/subject/vxpyqqtx.html