用matlab从 PHONE_001.wav 提取基础 filter bank 特征,观察特征分 布特点 原始数据形式: 8k16bit pcm 截止频率: 60Hz 3400Hz 三角窗数量: 15 组
时间: 2024-09-22 11:03:43 浏览: 103
在MATLAB中提取PHONE_001.wav文件的基础filter bank特征通常涉及以下几个步骤:
1. **数据读入**:首先,你需要使用`audioread`函数将wav文件读入,因为它是8kHz 16位pcm格式,所以命令可能是这样的:
```matlab
[signal, fs] = audioread('PHONE_001.wav');
```
2. **预处理**:由于有60Hz到3400Hz的截止频率范围,需要对信号进行低通滤波以去除高频噪声,并可能进行窗口ing以减少时间域内的混叠效应。使用`fir1`函数创建带特定截止频率的滤波器,然后用`hamming`窗函数切割信号:
```matlab
window = hamming(length(signal));
signal_windowed = signal .* window;
[b, a] = fir1(150, 'lowpass', fs / 2, 'half'); % 使用150次样点的低通滤波器
filtered_signal = filter(b, a, signal_windowed);
```
3. **Filter Bank**:创建filter bank,这通常是通过计算一系列不同中心频率(例如等间隔的倍频程)的短时傅立叶变换(STFT)来实现。可以使用`spectrogram`或`fbank`函数结合`hamming`窗和指定的帧大小和移位来生成特征:
```matlab
frame_size = round(fs * (3400 - 60) / (15 * 2)); % 窗口长度
hop_size = round(frame_size / 2); % 移动步长
fbank_features = fbank(filtered_signal, frame_size, hop_size, fs);
```
4. **观察特征分布**:最后,你可以查看得到的FBANK特征矩阵,它通常是一个三维数组,其中第一维是帧索引,第二维是频率通道(15组),第三维是每个通道的幅度。使用`imagesc`或`scatter3d`等函数可视化各维度的变化,了解特征的分布情况。
阅读全文
相关推荐















