есть программа, которая детектирует данные, делает быстрое преобразование фурье и выводит графики, как перевести ее в С код?? Помогите кто-нибудь
Код: Выделить всё
clc; close all; clear;
%% Чтение данных
% Указываем необходимый файл
[FileName, PathName, ix] = uigetfile('D:\Tugikov\Буркун\red.txt',...
'Выберите файл данных...');
if ix==0
msgbox('Файл не выбран', '', 'warn')
return
end
% Читаем данные из указанного файла по указанному адресу. Разделитель -
% табулятор
data = dlmread([PathName FileName], '\t');
% Первый столбец - время
t = data(:, 1);
% Второй сигнал - сигнал
y = data(:, 2);
%yrs=resample(y,8192,200074);
%% Расчет параметров
% Частота дискретизации
fs = 1/(mean(diff(t)));
% Длина сигнала (кол-во отсчетов)
L = length(y);
% Размерность БПФ
nfft = 2^nextpow2(L);%That is, p that satisfies 2^p >= abs(A)
% Вектор частот (для построения графика)
freq = fs/2*linspace(-1, 1, nfft);
% Комплексный спектр сигнала
S = fft(y, nfft)/nfft;
yabs=abs(y);
Sabs=fft(yabs, nfft)/nfft;
% Нормировка постоянной составляющей
S(1) = S(1)/2;
Sabs(1)=Sabs(1)/2;
% Модуль спектра
mag = 2*abs(S);
magabs=2*abs(Sabs);
% Модуль спектра (в дБ)
mag_dB = 10*log10(mag);
%% Графики
% Создаем две графических оси для построения сигнала и его спектра
hA(1) = axes('Position', [.1 .53 .875 .4]);
hA(2) = axes('Position', [.1 .12 .875 .3]);
% Сигнал
set(gcf, 'CurrentAxes', hA(1))
plot(t, y); grid on
xlim([t(1) t(end)])
xlabel('t, с')
ylabel('U(t)')
%plot(mag_dB(1:12000));
% Спектр
set(gcf, 'CurrentAxes', hA(2))
plot(freq/1e3, fftshift(mag_dB), 'Color', [.85 .330 .1]); grid on
xlim([0 fs/2]/1e3)
xlabel('f, кГц')
ylabel('|S(f), дБ|')
figure;
plot(mag(3250:3300));
figure;
plot(magabs(1:300));
figure;
plot(yabs);
% Программно разворачиваем окно (не обязательно)
pause(.1)
warning('off','MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame');
set(get(handle(gcf),'JavaFrame'), 'Maximized', true);