MATLAB и быстрое преобразование Фурье
С самого начала используем очистку памяти:
clear all% Очистка памяти
Далее зададим исходные данные для нашей модели. Возьмем в качестве сигнала суммунекоторой постоянной и двух синусоид с разной частотой и амплитудой. Дисперсию шума возьмем в 3 раза больше амплитуды первой синусоиды. Так же зададим количество частотных полос, которые должен будетпосчитать fft алгоритм.
%% Параметры
Tm=5;% Длина сигнала (с)
Fd=512;% Частота дискретизации (Гц)
Ak=0.5;% Постоянная составляющая (Попугаев)
A1=1;% Амплитуда первой синусоиды (Попугаев)
A2=0.7;%Амплитуда второй синусоиды (Попугаев)
F1=13;% Частота первой синусоиды (Гц)
F2=42;% Частота второй синусоиды (Гц)
Phi1=0;% Начальная фаза первой синусоиды (Градусов)
Phi2=37;% Начальная фаза второйсинусоиды (Градусов)
An=3*A1;% Дисперсия шума (Попугаев)
FftL=1024;% Количество линий Фурье спектра
MATLAB (Matrix Laboratory), как следует из названия, предназначен прежде всего для работы с массивами,практически все алгоритмы счета в нем оптимизированы для работы с векторами. Обилие удобных инструментов работы так же ненавязчиво подталкивает представлять как можно больше исходных данных в видематриц. В частности, можно легко сгенерировать массив возрастающих (убывающих) величин с заданным шагом (1\Fd в данном примере):
%% Генерация рабочих массивов
T=0:1/Fd:Tm;% Массив отсчетов времениСлучайный Гауссов шум задается функцией randn, результатом которой является массив размерности, заданной в ее параметрах. Для единообразия зададим его в виде строки (первый параметр 1) длинойсоответствующей длине нашего массива отсчетов времен, что в свою очередь вычислим функцией length.
Noise=An*randn(1,length(T));% Массив случайного шума длиной равной массиву времениSignal=Ak+A1*sind((F1*360).*T+Phi1)+A2*sind((F2*360).*T+Phi2);% Массив сигнала (смесь 2х синусоид и постоянной составляющей)
Функции fft(): Аргументами стандартной функции MATLAB являются сам сигнал...
С самого начала используем очистку памяти:
clear all% Очистка памяти
Далее зададим исходные данные для нашей модели. Возьмем в качестве сигнала суммунекоторой постоянной и двух синусоид с разной частотой и амплитудой. Дисперсию шума возьмем в 3 раза больше амплитуды первой синусоиды. Так же зададим количество частотных полос, которые должен будетпосчитать fft алгоритм.
%% Параметры
Tm=5;% Длина сигнала (с)
Fd=512;% Частота дискретизации (Гц)
Ak=0.5;% Постоянная составляющая (Попугаев)
A1=1;% Амплитуда первой синусоиды (Попугаев)
A2=0.7;%Амплитуда второй синусоиды (Попугаев)
F1=13;% Частота первой синусоиды (Гц)
F2=42;% Частота второй синусоиды (Гц)
Phi1=0;% Начальная фаза первой синусоиды (Градусов)
Phi2=37;% Начальная фаза второйсинусоиды (Градусов)
An=3*A1;% Дисперсия шума (Попугаев)
FftL=1024;% Количество линий Фурье спектра
MATLAB (Matrix Laboratory), как следует из названия, предназначен прежде всего для работы с массивами,практически все алгоритмы счета в нем оптимизированы для работы с векторами. Обилие удобных инструментов работы так же ненавязчиво подталкивает представлять как можно больше исходных данных в видематриц. В частности, можно легко сгенерировать массив возрастающих (убывающих) величин с заданным шагом (1\Fd в данном примере):
%% Генерация рабочих массивов
T=0:1/Fd:Tm;% Массив отсчетов времениСлучайный Гауссов шум задается функцией randn, результатом которой является массив размерности, заданной в ее параметрах. Для единообразия зададим его в виде строки (первый параметр 1) длинойсоответствующей длине нашего массива отсчетов времен, что в свою очередь вычислим функцией length.
Noise=An*randn(1,length(T));% Массив случайного шума длиной равной массиву времениSignal=Ak+A1*sind((F1*360).*T+Phi1)+A2*sind((F2*360).*T+Phi2);% Массив сигнала (смесь 2х синусоид и постоянной составляющей)
Функции fft(): Аргументами стандартной функции MATLAB являются сам сигнал...
Поделиться рефератом
Расскажи своим однокурсникам об этом материале и вообще о СкачатьРеферат