【发布时间】:2019-12-02 17:27:44
【问题描述】:
我在尝试在 MATLAB 中读取信号时遇到了一个小问题。
audioread 函数将音频文件转换为其单独的样本。audioinfo 函数检查音频文件并返回与信号相关的信息。
代码sn-p如下。
clear all;
%Read in the song
mySong = audioread('IowaFightSong.mp3');
%Get some information about the song
info = audioinfo('IowaFightSong.mp3')
我希望这两个函数具有相同数量的样本,但它们略有不同。
audioread 返回一个长度为 3,043,056 的数组audioinfo 的 TotalSamples 值为 3,043,582
这 2 个值相差 526 个样本。
当我改为使用 MATLAB 的示例音频文件之一运行代码时
clear all
load handel.mat
audiowrite('handel.wav',y,Fs)
info = audioinfo('handel.wav')
y = audioread('handel.wav');
audioread 和 audioinfo 的样本总数相同,均为 73,113。
我想知道是否有人可以解释这两个函数之间总样本的差异?
一个简单的解决方法是
clear all;
%Read in the song
mySong = audioread('IowaFightSong.mp3');
%Get some information about the song
info = audioinfo('IowaFightSong.mp3')
info.TotalSamples = length(mySong)
info.Duration = info.TotalSamples/info.SampleRate
【问题讨论】:
标签: matlab audio signal-processing