मुझे आश्चर्य है कि क्या मैं MATLAB में फूरियर ट्रांसफ़ॉर्मेशन का सही तरीके से उपयोग कर रहा हूं। मैं एक गीत में आवृत्तियों के लिए सभी औसत आयाम चाहते हैं। परीक्षण उद्देश्यों के लिए मैं a free mp3 download of Beethovens "For Elise" का उपयोग कर रहा हूं जिसे मैंने Audacity का उपयोग करके 8 केएचजेड मोनो वेव फ़ाइल में परिवर्तित किया।क्या मैं फूरियर रूपांतरण का सही तरीके से उपयोग कर रहा हूं?
clear all % be careful
% load file
% Für Elise Recording by Valentina Lisitsa
% from http://www.forelise.com/recordings/valentina_lisitsa
% Converted to 8 kHz mono using Audacity
allSamples = wavread('fur_elise_valentina_lisitsa_8khz_mono.wav');
% apply windowing function
w = hanning(length(allSamples));
allSamples = allSamples.*w;
% FFT needs input of length 2^x
NFFT = 2^nextpow2(length(allSamples))
% Apply FFT
fftBuckets=fft(allSamples, NFFT);
fftBuckets=fftBuckets(1:(NFFT/2+1)); % because of symetric/mirrored values
% calculate single side amplitude spectrum,
% normalize by dividing by NFFT to get the
% popular way of displaying amplitudes
% in a range of 0 to 1
fftBuckets = (2*abs(fftBuckets))/NFFT;
% plot it: max possible frequency is 4000, because sampling rate of input
% is 8000 Hz
x = linspace(1,4000,length(fftBuckets));
bar(x,fftBuckets);
उत्पादन तो इस तरह दिखता है:
- कर सकते हैं किसी कृपया मुझे बताओ अगर मेरे कोड सही है
मेरे MATLAB कोड इस प्रकार है? मैं विशेष रूप से चोटी के बारे में सोच रहा हूं 0.
- सामान्यीकरण के लिए, क्या मुझे
NFFT
याlength(allSamples)
से विभाजित करना है? - मेरे लिए यह वास्तव में बार चार्ट की तरह नहीं दिखता है, लेकिन मुझे लगता है कि यह कई मूल्यों के कारण है जो मैं साजिश कर रहा हूं?
किसी भी संकेत के लिए धन्यवाद!
क्या आपने यह पृष्ठ देखा है: [सरल स्पेक्ट्रल विश्लेषण प्लॉट प्राप्त करने के लिए एफएफटी का उपयोग] [http://www.mathworks.com/support/tech-notes/1700/1702.html)। इसमें बहुत सारे स्पष्टीकरण के साथ एक उदाहरण है – Amro