Сейчас мы посмотрим, как влияет недостаточная частота дискретизации. Для этого воспользуемся слегка модернизированным примером из справки MATLAB, показанном на рис. 46.
Пример 2. Составить схему системы осуществляющей анализ спектра двух синусоид. Исходные данные:
Амплитуда: 1В;
Частота: 15 Гц, 40Гц;
Фаза: 0 град;
Период дискретизации: 0.001 с;
Отсчетов на кадр: 128.
Рис. 46. Модернизированный пример применения
быстрого преобразования Фурье FFT в Simulink
От стандартного примера данный пример отличается только двумя блоками: Vector Scope1 и Vector Scope2. Vector Scope1 показывает итоговый сигнал, Vector Scope2 показывает каждую синусоиду отдельно.
Настройка параметров блоков.
1. Двойной клик мышью на блоке Sine Wave block: откроются параметры блока. Установите там следующие значения:
Amplitude = 1
Frequency = [15 40]
Phase offset = 0
Sample time = 0.001
Samples per frame = 128
Согласно этим данным, блок Sine Wave выведет две синусоиды с одинаковыми амплитудами, фазами и интервалами дискретизации. Частота одной синусоиды 15 Гц, другой – 40 Гц. В данном случае алгоритм нашей модели ориентирован на обработку последовательности кадров (векторов) сигнала (Frame Based). Векторная или кадровая форма реализации алгоритма обработки в модели, как правило, позволяет значительно ускорить процесс моделирования в нереальном времени. В этой форме для формирования кадров из непрерывно потока отсчетов используется буферная память.
Сохраним изменения и закроем окно.
2. Блок Matrix Sum. В окне параметров задайте следующее значение:
Sum along = Rows
3. Так как каждый отдельный сигнал это отдельный столбец матрицы, нам нужно сложить значения синусоид на каждом временном шаге, чтобы получить итоговый сигнал. Для этого в блоке Complex to Magnitude-Angle установим:
Достарыңызбен бөлісу: |