मैं एक ऐसी परियोजना पर काम कर रहा हूं जिसमें एक लहर फ़ाइल के साथ समय के साथ पिच/आवृत्ति में परिवर्तनों को देखना शामिल है (मैं MATLAB के लिए नया हूं, लेकिन प्रोग्रामिंग के लिए नहीं) । मैं समय-आयाम ग्राफ और आवृत्ति-आयाम (एक एफएफटी के बाद) ग्राफ को देखने में सक्षम हूं, लेकिन मैं आवृत्ति को अलग करने में सक्षम हूं और समय पर प्रत्येक बिंदु पर इसे कैसे दिखा सकता हूं?MATLAB - .wav फ़ाइल का प्लॉट समय-आवृत्ति ग्राफ
कोड:
filename = '/Users/Username/Sample_1.wav'
[y, fs] = wavread(filename);
y = y(:,1);
dt = 1/fs;
t = 0:dt:(length(y)*dt)-dt;
plot(t,y); xlabel('Seconds'); ylabel('Amplitude');
transformed = fft(y);
mag = abs(transformed);
plot(mag);
आप कहते हैं, "मैं आवृत्ति को अलग करने और समय पर प्रत्येक बिंदु पर इसे दिखाने में सक्षम कैसे होगा?" जहां तक यह जाता है, इसके कुछ अच्छे जवाब हैं, लेकिन यह जानना महत्वपूर्ण है कि ऐसी भावना में तत्काल आवृत्ति जैसी कोई चीज नहीं है जिसे आप चाहते हैं। दूसरे शब्दों में, कोई आवृत्ति मान नहीं है जो विशिष्ट रूप से समय पर प्रत्येक बिंदु से मेल खाता है (या, कम से कम, आप उस जानकारी को समय-डोमेन डेटा से प्राप्त नहीं कर सकते हैं। यदि आप कर सकते हैं, तो आप हेज़ेनबर्ग अनिश्चितता सिद्धांत का उल्लंघन करेंगे) । –