Страница 1 из 6
FFT, Интерпретация результата преобразования
Добавлено: 29 мар 2015, 12:15
Seges
Добрый день.
Изучая БПФ столкнулся с вопросом, ответ на который не могу найти самостоятельно.
Из DSP библиотеки для микроконтроллеров Nuvoton взят пример работы с функциями FFT.
В примере взят исходный сигнал - несущая 10КГц + белый шум.
Сигнал представляет собой вектор из 2048 чисел-выборок с частотой дискретизации 100КГц
Я промоделировал это пример в MATLAB.
После выполнения FFT вижу четыре зеркальных спектра вместо двух (информация из теоретических источников, что результатом БПФ есть два зеркальных спектра)
Окно преобразования берется 1024 отсчета исходного сигнала.
Файл-скрипт MATLAB прилагаю.
Подскажите, что сделано не верно?
Re: FFT, Интерпретация результата преобразования
Добавлено: 29 мар 2015, 14:44
Santik
Seges писал(а):
В примере взят исходный сигнал - несущая 10КГц + белый шум.
Сигнал представляет собой вектор из 2048 комплексных чисел-выборок с частотой дискретизации 100КГц
Я не очень понял: входной вектор комплексный?
Re: FFT, Интерпретация результата преобразования
Добавлено: 29 мар 2015, 15:00
Seges
Добрый день.
Заметил ошибку в первом сообщении, спасибо, исправил.
Исходно есть массив из 2048 точек преобразования АЦП с частотой дискретизации 100КГц.
Значения в массиве абсолютные.
Re: FFT, Интерпретация результата преобразования
Добавлено: 29 мар 2015, 16:38
Santik
Я в данных никаких "криминалов" не заметил.
Вот спектр:
Re: FFT, Интерпретация результата преобразования
Добавлено: 29 мар 2015, 17:44
Seges
Я вижу это.
И не могу понять почему.
Re: FFT, Интерпретация результата преобразования
Добавлено: 29 мар 2015, 17:59
Seges
Ваш спектр прям один-в-один из примера.
Можете выложить скрипт MATLAB?
Re: FFT, Интерпретация результата преобразования
Добавлено: 29 мар 2015, 18:15
Santik
Матлаба нет у меня и не предвидится
Fd=100000;
Ts=1024;
FftSig=abs(fft(Nuv_exam_signal,Ts));
% FftSig=FftSig(1:256); %
Вот это что? Это 256 значений FFT? Почему не 1024
% FftSig=2*FftSig./Ts; % Нормировка спектра по амплитуде
% FftSig(1)=FftSig(1)/2; % Нормировка постоянной составляющей в спектре
% fftshift(512); %
Это тоже не понятно что процедура делает
% Fh=0:Fd/Ts:Fd/2-1/Ts;
% plot(Fh,FftSig(1:length(Fh)));
Re: FFT, Интерпретация результата преобразования
Добавлено: 29 мар 2015, 18:23
Seges
Все, что ниже третьей строки - замаркированно как комментарий. Не участвует в выполнении.
Это были попытки подогнать результат под ответ, что бы понять, что не так.
Ничего не помогло.
Спектр выводится на график по данным массива FftSig после БПФ и взятия абсолютных значений - в третьей строке.
А где выполняли расчет и получили спектр?
Re: FFT, Интерпретация результата преобразования
Добавлено: 29 мар 2015, 18:37
Santik
Seges писал(а):А где выполняли расчет и получили спектр?
Написал программу на Фортране и результаты нарисовал в Excel
Re: FFT, Интерпретация результата преобразования
Добавлено: 29 мар 2015, 18:49
Seges
Понял, спасибо.
У вас спектр такой как и должен быть.
Может кто-то пользуется MATLAB и мой скрипт проверит?