Downsample audio signal am I doing it right?
    16 views (last 30 days)
  
       Show older comments
    
Hello,
I have an audio file and I want to perform Downsampling 
form 44100 to 22050 / from 22050 to 11025 / from 11025 to 8000
Please find bellow my code.
   [samples,fs] = audioread ('piano.wav');
    audiowrite('piano.wav', samples,fs);
        subplot (2,1,1)
        plot(samples)
        xlabel 'audio signal'
% processing second part downsampling
S1 = resample(fs,22050,44100);          % downsample from 44100 to 22050
S2 = resample (S1,11025,22050);         % downsample from 22050 to 11025
S3 = resample (S2,8000,11025);          % doensample from 11025 to 8000
5 Comments
  Henrik Gunnar Sundt
 on 18 Jun 2020
				You probably mean:
S1 = resample(samples,22050,44100);
not:
S1 = resample(fs,22050,44100);
Answers (1)
  Yash Bansod
 on 27 Sep 2019
        I don't think that you are doing it rigt.
The following post describes the correct procedure: https://www.mathworks.com/help/signal/ug/changing-signal-sample-rate.html 
To summerize:
% Code to read audio files
[y,Fs] = audioread(filename);
% code to resample audio
Fs_new = 16000;
[Numer, Denom] = rat(Fs_new/Fs);
y_new = resample(y, Numer, Denom);
% Code to play an already read audio file
sound(y, Fs);
0 Comments
See Also
Categories
				Find more on Multirate Signal Processing in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



