How to get frequency of a wav file for per cycle in matlab?
5 views (last 30 days)
Show older comments
hi everyone , I want to compare the voice of male and female and wants to find difference between them,
for example :frequency on per cycle , any suggestion? what to do ?how to do.
0 Comments
Accepted Answer
Image Analyst
on 17 Jan 2019
If you have the Signal Processing Toolbox, try spectrogram() or pwelch().
Otherwise, try fft().
3 Comments
Image Analyst
on 17 Jan 2019
Start here:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 16;
% Read and plot signal.
[y, fs] = audioread('guitartune.wav');
subplot(2, 2, 1);
plot(y, 'b-');
grid on;
title('Audio Waveform', 'FontSize', fontSize);
xlabel('Index', 'FontSize', fontSize);
ylabel('Signal Amplitude', 'FontSize', fontSize);
% Compute and plot spectrogram
subplot(2, 2, 2);
spectrogram(y);
title('Spectrogram', 'FontSize', fontSize);
% Compute and plot power.
audioPower = pwelch(y);
subplot(2, 2, 3);
plot(audioPower, 'b-');
grid on;
xlim([0, 5000]);
title('P Welch Power', 'FontSize', fontSize);
xlabel('Frequency', 'FontSize', fontSize);
ylabel('Power', 'FontSize', fontSize);
% Compute and plot power.
pxx = periodogram(y);
subplot(2, 2, 4);
plot(pxx, 'b-');
grid on;
xlim([0, 5000]);
title('Periodogram', 'FontSize', fontSize);
xlabel('Frequency', 'FontSize', fontSize);
ylabel('Power', 'FontSize', fontSize);
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);
Sorry I can't give you a full tutorial on signal analysis but this should get you started.
More Answers (0)
See Also
Categories
Find more on Time-Frequency Analysis in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!