Я выбрал выходной ток 50 Гц инвертора с частотой дискретизации 50 кГц в течение 1 минуты. Я должен разделить время на 200 мс пакетов (0,2 с или 10 периодов основного сигнала) и делать БПФ на каждом пакете. Таким образом, это означает, что у меня есть 10000 выборок в каждом пакете (если не я ноль или усечка, это не имеет большого значения). Я также должен извлечь частотный спектр до 9 кГц. Результаты подходят для низких частот, но у меня неправильные результаты (значения составляют половину того, что для высокой частоты). Не могли бы вы помочь мне понять, что я делаю неправильно?FFT ошибочные результаты для высоких частот?
У меня есть идея, возможно, что-то вроде кода ниже происходит с моим FFT. Просто измените SF на 10000 и посмотрите, как результаты будут изменены!
in this code if you change the SF(sampling frequency) from 30000 to 10000,
the results for high frequncies will be distorted and disordered . why ?
SF = 30000; %sampling frequency
% signal
t = 0:1/SF:1-1/SF; % sample points
wave=15*sin(2*pi*1*t)+1*sin(2*pi*123*t)+2*sin(2*pi*203*t)+3*sin(2*pi*223*t)+4*sin(2*pi*331*t)+5*sin(2*pi*2812*t)+6*sin(2*pi*5752*t)+7*sin(2*pi*7993*t);
wavefft = fft(wave);
L=floor(size(wave,2)/2)+1; % removing the mirror side of spectrum
MagSpec = abs(wavefft(1:L))/(SF/2); %% removing the mirror side of the spectrum
and ranging the domain
plot(MagSpec);
Вы оконного пакеты? FFT предполагает периодичность, поэтому вы должны применить окно перед FFT или получить дополнительные высокочастотные компоненты. –
Возможно, вы сделали что-то не так, потому что вы не используете окно с образцом размером n^2 и где-то по пути вы получаете неправильные результаты. Попробуйте образцы 16384 или 8912 за один раз ... –
Пол, я думаю, что это не проблема с окном, и мне не разрешено открывать мои данные в соответствии с последствиями моей работы! – Ali