Страница 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
Я в данных никаких "криминалов" не заметил.
Вот спектр:
Спектр.JPG

Re: FFT, Интерпретация результата преобразования

Добавлено: 29 мар 2015, 17:44
Seges
Я вижу это.
И не могу понять почему.

Re: FFT, Интерпретация результата преобразования

Добавлено: 29 мар 2015, 17:59
Seges
Ваш спектр прям один-в-один из примера.
Можете выложить скрипт MATLAB?

Re: FFT, Интерпретация результата преобразования

Добавлено: 29 мар 2015, 18:15
Santik
Матлаба нет у меня и не предвидится :D


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 :D :D

Re: FFT, Интерпретация результата преобразования

Добавлено: 29 мар 2015, 18:49
Seges
Понял, спасибо.
У вас спектр такой как и должен быть.
Может кто-то пользуется MATLAB и мой скрипт проверит?