Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Matlab / 3. MATLAB.doc
Скачиваний:
155
Добавлен:
20.02.2016
Размер:
473.09 Кб
Скачать

Преобразования Фурье

Разработка преобразований Фурье сыграла огромную роль в появлении и развитии ряда новых областей науки и техники. Достаточно отметить, что электротехника переменного тока, электрическая связь и радиосвязь базируются на спектральном представлении сигналов. Ряды Фурье также можно рассматривать как приближение произвольных функций (определенные ограничения в этом известны) тригонометрическими рядами бесконечной длины.

Прямое преобразование Фурье переводит описание сигнала (функции времени) из временной области в частотную, а обратное преобразование Фурье переводит описание сигнала из частотной области во временную. На этом основаны многочисленные методы фильтрации сигналов.

Функции одномерного прямого преобразования Фурье

В описанных ниже функциях реализован особый метод быстрого преобразования Фурье — Fast Fourier Transform (FFT, или БПФ), позволяющий резко уменьшить число арифметических операций в ходе приведенных выше преобразований. Он особенно эффективен, если число обрабатываемых элементов (отсчетов) составляет 2т, где т — целое положительное число. Используется следующая функция:

  • fft(X) — возвращает для вектора X дискретное преобразование Фурье, по возможности используя алгоритм быстрого преобразования Фурье. Если X — матрица, функция fft возвращает преобразование Фурье для каждого столбца матрицы;

  • fft(X,n) — возвращает n-точечное преобразование Фурье. Если длина вектора X меньше n, то недостающие элементы заполняются нулями. Если длина X больше n, то лишние элементы удаляются. Когда X — матрица, длина столбцов корректируется аналогично;

Для иллюстрации применения преобразования Фурье создадим трехчастотный сигнал на фоне сильного шума, создаваемого генератором случайных чисел:

t=0:0.0005:1;

x=sin(2*pi*200*t)+0.4*sin(2*pi*150*t)+0.4*sin(2*pi*250*t);

y=x+1*randn(size(t));

plot(y(1:100)) ;

Y=fft(y,1024); 

Pyy=Y.*conj(Y)/1024; 

f=2000*(0:150)/1024; 

plot(f,Pyy(1:151));

grid on

Функции обратного преобразования Фурье

Возможно одномерное обратное преобразование Фурье, реализуемое следующими функциями:

  • ifft(F) — возвращает результат дискретного обратного преобразования Фурье вектора F. Если F-матрица, то ifft возвращает обратное преобразование Фурье для каждого столбца этой матрицы;

  • ifft(F,n) — возвращает результат n-точечного дискретного обратного преобразования Фурье вектора F.

Работа с файлами

Открытие и закрытие файлов

Файл обычно является некоторой совокупностью данных, объединенных одним именем. Тип файла, как правило, определяется его расширением.

Перед использованием любого файла он должен быть открыт, а по окончании использования — закрыт. Много файлов может быть открыто и доступно для чтения одновременно. Рассмотрим команды открытия и закрытия файлов.

  • Команда open имя, где имя должно содержать массив символов или символьную переменную, открывает файлы в зависимости от анализа параметра имя и расширения в имени имя:

    • переменная — открывает массив, названный по имени, в редакторе массивов (Array Editor);

    • .mat — открывает файл, сохраняет переменные в структуре в рабочей области;

    • .fig — открывает его в редакторе дескрипторонй графики Property Editor;

    • .m — открывает m-файл в редакторе-отладчике;

    • .mdl - открывает модель в Simulink;

    • .р — открывает, если он есть, m-файл с тем же именем;

    • . html — открывает HTML документ в браузере помощи.

Команда или функция delete удаляет файл или объект графики.

  • delete имя файла удаляет файл текущей папки. Может быть использована *. Предпочтительно использование с записью в форме функции delete('имя файла'), когда имя файла — строка.

  • delete(H) удаляет графический объект с дескриптором Н. Если этот объект — окно, то оно предварительно закрывается.

  • Функция close(H) закрывает только графические окна. Для закрытия файлов необходимо использовать команду f close.

Для записи файлов на диск служит команда save, используемая в довольно очевидных формах:

save /save filename/save filename varl var2 .../save ... option/save( ' filename' , ...)

Соответственно для считывания файлов с диска служит команда load:

load /load filename load filename X Y Z/load filename -ascii /load filename -mat

Соседние файлы в папке Matlab
  • #
    20.02.2016473.09 Кб1553. MATLAB.doc
  • #
    20.02.201635.74 Mб88Инженерные расчеты в Mathcad Макаров 2005.djvu