Effacer les filtres
Effacer les filtres

How can i restore complex numbers from abs(fft)?

1 vue (au cours des 30 derniers jours)
HS Kim
HS Kim le 28 Nov 2016
Modifié(e) : HS Kim le 29 Nov 2016
I made this function
{
function [y,AudioFft,fs,TimeDomain,FreqDomain] = ReadWavFile(filename)
[y,fs] = audioread(filename); %Load File
TimeDomain = 0:1/fs:(length(y)-1)/fs; % Time Domain
N = length(y); %wav file length
AudioFft = fft(y); % fft
AudioFft = AudioFft(1:N/2+1); %Deleting mirror image that was made by abs
FreqInterval = fs/N; % Frequency Interval
FreqDomain = 0:FreqInterval:fs/2; %Freq domain (deleted mirror image so fs/2)
end
}
I am making equalizer by matlab
I made the graph(x domain is Freq and y domain is amplitude(that was made by abs(AudioFft), exactly plot(FreqDomain,abs(AudioFft)) that changed by moving of sliderbar of gui
I want to play sound that changed by moving of slider bar
So I think I have to restore abs and return to Time domain by ifft to use sound function(sound(y,fs)).
How can i do?
In short, How can i restore complex number?

Réponse acceptée

dpb
dpb le 28 Nov 2016
"In short, How can i restore complex number?"
In short, "you can't" once you've thrown away the separate magnitude and phase, it's lost irretrievably. "Don't do that!"
  1 commentaire
HS Kim
HS Kim le 29 Nov 2016
Modifié(e) : HS Kim le 29 Nov 2016
i used this way that x*sqrt(a^2+b^2) = abs(x(a+bi))
anyway thanks :D

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by