русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ДПФ с помощью корреляции


Дата добавления: 2015-07-23; просмотров: 1323; Нарушение авторских прав


Давайте перейдем к лучшему способу, стандартному методу вычисления ДПФ. Покажем этот метод на примере. Предположим, мы пытаемся вычислить ДПФ для 64-точечного сигнала. Это означает, что нам необходимо вычислить 33 точки в реальной части и 33 точки в мнимой части частотной области. В этом примере мы покажем вычисление только одного отсчета, ImX[3], то есть амплитуду синусной волны, которая делает три полных колебания между точками 0 и 63. Все другие величины в частотной области вычисляются подобным образом.

Рисунок 8-8 иллюстрирует использование корреляции для вычисления ImX[3]. Рисунки (а) и (b) показывают пример двух сигналов временной области, названных x1[ ] и x2[ ], соответственно. Первый сигнал, x1[ ], состоит только из одной синусоиды, делающей три колебания меду точками 0 и 63. В противоположность этому, x2[ ] состоит из нескольких синусных и косинусных волн, ни одна из которых не делает три колебания между точками 0 и 63. Эти два сигнала иллюстрируют, что должен делать алгоритм для вычисления ImX[3]. Для x1[ ] алгоритм должен получить величину равную 32, амплитуду синусной волны представленной в сигнале (с учетом коэффициента масштабирования согласно формуле 8-3). Для x2[ ] должна получиться нулевая величина, свидетельствующая о том, что данная частная синусоида не присутствует в сигнале.

 

РИСУНОК 8-8

Два примера сигналов (а) и (b), анализируемых на наличие в них базовых функций, показанных в (с) и (d). Рисунки (е) и (f) показывают результат перемножения анализируемых сигналов на базовые функции. Рисунок (е) имеет среднее значение 0,5, что свидетельствует о наличии базовой функции с амплитудой 1 в анализируемом сигнале. (f) имеет нулевое среднее значение, что свидетельствует об отсутствии базовой функции в x2[ ].

 

Концепция корреляции была представлена в главе 7. Как вы помните, для обнаружения сигнала известной формы в исследуемом сигнале необходимо перемножить эти два сигнала и сложить все точки полученного сигнала. Число, полученное в результате этой процедуры, является мерой похожести этих двух сигналов. Рисунок 8-8 иллюстрирует этот подход. Рисунки (с) и (d) показывают сигнал, который мы сравниваем на похожесть, - синусоиду с тремя колебаниями между отсчетами 0 и 63. Рисунок (е) показывает результат перемножения (а) и (с). Рисунок (f) показывает результат перемножения (b) и (d). Сумма всех точек в (е) равна 32, в то время как сумма всех точек в (f) равна нулю. Таким образом, мы нашли желаемый алгоритм.



Другие отсчеты в частотной области вычисляются точно так же. Эта процедура формализуется в следующем уравнении анализа, математических формулах для нахождения сигналов частотной области по сигналам временной области:

 
 
ФОРМУЛА 8-4 Уравнения анализа для ДПФ. x[i] – анализируемый сигнал временной области ReX[k] и ImX[k] – вычисляемые сигналы частотной области. i – меняется от 0 до N-1 k – меняется от 0 до N/2


 

Другими словами, каждый отсчет в частотной области находится перемножением сигнала временной области на рассматриваемые синусные и косинусные волны и суммированием результатов умножения. Если кто-нибудь спросит вас, что вы делаете, уверенно говорите: «Я ищу корреляцию входного сигнала с базовыми функциями». Таблица 8-2 показывает компьютерную программу, которая вычисляет ДПФ этим способом.

Уравнения анализа не требуют специального выражения для первой и последней точки в отличие от уравнения синтеза. Имеется, однако, знак минуса перед мнимой частью в формуле 8-4. Так же как и раньше, этот знак минус делает реальное ДПФ совместимым с комплексным ДПФ, и не всегда учитывается.

Для правильной работы этого корреляционного алгоритма, базовые функции должны обладать интересным свойством: каждая из них должна быть совершенно некоррелирована со всеми другими. Это означает, что если вы перемножите любые две базовые функции, то сумма полученных точек должна быть равна нулю. Базовые функции, обладающие этим свойством, называются ортогональными. Существует много ортогональных базовых функций: квадратные волны, треугольные волны, импульсные и т.д. Сигналы могут быть разложены на эти базовые ортогональные функции, так же как и на синусоиды. Это не означает, что это полезно, но только, что это возможно.

Как было показано в таблице 8-1, инверсное ДПФ имеет два способа выполнения в компьютерной программе. Разница связана с тем, что внутренняя и внешняя петли циклов меняются местами. Это не меняет результат вычислений, но меняет ваш взгляд на выполнение программы. Программа ДПФ в таблице 8-2 может быть изменена таким же образом, переменой мест внутренней и внешней петли циклов в линиях от 310 до 380. Так же как и раньше, результат вычислений не меняется, но меняется ваш взгляд на процесс вычисления. (Эти два разных взгляда на ДПФ и инверсное ДПФ могут быть описаны как «входной алгоритм» и «выходной алгоритм» аналогично свертке).

 

100 'ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ (ДПФ)

110 'Сигнал частотной области храниться в REX[ ] и IMX[ ], вычисляется из

120 'сигнала временной области, который хранится в XX[ ].

130 '

140 DIM XX[511] 'XX[ ] хранится сигнал временной области

150 DIM REX[256] 'REX[ ] хранится реальная часть сигнала частотной области

160 DIM IMX[256] 'IMX[ ] хранится мнимая часть сигнала частотной области

170 '

180 PI = 3.14159265 'Установка константы, PI

190 N% = 512 'N% число точек в XX[ ]

200 '

210 GOSUB XXXX 'Воображаемая подпрограмма загрузки XX[ ]

220 '

230 '

240 FOR K% = 0 TO 256 'Обнуление REX[ ] & IMX[ ] для аккумуляции

250 REX[K%] = 0

260 IMX[K%] = 0

270 NEXT K%

280 '

290 ' 'Корреляция XX[ ] с косинусными и синусными волнами по формуле 8-4

300 '

310 FOR K% = 0 TO 256 'K% цикл через каждый отсчет в REX[ ] и IMX[ ]

320 FOR I% = 0 TO 511 'I% цикл через каждый отсчет в XX[ ]

330 '

340 REX[K%] = REX[K%] + XX[I%] * COS(2*PI*K%*I%/N%)

350 IMX[K%] = IMX[K%] - XX[I%] * SIN(2*PI*K%*I%/N%)

360 '

370 NEXT I%

380 NEXT K%

390 '

400 END

ТАБЛИЦА 8-2

 

Программа в таблице 8-2 написана таким образом, что показывает воздействие всех отсчетов временной области на отдельный отсчет в частотной области. То есть, программа вычисляет каждую величину частотной области в отдельности, а не как группу. Если внутренний цикл и внешний цикл поменять местами, то программный цикл через каждый отсчет во временной области будет вычислять вклад этой точки в частотную область. Целиком частотная область находится сложением этих вкладов от отдельных точек временной области. Отсюда возникает следующий вопрос: какова природа влияния отдельного отсчета во временной области на создание частотной области? Ответ заключается в интересном аспекте анализа Фурье, называемом двойственность (duality).

 



<== предыдущая лекция | следующая лекция ==>
Альтернативный код в линиях от 380 до 510 | Реальное ДПФ, использующее комплексное ДПФ.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.034 сек.