How can PLOT the time waveform and its frequency-domain representation using FFT
Afficher commentaires plus anciens
filename = 'abc.mp3';
audioinfo(filename)
[y,Fs] = audioread(filen);
N = size(y,1);
t = [0:1/Fs:(N-1)/Fs];
f = ([0:1:N-1]/N-0.5)*Fs;
ys = y(:,1); %
plot(t);
2 commentaires
KSSV
le 12 Juin 2020
Read the documentation of fft. It is a striaght forward task. It is easy.
CHIN XUAN TEE
le 12 Juin 2020
Réponses (1)
Surya Talluri
le 14 Août 2020
I understand that you want to observe the signal in both time and frequency domain.
You can directly plot the signal in time domain
[y,Fs] = audioread(filename);
N = size(y,1);
t = (0:N-1)/Fs;
plot(t, y)
xlabel('Time(s)')
ylabel('Amplitude')
Y = fft(y,N);
F = ((0:1/N:1-1/N)*Fs).';
magnitudeY = abs(Y); % Magnitude of the FFT
phaseY = unwrap(angle(Y)); % Phase of the FFT
dB_mag=mag2db(magnitudeY);
subplot(2,1,1);
plot(F(1:end/2),dB_mag(1:end/2));
title('Magnitude response of signal');
ylabel('Magnitude(dB)');
subplot(2,1,2);
plot(F(1:end/2),phaseY(1:end/2));
title('Phase response of signal');
xlabel('Frequency in kHz')
ylabel('radians');
You can refer to following Frequency Domain Analysis documentation for further understanding - https://www.mathworks.com/help/signal/examples/practical-introduction-to-frequency-domain-analysis.html
Catégories
En savoir plus sur Get Started with Signal Processing Toolbox dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!