我正在尝试在MATLAB中实现以下系统。 我正在读取音频信号,想要执行下面的操作。
到目前为止,我已经完成了以下工作:%read the audio file
[y,Fs] = audioread('input_original.wav');
syms k x
yx = symsum(k, k, -inf, y);
%write the output
audiowrite('signal_divbb.wav',yx,Fs,'BitsPerSample',64)
有没有办法正确实现这个信号?我不熟悉MATLAB
答案 0 :(得分:4)
audioread
(您的y
变量)的输出有m
行n
列,其中m
是信号长度,n
是通道数(2为立体声)。您可以按如下方式使用cumsum
:
yx = cumsum(y, 1);
这计算沿第一维度(即时间)的累积和。因此yx(k,c)
等于y(1,c)+y(2,c)+...+y(k,c)
,其中k
的范围从1
到m
,而c
是来自1
的渠道索引到n
。