how do i seperate two different frequencies in one sound?

4 visualizzazioni (ultimi 30 giorni)
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 Commenti

Accedi per commentare.

Risposta accettata

Eqehan
Eqehan il 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.

Più risposte (0)

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by