zoukankan      html  css  js  c++  java
  • 音频信号介绍以及MATLAB简单处理

    音频信号(Audio Signal),泛指由人耳听到的各种声音之信号。
    基本特征:
    音量(Volume):声音的大小称为音量,又称为力度,强度(intensity)或是能量(Energy)。音量越大,代表音频信号的波形振幅越大。
    音高(Pitch):声音的基本频率(基频,Fundamental Frequency)。
    音色(Timber):音频信号波形在每个周期内的变化,形成此声音的特质音色(主要是频谱特征)。

    取样点数:长度(Y)
    取样频率(取样点/秒):FS
    音频信号的长度(秒):长度(Y)/ FS音频
    量化位数:nbits


    MATLAB对音频信号处理的函数

    音频信号读入:

    [ y, fs] = wavread('welcome.wav', [4001 5000]); %读取4001~5000点的数据

    若wav信号是8bits量化,以unsigned interger存储器,其所能表示的数值介于0~255之间。MATLAB读入数据时将其归一化到-1~1,若要还原成unsigned interger时,将变量 y 乘以128,再加上128,就可得到原来的整数值。

    音频信号的播放

    将音频信号读入之后,就可做处理了如:放大音量,提高或降低音高,去噪等。

    通过改变振幅的大小调节音量

     wavplay(1*y, Fs, 'sync'); % 播放1倍振幅的音频信号

    改变播放时的采样频率,改变音频信号的时间长度,进而影响到音高。提高采样频率,听到的声音越高,最后出现像唐老鸭的声音。反之,像牛叫的声音。

    wavplay(y, 1.2*Fs, 'sync');  % 同步播放 1.2 倍速度的音频信号

    将音频信号的波形上下颠倒,听到的声音基本上是一样的,但是如果是前后颠倒,听到的声音就像录音带倒带

    原声音播放:

    wavplay(y, Fs, 'sync');

    播放上下颠倒的音频:

    wavplay(-y, Fs, 'sync');

    播放前后颠倒的音频:

    wavplay(flipud(y), Fs, 'sync');

    通常在使用wavplay播放音频信号时,MATLAB会停止进行其他操作,直到音频播放完成。此种方式称为同步(synchronous)。若需要一边播放、一边进行其他运算,就必须使用非同步(Asynchronous)。

    wavplay只能用于微软的Windows平台,在其他操作系统中用sound。

    sound(y, Fs); 默认非同步;

    MATLAB可直接录麦克风的信号。

    y = wavrecord(n, fs);

    MATLAB也可直接将信号直接存储为wav格式

    wavwrite(y, fs, nbits, waveFile) ;

  • 相关阅读:
    GIT 基本语句
    SpringBoot查看哪些配置类自动生效
    LeetCode第一题 两数之和
    static{} java中的静态代码块
    mybatis引入mapper映射文件的4种方法(转)
    MySQL Charset/Collation(字符集/校对)(转)
    MySQL数据库的创建(详细)
    Eclipse出现Tomcat无法启动:Server Tomcat v8.5 Server at localhost failed to start问题
    判断一个int类型数字的奇偶性
    linux中安装erlang时使用make命令报错问题
  • 原文地址:https://www.cnblogs.com/dpc525/p/2396729.html
Copyright © 2011-2022 走看看