matlab中wavread函数,关于wavread函数的用法

在pr9_3_1 程序中,注明的是使用wavread函数读入一帧语音信号,那么读入的是哪一帧数据,能够选择读入数据的帧数吗?

程序代码如下

clear all; clc; close all;

fle='C:\Users\lenovo\Desktop\snn27.wav';                            % 指定文件名

[x,fs]=wavread(fle);                        % 读入一帧语音信号

u=filter([1 -.99],1,x);                     % 预加重

wlen=length(u);                             % 帧长

p=12;                                       % LPC阶数

a=lpc(u,p);                                 % 求出LPC系数

U=lpcar2pf(a,255);                          % 由LPC系数求出频谱曲线

freq=(0:256)*fs/512;                        % 频率刻度

df=fs/512;                                  % 频率分辨率

U_log=10*log10(U);                          % 功率谱分贝值

subplot 211; plot(u,'k');                   % 作图

axis([0 wlen -0.5 0.5]);

title('预加重波形');

xlabel('样点数'); ylabel('幅值')

subplot 212; plot(freq,U,'k');

title('声道传递函数功率谱曲线');

xlabel('频率/Hz'); ylabel('幅值');

[Loc,Val]=findpeaks(U);                     % 在U中寻找峰值

ll=length(Loc);                             % 有几个峰值

for k=1 : ll

m=Loc(k);                               % 设置m-1,m和m+1

m1=m-1; m2=m+1;

p=Val(k);                               % 设置P(m-1),P(m)和P(m+1)

p1=U(m1); p2=U(m2);

aa=(p1+p2)/2-p;                         % 按式(9-3-4)计算

bb=(p2-p1)/2;

cc=p;

dm=-bb/2/aa;                            % 按式(9-3-6)计算

pp=-bb*bb/4/aa+cc;                      % 按式(9-3-8)计算

m_new=m+dm;

bf=-sqrt(bb*bb-4*aa*(cc-pp/2))/aa;      % 按式(9-3-13)计算

F(k)=(m_new-1)*df;                      % 按式(9-3-7)计算

Bw(k)=bf*df;                            % 按式(9-3-14)计算

line([F(k) F(k)],[0 pp],'color','k','linestyle','-.');

end

fprintf('F =%5.2f   %5.2f   %5.2f   %5.2f\n',F)

fprintf('Bw=%5.2f   %5.2f   %5.2f   %5.2f\n',Bw)

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计步骤: 1、语音信号的采集 利用Windows下的录音机录制一段自己的话音,或采用其它软件截取一段音乐信号,然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。 2、语音信号的频谱分析 在Matlab,可以利用函数FFT对信号进行快速傅立叶变换,得到信号的频谱特性,要求学生首先画出语音信号的时域波形,然后对语音信号进行频谱分析。 3、对语音信号分别加入正弦噪声和高斯白噪声,使信噪比为(学号)dB,画出加噪信号的时域波形和频谱图;关于噪声信号,噪声类型分为如下几种:(1)白噪声;(2)单频噪声(正弦干扰);(3)多频噪声(多正弦干扰);(4)其他干扰,如低频、高频、带限噪声,或chirp干扰、充激干扰。 4、设计数字滤波器,并画出其频率响应。 对叠加噪声前后的信号进行频谱分析,确定降噪的滤波器指标;或者根据如下给定的滤波器性能指标: (1) 低通滤波器的性能指标: =1000Hz, =1200Hz, =1dB, =100dB; (2) 高通滤波器的性能指标: =4800Hz, =5000Hz, =100dB, =1dB. (3) 带通滤波器的性能指标: =1200Hz, =3000Hz, =1000Hz, =3200Hz, =100dB, =1dB。 采用窗函数法设计上面要求的3种滤波器,并画出滤波器的频率响应; 5、用滤波器对信号进行滤波 用自己设计的滤波器对加噪信号进行滤波,画出滤波后信号的时域波形及频谱,并对滤波前后的信号进行对比,分析信号的变化; 6、回放语音信号,分析滤波前后的语音变化,验证滤波效果
### 回答1: wavread函数MATLAB读取WAV文件的函数。它的语法如下: [y, Fs] = wavread(filename) 其,filename是要读取的WAV文件名,y是读取到的音频数据,Fs是采样率。 例如,要读取名为test.wavWAV文件,可以使用以下代码: [y, Fs] = wavread('test.wav') 读取到的音频数据存储在y,采样率存储在Fs。可以使用MATLAB的其他函数对读取到的音频数据进行处理和分析。 ### 回答2: MATLABwavread函数主要用于读取wav文件并将其解码成数字信号。wavread函数可以输出两个参数,第一参数为解码后的音频数据,数组的大小为[R,C];第二参数为采样率,表示每秒采样的样本数。 wavread函数的语法格式为: [y,Fs] = wavread('filename'); 其,filename表示要读取的wav文件名,y为解码后得到的音频数据,Fs为对应的采样率。 特别地,若要在读取音频时截取其的一部分,可以使用下面的语法格式: [y,Fs] = wavread('filename', [start, end]); 其,start和end表示开始采样和结束采样的位置,单位为采样数。该语法会返回wav文件从start到end段时间的音频数据和对应的采样率。 wavread函数还有一些其他的参数选项,例如: - 'native': 以原始尺寸读取音频文件,返回的数据类型是单精度浮点数。 - 'double': 以双精度浮点数的形式读取音频文件。 - 'char': 以字符形式读取音频文件,返回的数据类型是char。该格式通常用于加载文本音频音乐。 在使用wavread函数时,用户需要注意以下几点: 1. wavread函数需要读取的wav文件必须处于MATLAB可以访问的路径下。 2. wav文件的采样率可能不同,需要根据实际情况进行处理或转换。 3. 如果wav文件过大,可能会导致读取和存储速度变慢,可以考虑读取和处理部分数据,而不是整个文件。 总之,wavreadMATLAB常用的读取wav文件的函数,用户可以根据实际需求进行选择和处理。 ### 回答3: 在MATLAB进行音频处理时,其一个最基础的操作就是读取音频文件,wavread函数就是用来读取WAV格式音频文件的。具体使用方法如下: 语法:[y, Fs] = wavread(filename) 参数: - filename:需要读取的WAV文件的文件名。可以是完整路径名,也可以是相对路径名。 输出: - y:读取的音频数据,其类型为双精度数组,每个样本值都在-1到1之间。如果该音频文件有多声道,则返回的y是一个矩阵,每一列代表一个声道的数据。 - Fs:音频数据的采样频率,以赫兹为单位。 使用示例: 读取“test.wav”文件并存储到变量y: [y, Fs] = wavread('test.wav'); 读取“test.wav”文件并仅返回音频数据: y = wavread('test.wav'); 注意:Matlab R2015b及其以上版本已经不再支持wavread函数,而是被audioread函数替代。使用audioread的方式与wavread类似: 语法:[y, Fs] = audioread(filename) 参数与输出与wavread函数相同,仅语法不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值