通过 matlab 将 MP3 文件从 44.1 KHz 重新采样到 48 KHz(创建我自己的重采样函数)



我正在尝试将 mp3 文件 (fs = 44.1 KHz) 上采样(重新采样)到 48 KHz,并使用 matlab 将其写入 wav 文件。
我阅读了文件,然后选择了FFT,但我不知道如何在频域中添加零。事实上,我已经编写了自己的重采样函数你能帮我解决上述问题吗:

[y,Fs] = audioread('piano.mp3');
left=y(:,1); % entire rows and first column
time=(1/44100)*length(left);
t=linspace(0,time,abs(length(left)));
stem(t,abs(left));
%% fft %%
y1= fft(y(:,1));
left1=y1(:,1); % all rows and first column
time1=(1/44100)*length(left1);
t1=linspace(0,time1,abs(length(left1)));
stem(t1,abs(left1));
***%% ???? place to add zero ??***

%% fftshift(fft(x))%%
y1= fftshift(fft(y(:,1)));
left1=y1(:,1); % all rows and first column
time1=(1/44100)*length(left1); 
t1=linspace(0,time1,abs(length(left1)));
plot(t,left)

您需要在上采样和下采样阶段之间使用低通滤波器,以消除否则会发生的混叠。此功能内置于 matlab 重采样函数中。

链接

最新更新