利用MATLAB读取一个WAV文件,并画出其波形图。将此WAV文件的信号幅度衰减一半后再存为另一个WAV文件,并在一个图中画出其波形,要求两个波形的坐标范围相同。
时间: 2024-09-20 19:16:08 浏览: 49
makeWaves:将 DAQ 通道转换为 WAV 文件-matlab开发
在MATLAB中,你可以通过`audioread`函数读取WAV文件并获取音频数据,然后利用`plot`绘制原始波形图。要对信号衰减一半,可以简单地除以2。保存新文件通常使用`audiowrite`函数。下面是一个基本步骤的示例:
1. 首先,使用`audioread`读取WAV文件:
```matlab
[y, Fs] = audioread('your_wav_file.wav'); % 'your_wav_file.wav' 替换为你要处理的实际文件名
```
2. 创建原始波形图:
```matlab
t = (0:length(y)-1)/Fs; % 时间轴
plot(t, y);
xlabel('Time (s)');
ylabel('Amplitude');
title('Original Waveform');
```
3. 对信号衰减一半:
```matlab
y_half = y / 2;
```
4. 写入新的WAV文件,并绘制衰减后的波形:
```matlab
new_y_file = 'half_amplitude.wav'; % 新的WAV文件名
audiowrite(new_y_file, y_half, Fs);
plot(t, y_half);
hold on; % 保持当前图形以便叠加
```
5. 如果需要让两个波形的坐标范围相同,可以在绘制第二个波形前设置轴限:
```matlab
xlim([min(t) max(t)]);
```
6. 最后,记得关闭图层:
```matlab
hold off;
```
完成以上步骤后,你就得到了原始波形图和衰减一半后的波形在同一坐标系内。
阅读全文