通过matlab将mp3文件从44.1 KHz重采样到48 KHz(创建我自己的重采样功能)

通过matlab将mp3文件从44.1 KHz重采样到48 KHz(创建我自己的重采样功能),matlab,signal-processing,Matlab,Signal Processing,我正在尝试将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,a

我正在尝试将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重采样功能中


有任何不使用重采样函数的原因吗?您是否试图重新创建
重采样
?因为这是一个赋值,所以我不允许使用诸如重采样()之类的matlab内置函数。是的,我想重新创建重采样。提示:因为这是一个赋值,所以我不允许使用诸如重采样()之类的matlab内置函数。