Advertisement
Guest User

dspLowPassFilter

a guest
Mar 20th, 2019
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. %% spectrum
  2. clear;
  3. clc;
  4. audioSpectrumLow = 20; % 20 hz
  5. audioSpectrumHigh = 20000; % 20 khz
  6. [input Fs] = audioread('sample.wav');
  7. %sound(input,Fs)
  8. N = length(input); %% get the length of the audio signal
  9. spectra = abs(fft(input, N)); %% do the fast fourrier transformaiton
  10. spectra = spectra(1:N/2 + 1); %%
  11. freqs = (Fs / N) * (0 : N/2);
  12. stem(freqs, spectra);
  13. figure
  14. ylabel('amplitude');
  15. xlabel('f(hz)')
  16. %xlim([audioSpectrumLow audioSpectrumHigh]);
  17. % noise frequency = 6000hz
  18.  
  19.  
  20. cutoffFrequency = 3000; %noise frequency /2
  21. T = 1./Fs;
  22. t = 1./(2.*pi.*cutoffFrequency); % tau
  23. output = zeros(N,1);
  24. for n = 2:N
  25. output(n) = output(n-1).*exp(-T/t) + input(n-1).*(1-exp(-T/t));
  26. end
  27. %sound(output,Fs);
  28. %plot spectrum
  29. spectra = abs(fft(input, N)); %% do the fast fourrier transformaiton
  30. spectra = spectra(1:N/2 + 1); %%
  31. freqs = (Fs / N) * (0 : N/2);
  32. stem(freqs, spectra);
  33.  
  34. audiowrite('output.wav',output,Fs);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement