Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Matlab нахождения максимальных значений пиков
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
gashnikovkolya
Добрый день! Помогите пожалуйста не могу построить гистограмму и найти максимальные значения пиков в спектре.
clear, clc, close;
% Параметры
Tm=5;% Длина сигнала (с)
Fd=1750;% Частота дискретизации (Гц)
Ak=0.5;% Постоянная составляющая
A1=1;% Амплитуда первой гармоники
A2=0.8;% Амплитуда 3 гармоники
A3=0.5;% Амплитуда 5 гармоники
A4=0.22;% Амплитуда 7 гармоники
F1=50;% Частота первой гармоники (Гц)
F2=150;% Частота 3 гармоники (Гц)
F3=250;% Частота 5 гармоники (Гц)
F4=350;% Частота 7 гармоники (Гц)
Phi1=0;% Начальная фаза первой гармоники (Градусов)
Phi2=206.26;% Начальная фаза 3 гармоники (Градусов)
Phi3=34.38;% Начальная фаза 5 гармоники (Градусов
Phi4=217.72;% Начальная фаза 7 гармоники (Градусов
FftL=2048;% Количество линий Фурье спектра
% % Генерация рабочих массивов
T=0:1/Fd:Tm;% Массив отсчетов времени
Signal=Ak+A1*sind((F1*360).*T+Phi1)+A2*sind((F2*360).*T+Phi2)+A3*sind((F3*360).*
T+Phi3)+A4*sind((F4*360).*T+Phi4);% Массив сигнала
% % Спектральное представление сигнала
FftS=abs(fft(Signal,FftL));% Амплитуды преобразования Фурье сигнала
FftS=4*FftS./FftL;% Нормировка спектра по амплитуде
FftS(1)=FftS(1)/4;% Нормировка постоянной составляющей в спектре
% % Построение графиков
plot(T,Signal);% Построение сигнала
title('Сигнал');% Подпись графика
xlabel('Время (с)');% Подпись оси х графика
ylabel('Амплитуда ');% Подпись оси у графика

F=0:Fd/FftL:Fd/4-1/FftL;% Массив частот вычисляемого спектра Фурье
figure% Создаем новое окно
plot(F,FftS(1:length(F)));% Построение спектра Фурье сигнала
title('Спектр сигнала');% Подпись графика
xlabel('Частота (Гц)');% Подпись оси х графика
ylabel('Амплитуда ');% Подпись оси у графика
вот код и результат. Помогите пожалуйста!!!
andyp
Гистограмму считает hist - неберите help hist в окне команд. Найти пики можно двумя способами:

1. -Нужное количество раз поискав максимум в массиве абс величин преобразоваия фурье. Типа - нашли первый максимум, запоминаем его, обнуляем несколько бинов в массиве вокруг найденного максимума и его самого. Ищем второй максимум и т.п.

2. -Можно сначала так же как в п.1 анализировать гистограмму. Затем в массиве выхода фурье искать индексы для найденных амплитуд, чтобы определить частоты. Искать приется не точные значения амплитуд а find((fft_ampl > (peak - hist_step)) & (fft_ampl < (peak + hist_step))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.