Я пытаюсь использовать алгоритм FFT для построения графика простого аудиофайла с величиной против частоты, он работает, но я пытаюсь открыть окно сигнала с целью устранения утечки частоты на боковых лепестках основных частот. Он просто дает мне ошибкуОшибка при попытке открыть аудиофайл с помощью FFT в matlab
здесь код без кадрирования (который работает):
[x,fs]=audioread('E:\voice_hum.wav');
x1=x;
plot_points = 100000;
h=fft(x1,plot_points);
freq = h(1:50001); %dump data after half FS
mag = abs(freq);
freq = 0.5 * fs *(0:50000)/50000; %frequency on x-axis
plot(freq,mag)
вот код, когда я попытался реализации окно Хэмминга:
[x,fs]=audioread('E:\voice_hum.wav');
x1 = x(1:100);
w = hamming(100);
plot_points = 100000;
x1 = x1.*w'; %window the signal
h=fft(x1,plot_points);
freq = h(1:50001); %dump data after half FS
mag = abs(freq);
freq = 0.5 * fs *(0:50000)/50000;
plot(freq,mag)
его дает мне эту ошибку:
Error using .* Matrix dimensions must agree.
Error in lab8b (line 12) x1 = x1.*w'; %window the signal
Я немного смущен, кто-то знает, делать?
Рассмотрите возможность использования ['pwelch'] (http://www.mathworks.de/de/help/signal/ref/pwelch.html) вместо того, чтобы выполнять окна и усреднять себя. – nibot
Хотя из имени файла ('lab8b.m') я вижу, что это домашнее задание. (-: – nibot
Да, я очень новичок в этих концепциях, домашняя работа не решала эту проблему, домашняя работа делала все: P (на всякий случай, когда вы думали, что я пытаюсь заставить людей делать домашнее задание для меня) Я не хочу наступать на чьи-то пальцы здесь – shellcoder