Clear Filters
Clear Filters

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

1 view (last 30 days)
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?

Accepted Answer

dpb
dpb on 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 Comment
HS Kim
HS Kim on 29 Nov 2016
Edited: HS Kim on 29 Nov 2016
i used this way that x*sqrt(a^2+b^2) = abs(x(a+bi))
anyway thanks :D

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!