how do i seperate two different frequencies in one sound?

5 views (last 30 days)
I have an voice record. It contains a man's speech and another dominant voice with different frequency.
How can i seperate them? Also, how can i delete jammer effect of dominant tone voice.
  6 Comments

Sign in to comment.

Accepted Answer

Eqehan
Eqehan on 12 Mar 2022
I completed the project. I used Fourier Transform(fft) and Band-Pass Filter. I am sharing the codes and screenshots for community.
clear all;close all;clc; % Clear everything
[data, Fs] = audioread('sound1.wav'); % Define sound document
D= fft(data); % Fourier Transform of data of our sound
plot(real(D)); % Plot the real part of fourier transform.
I found human voice frequencies at the result of fourier transform. It is between 1500-7500Hz. So i want to take just this frequencies. Then i made an Band-Pass Filter.
Band-Pass Filter
clear all;close all;clc; % Clear everything
[data, Fs] = audioread('sound1.wav'); % Define sound document
N=128; % Order of filter
Fn = Fs/2; % Nyquist Freq
fc1 = 1500/Fn; % Cut_Off Freq 1 - 1500Hz
fc2 = 7500/Fn; % Cut_Off Freq 2 - 7500Hz
B = fir1(N, [fc1 fc2], 'bandpass'); % Band-Pass Filter
ses_filtered = filtfilt(B, 1, data); % Apply filter
sound(ses_filtered,Fs); % Play the filtered sound
audiowrite('sound_result.wav',ses_filtered,Fs); %record the new sound
So, the first subplot(2,1,1) shows my raw sound, which has noise in high frequency.
Second subplot(2,1,2) shows the result.

More Answers (0)

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!