УПРАЖНЕНИЯ ДЛЯ ПРОГРАММИРОВАНИЯ

ГЛАВА 12: БЫСТРОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ

1. Напишите (или спишите из книги) подпрограммы, выполняющие прямой и обратный алгоритмы БПФ.

2. Проверьте правильность работы подпрограмм следующим образом:

а. Получите две последовательности псевдослучайных чисел, длиной по 256 отсчётов каждая, и сохраните одну из них в массиве вещественной компоненты, а другую — в массиве мнимой компоненты. Примените алгоритм БПФ и затем обратный алгоритм БПФ. Найдите разность между полученной и изначальной последовательностью. Равна ли разность нулю? Правильно ли это? Выведите на график вещественную часть сигнала разности.

б. Заполните отсчётами псевдослучайной последовательности массив вещественной компоненты, а массив мнимой компоненты заполните нулями. Выполните алгоритм БПФ и перейдите к полярной форме. Постройте графики вещественной и мнимой составляющих полученного спектра. (Чтобы облегчить построение графиков, математическое ожидание лучше задать равным нулю.) Наблюдается ли симметрия спектра? Как это объясняется?

3. Воспользуйтесь алгоритмом БПФ в следующей задаче, связанной со спектральным анализом:

а. Рассчитайте 1 024 000 отсчётов псевдослучайной последовательности, подчиняющейся нормальному закону распределения с нулевым математическим ожиданием и СКО, равным 1, и затем добавьте к этой последовательности синусоидальный сигнал с амплитудой 0.1 и частотой 0.2.

б. Выведите на график первые 1024 отсчёта полученной последовательности. Заметно ли присутствие в сигнале синусоиды?

в. Воспользуйтесь алгоритмом БПФ для построения амплитудного спектра для сегмента длиной 1024 отсчёта. Заметна ли теперь синусоидальная компонента сигнала?

г. Теперь воспользуйтесь методом вычисления усреднённого спектра, описанным в главе 9. Разбейте сигнал, состоящий из 1 024 000 отсчётов на сегменты по 1024 отсчёта, примените алгоритм БПФ и усредните полученные результаты. Заметна ли сейчас синусоидальная компонента?

4. Ответьте на следующие вопросы:

а. Насколько увеличится разность двух сигналов, если в задаче 2,а заменить алгоритм БПФ на ДПФ на основе корреляции?

б. Почему в задаче 2(б) спектр построить проще, если задать нулевое математическое ожидание?

в. Как изменится спектр, если в задаче 2(б) разместить отсчёты псевдослучайной последовательности в массиве мнимой компоненты, а в массив вещественной компоненты записать нули?