Uploaded by radchenko.nn

Учебное пособие ЦОС лаб 2 v 14 01 10 с тит л

advertisement
Федеральное агентство по образованию
САНКТ-ПЕТЕРБУРГСКИЙ
ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Радченко Н.Н.
ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ
Дискретное преобразование Фурье
Методические указания по выполнению лабораторной работы
Санкт-Петербург
Издательство Политехнического университета
2010
1
УДК 621.396.946.2(075.8)
ББК 32.947
Радченко Н.Н. Цифровая обработка сигналов. Дискретное преобразование
Фурье: метод. указания по выполнению лабораторной работы. СПб.: Изд-во Политехн. ун-та, 2010. 60 с.
Лабораторная работа предназначена для студентов, обучающихся по программам подготовки магистров по направлениям 210300.68 «Радиотехника» и
инженеров по специальностям 210301 «Радиотехника и электроника» и 210302
«Радиотехника» очной и очно-заочной форм обучения.
Лабораторная работа входит в состав лабораторного практикума по курсу
«Цифровая обработка сигналов» и посвящена изучению особенностей использования ДПФ для анализа и синтеза дискретных и непрерывных сигналов. Исследуются основные свойства ДПФ, включая линейность, свойство кругового сдвига и свойство симметрии. Эти свойства рассмотрены на примере конкретных
сигналов: прямоугольного, треугольного, линейно нарастающего и сигнала «полуволна синусоиды». Рассматривается применение алгоритма ДПФ для оценки
спектра непрерывных сигналов конечной и бесконечной длительности. Для
бесконечных сигналов рассматриваются погрешности их усечения в конечных
пределах, а также искажение спектра, связанные с явлением Гиббса.
Расчеты и их проверка путем построения графиков производится в универсальной среде для расчетов и моделирования MatLab и требует навыков формирования массивов данных и работы с командной строкой в этой среде, а также
знания основ использования приложений SPTools и Simulink.
Табл. 7. Ил. 32. Библиогр.: 9 назв.
Печатается по решению редакционно-издательского совета Санкт-Петербургского государственного политехнического университета.
 Санкт-Петербургский государственный
политехнический университет, 2010
2
Оглавление
Список принятых сокращений ……………………………….….............................
4
Введение .……………….………………………………………......…......................
5
1. Дискретное преобразование Фурье ……………………................................... 7
1.1. Пример 1. Дискретный прямоугольный сигнал …………….................... 12
1.2. Формула Парсеваля для дискретных сигналов конечной длительности. 18
1.3. Свойство линейности ДПФ ………………………………….................... 19
1.3.1. Пример 2. Линейность ДПФ суммы прямоугольного и треугольного сигналов …………………………...………………………………….. 20
1.4. Свойство ДПФ при круговом сдвиге ………………………..................... 23
1.4.1. Пример 3. Свойство ДПФ при круговом сдвиге треугольного
сигнала ……………………………………………………………………… 23
1.5. Свойства симметрии ДПФ …………………………………..................... 26
1.5.1. Пример 4. Вычисление спектров линейно нарастающего и сигнала «полуволна синусоиды» с использованием свойства симметрии
ДПФ ………………………………………………………………………… 28
2. Вычисление спектра непрерывных сигналов с помощью ДПФ………… 32
2.1. Пример 5. Непрерывный прямоугольный сигнал ....................................
35
2.2. Пример 6. Вычисление спектра с помощью программы SPTool……… 37
2.3. Пример 7. Вычисление спектра с помощью моделирования в среде
39
Simulink...................................................................................................................
3. Преобразование Фурье дискретных функций с бесконечной длительностью …………………………………………………………………………………. 43
3.1. Пример 8. Дискретный апериодический сигнал вида sin(n)/n. Явление
Гиббса..................................................................................................................... 44
3.2. Аппроксимация спектра бесконечного сигнала методом взвешивания 48
3.3. Пример 9. Вычисление спектра сигнала вида sin(n)/n методом взвеши- 51
вания окном Хемминга..........................................................................................
3.4. Пример 10. Вычисление спектра сигнала вида sin(n)/n с помощью мо- 52
дели в среде Simulink…………………………………………………………….
4. Задание к лабораторной работе.......................................................................... 55
Библиографический список ……………………………………………………… 60
3
Список принятых сокращений
АЦП
БИХ
БПФ
ДПФ
ПФ
ФНЧ
ЦОС
DSP
FFT
PSD
– аналого-цифровой преобразователь;
– бесконечная импульсная характеристика;
– быстрое преобразование Фурье;
– дискретное преобразование Фурье;
– полосовой фильтр;
– фильтр нижних частот;
– цифровая обработка сигналов;
– (Digital Signal Processing) цифровая обработка сигналов;
– (Fast Fourier transform) быстрое преобразование Фурье;
– (Power Spectral Density) спектральная плотность мощности.
4
Введение
Лабораторная работа посвящена изучению свойств дискретного
преобразования Фурье (ДПФ) и направлена на развитие практических
навыков его применения для анализа и синтеза цифровых и непрерывных
сигналов. В работе рассматриваются дискретные сигналы, полученные в
результате равномерной дискретизации вещественных непрерывных сигналов. При этом величина частоты дискретизации выбирается с учетом
вида спектра непрерывного сигнала и результатов теоремы Котельникова.
Спектральный анализ дискретного сигнала основан на использовании преобразования Фурье последовательности отсчетов этого сигнала.
Прямое и обратное преобразования Фурье устанавливают взаимно однозначное соответствие между дискретным сигналом и его непрерывным
спектром. Спектр дискретного сигнала представляет собой периодическую функцию, равную бесконечной сумме копий спектров непрерывного
порождающего сигнала, сдвинутых друг относительно друга на частоту
дискретизации. При правильном выборе частоты дискретизации перекрытие спектров порождающего непрерывного сигнала оказывается незначительным и на интервале частоты дискретизации спектр дискретного сигнала практически совпадает со спектром непрерывного порождающего
сигнала. Алгоритм вычисления непрерывного спектра дискретного сигнала на интервале частоты дискретизации в дискретных точках по частоте
называется дискретным преобразованием Фурье (ДПФ).
Прямое и обратное ДПФ устанавливает взаимно однозначное соответствие между дискретным сигналом конечной длительности или периодическим дискретным сигналом и дискретными отсчетами непрерывного
спектра этих сигналов. При этом интервал между соседними отсчетами
спектра обратно пропорционален длительности дискретного сигнала или
его периоду.
Количество выборочных значений непрерывного спектра дискретного сигнала, вычисленных с помощью ДПФ, равно количеству дискретных отсчетов сигнала. В ряде случаев этого оказывается недостаточно для
получения точного представления о форме спектра. Поэтому в первом
разделе лабораторной работы показан способ получения промежуточных
отсчетов спектра с помощью добавления нулевых отсчетов к исходной
дискретной функции, что позволяет увеличить длительность и, следовательно, уменьшить интервал между соседними выборками спектра, вы5
числяемого с помощью ДПФ. Таким образом, добавление нулей в исходный сигнал при использовании ДПФ позволяет получить интерполяцию
известного непрерывного спектра с желаемой точностью.
Дискретное преобразование Фурье имеет ряд полезных свойств, основными из которых являются: линейность, свойство кругового сдвига и
свойство симметрии. В первом разделе лабораторной работы эти свойства
рассмотрены на примере конкретных сигналов: прямоугольного, треугольного, линейно нарастающего и сигнала «полуволна синусоиды».
Второй раздел лабораторной работы посвящен применению алгоритма ДПФ для оценки спектра непрерывных сигналов. Рассматриваются
различные способы вычисления ДПФ в среде MatLab с использованием
встроенных функций: fft, SPTool, Simulink.
В третьем разделе лабораторной работы представлены примеры
преобразования Фурье дискретных функций с бесконечной длительностью.
Четвертый раздел содержит варианты заданий к настоящей лабораторной работе.
Ниже приведены обозначения основных параметров непрерывных и
дискретных функций, принятых в настоящих методических указаниях к
лабораторной работе:
- интервал дискретизации, сек.;
T
Fs 
1
T
- частота дискретизации, индекс s обозначает сокраще-
ние слова sampling – дискретизация, Гц;
- частота непрерывного сигнала, Гц;
F
1
F
  2F
F
f 
Fs
Tp 
- период непрерывного сигнала, сек;
- круговая частота непрерывного сигнала, рад/с;
-
относительная
частота
дискретного
сигнала,
цикл/отсчет, где цикл равен единице, если набег фазы гармонического сигнала равен 2 ;
- круговая частота дискретного сигнала, рад/отсчёт;
  2f
xa t 
- непрерывный сигнал;
- дискретный сигнал.
xn 
6
1. Дискретное преобразование Фурье
Рассмотрим непрерывный сигнал
xa1 t  длительностью  , при
0  t   . Спектр такого сигнала можно вычислить с помощью преобразования Фурье:

X a1 2F    xa1 t e  j 2Ft dt
  F  
(1)
0
Строго говоря, спектр (1) финитного сигнала xa1 t  занимает бесконечную полосу частот. Однако в большинстве случаев можно определить
конечную полосу частот, ограниченную величиной Fmax , в которой сосредоточена основная энергия спектральных составляющих исходного сигнала xa1 t  . Тогда по теореме Котельникова частота дискретизации составит
Fs 
1
 2 Fmax , где T - интервал дискретизации.
T
В результате дискретизации сигнала xa1 t  получим дискретные от-

счеты xa1 nT  , количество которых равно L    , где   - целая часть и
T 
0  n  L  1 . Число полученных отсчетов L зависит от длительности исходного сигнала  и частоты дискретизации Fs .
Выберем, целое число N  L и построим сигнал xa nT  вида
 x nT  0  n  L  1
xa nT    a1
L  n  N 1
 0
Обозначим дискретный сигнал xn  xa nT  , тогда его длительность
равна N отсчетов и он является результатом дискретизации непрерывного
сигнала xa t  длительностью Tp  NT вида:
 xa1 t  0  t  
xa t   
,
0


t

T
p

Очевидно, что добавление нулевого «хвоста» к сигналу xa1 t  не приводит к изменению спектра (1), действительно:
Tp

0
0
X a 2F    x a t e  j 2Ft dt   x a1 t e  j 2Ft dt X a1 2F 
  F  
(2)
7
Таким образом, мы построили дискретный сигнал xn  длительностью N отсчетов, у которого первые L отсчетов определяют форму этого
сигнала, а последующие N  L отсчетов равны нулю.
На основе сигнала xn  построим периодический сигнал x p n  с фундаментальным периодом N :

x p n   xn  mN 
(3)
m
При этом на длительности фундаментального периода N функции
x p n  и xn  совпадают:
x p n  = xn  , при 0  n  N  1 .
Для дискретной функции xn  можно записать ее спектр X () с помощью преобразования Фурье вида:
N 1
X     xn e  jn ,
(4)
n0
где  - круговая частота спектральных составляющих дискретной
функции.
Как видно из формулы (4) спектр X () является периодической
функцией частоты  с периодом 2 .
Подставляя   2f в формулу (3) и учитывая нулевые отсчеты
xn  0 при L  n  N  1, получаем:
N 1
L 1
n 0
n 0
X 2f    xn e  j 2fn   xn e  j 2fn ,
(5)
где f - относительная частота спектральных составляющих дискретной функции.
Понятие относительной частоты f дискретной функции было определено в Лабораторной работе «Дискретизация непрерывных гармонических функций».
Как видно из формулы (5) спектр X (2f ) является периодической
функцией частоты f с периодом равным 1.
Следует заметить, что, с учетом (3), функция X (2f ) является также
спектром отрезка периодического сигнала x p n  на длительности фундаментального периода N .
В свою очередь дискретный периодический сигнал x p n  = x p nT  , где
8
x p nT  - дискретные отсчеты непрерывного периодического сигнала
x p t  с периодом T p  NT вида

x p t    xa t  mTp  .
m  
Непрерывный периодический сигнал x p t  , построенный на основе
финитного сигнала xa t  , можно представить рядом Фурье:
x p t  
Fs k 
 2k 
ck exp j
t,

N k 
 N 
где ck 
(6)
1
 2Fs 
 2Fs 
Xa
k  , Xa
k  - дискретные отсчеты спектра X a ()
Tp
 N 
 N 
непрерывного сигнала xa t  для набора частот
k  2Fs f k 
2Fs
k , при
N
  k  .
Проведем временную дискретизацию непрерывного периодического
сигнала (6) и получим представление дискретного сигнала x p n  в виде:
x p n  
Fs k   2Fs 
 2k 
Xa
k  exp j
n

N k   N 
 N 
(7)
В [3] показано, что между спектром X a F  непрерывного сигнала
xa t  и соответствующим ему спектром X  f  дискретного сигнала xn  существует взаимосвязь вида:

X 2f   Fs  X a 2fFs  2Fs k 
(8)
k 
Как видно из (8), спектр дискретного сигнала есть бесконечная сумма копий спектров непрерывного сигнала, сдвинутых друг относительно
друга на частоту дискретизации Fs (Рис. 1).
В [3] показано также, что выражение (7) можно представить с учетом
(3) и (8) в следующем виде:

 xn  mN  
m
1  N 1  2
k  mN  exp j 2k n  .
X


N m k 0  N

 N 
В этом выражении периоды последовательности xn  по n (слева) и
суммы по k (справа) одинаковы и равны N , поэтому для расчетов доста-
9
точно знать соотношение между функциями на длительности этого периода:
xn  
1 N 1  2 
 2k 
X
k  exp j
n  , 0  n  N 1

N k 0  N 
 N 
(9)
X a (2F )

Fs
2
Fs
2
F
X (2f )
5
2

5Fs
2



3
2

1
2
1
2
3
2
5
2
f
3Fs
2

Fs
2
Fs
2
3Fs
2
5Fs
2
F
Рис. 1. Амплитуда спектра X a (2F ) непрерывного сигнала xa t 
(верхний график) и амплитуда спектра X (2f ) дискретного сигнала xn 
(нижний график).
Таким образом, мы получили выражение (9), которое позволяет синтезировать дискретную функцию xn  , используя дискретные отсчеты ее
2 
2
k при 0  k  N  1 . С другой стороны,
k  на частотах k 
N
N 
спектра X 
2 
k  легко определить с помощью выраN 
спектральные составляющие X 
жения (4):
2k 
 2  N 1

X
k    xn  exp  j
n
N 
 N  n 0

(10)
Полученные соотношения (9) и (10) представлены в таблице 1 в виде
дискретного преобразования Фурье (прямого и обратного) для дискретной
функции конечной длительности.
10
Таблица 1. Дискретное преобразование Фурье для дискретной функции конечной длительности.
Преобразование
Формула преобразования
Дискретное преобразование
2k 
 2k  N 1

X
n
   xn exp  j
N 
 N  n 0

Фурье (ДПФ)
k  0, 1, 2, ... N  1
Анализ функции
Обратное дискретное преобразование Фурье (ОДПФ).
xn  
1 N 1  2k 
 2k 
X
n
 exp j

N k 0  N 
 N 
n  0, 1, 2, ... N  1
Синтез функции
Запишем ДПФ в виде
2k  N 1
 2k  N 1

X
n    xnWNnk ,
   xnexp  j
N
N

 n0

 n0
где
2 

 2 
 2 
WN  exp  j
  cos
  j sin 

N 

N 
N 
Строки матрицы WNnk ( n - номера столбцов, k - номера строк) представляют собой дискретные экспоненты с фундаментальным периодом N .
Поэтому можно считать, что
n - номера временных отсчетов дискретных экспонент, 0  n  N  1 ,
k - номера дискретных частот f k 
k
ДПФ, для которых вычисляютN
2k 
 при 0  k  N  1 .
 N 
1
1
k
Частоты f k 
в основной области   f  можно определить,
N
2
2
ся спектральные составляющие X 
как это показано в таблице 2.
1
2
1
2
...
N 1
Таблица 2. Значения частот f k ДПФ в основной области   f  .
k
номера
0
1
...
N
1
2
N
2
N
1
2
11
строк
k
N
fk 
k
N
0
1
N
…
1 1

2 N
1
2
1 1

2 N
…
1
1
N
0
1
N
...
1 1

2 N

1
2
1 1 
  
2 N 
...

1
N
Вычисление значений частот для номеров k 
N
производится с уче2
том свойства периодичности X ( f ) с периодом по частоте равным единице.
Потому при k 
f 
N
, имеем:
2
N
1
1
 1   ,
2N 2
2
затем при k 
N
 1:
2
N
1
1 1 1 1
1 1
1 1 
f  2
     1        ,
N
2 N 2 N
2 N
2 N 
а для k  N 1 получаем
f 
N 1
1
1
1
 1  1 1   .
N
N
N
N
Примеры вычисления ДПФ для некоторых дискретных сигналов
представлены ниже.
1.1. Пример 1. Дискретный прямоугольный сигнал.
Выберем сигнал xn  вида:
1 0  n  L  1
xn   
,
0 L  n  N  1
с параметрами L  8 , N  64 .
Тогда в среде MatLab легко построить
0  n  N  1:
(11)
сигнал xn  в пределах
>> L=8; N=64; n=0:N-1; x(n+1)=0; x(1:L)=1; stem(n,x); grid on;
12
xn 
1.5
1
0.5
0
n
0
10
20
30
40
50
60
70
Рис. 2. Дискретный прямоугольный сигнал xn  на длительности
фундаментального периода N  64 при выборе значений xn  1 при
0  n  L  1, L  8 .
Для прямоугольного сигнала (11) легко вычислить его спектр (5),
пользуясь формулой для суммы элементов геометрической прогрессии:
L 1
L 1
n 0
n 0
X 2f    xn e  j 2fn =  e  j 2fn 
1  e  j 2fL
,
1  e  j 2f
Построим график модуля этого спектра в широком диапазоне относительных частот f , например  2  f  2 :
>> f=-2:0.001:2; L=8; XX=abs((1-exp(-j*2*pi*f*L))./(1-exp(-j*2*pi*f)));
>> plot(f,XX); grid on;
Заметим, что здесь для точного построения непрерывного графика
шаг по частоте выбран равным 0.001.
В результате выполнения этих команд получим график на Рис. 3.
Получившийся спектр прямоугольного сигнала (11) является непрерывной
периодической функцией относительной частоты f с периодом по частоте
равным 1.
Далее для удобства использования стандартных функций вычисления на ЭВМ дискретного преобразования Фурье рассматривается интервал
относительных частот 0  f  1 вместо основной области относительных
1
2
1
2
частот   f  . Следует запомнить, что на интервале относительных ча-
13
стот 0  f  1 область
1
 f  1 соответствует области отрицательных ча2
1
2
стот   f  0 . Сказанное хорошо видно на Рис. 3.
X 2f 
8
7
6
5
4
3
2
1
0
-2
f
-1.5
-1
-0.5
0
0.5
1
1.5
2
1  e  j 2fL
Рис. 3. Амплитуда спектра X 2f  
прямоугольного сигна1  e  j 2f
ла xn  при L  8 для диапазона частот  2  f  2 .
Построим график модуля X 2f  на интервале относительных частот
0  f  1:
>> f=0.001:0.001:1; L=8; XX=abs((1 - exp(-j*2*pi*f*L))./(1 - exp(j*2*pi*f)));
>> plot(f,XX); grid on;
В результате выполнения этих команд получим график на Рис. 4.
1  e  j 2fL
зависит только от количества L зна1  e  j 2f
чащих отсчетов xn  и не зависит от величины N . Определим положение
Форма спектра X 2f  
нулевых значений этого спектра, определяющих ширину его лепестков, из
уравнения:
X (2f ) =
1  e  j 2fL
 0.
1  e  j 2f
Решением этого уравнения является выполнение условия 2fL  2m ,
где m - целое число.
14
X 2f 
8
7
6
5
4
3
2
1
f
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Рис. 4. Амплитуда непрерывного спектра X  f  прямоугольного
сигнала xn  при L  8 для диапазона частот 0  f  1 .
Положение нулей спектра определяется рациональной дробью
m
, где m  1, 2, ... - целое число, большее нуля.
L
1
1
Тогда ширина первого лепестка равна , второго – также
и т.д.
L
L
f 
При этом следует запомнить, что в данном случае ширину первого лепест1
L
ка мы определили в диапазоне частот 0  f  , т.е. от положения максимума функции X 2f  при f  0 до ее нулевого значения при f 
1
.
L
Воспользуемся теперь алгоритмом ДПФ (таблица 1.) для вычисления
2 
k  прямоугольного сигнала xn  , заданN 
спектральных составляющих X 
ного выражением (11), и построим график модуля этого спектра при выбранных параметрах L  8 , N  64 в диапазоне частот 0  f  1 :
>> L=8; N=64; n=0:N-1; f=n/N; x(1:N)=0; x(1:L)=1;
>> X=abs(fft(x,N));stem(f,X); grid on;
В результате выполнения этих команд получим график на Рис. 5.
15
Расстояние по частоте между соседними спектральными составляю1
1
2 
, а расстояние между нулевыми
k  на Рис. 5 равно f  
N 64
N 
1
значениями спектра, как и ранее, равно  0,125 .
L
щими X 
 2 
X k
N 
8
7
6
5
4
3
2
1
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
fk 
k
N
Рис. 5. Амплитуда дискретного спектра прямоугольного сигнала
xn  при L  8 , N  64 для диапазона частот 0  f  1 .
На основе проведенных расчетов можно сделать следующие выводы:
2 
k
N 
1. При фиксированном L форма дискретного спектра X 
прямоугольного сигнала xn  не меняется, а добавление нулей
при формировании сигнала в интервале L  n  N  1 позволяет
уменьшать интервал f 
1
дискретизации исходного спектра
N
X (2f ) по частоте. При этом получение большего количества
спектральных составляющих в результате добавления нулей в
сигнал xn  не приводит к получению большего количества информации о спектре этого сигнала, поскольку мы и так знаем
все спектральные составляющие непрерывного спектра
1  e  j 2fL
. Добавление нулей при использовании ДПФ
1  e  j 2f
позволяет получить интерполяцию известного спектра X ( f ) с
X 2f  
желаемой точностью.
16
2. При фиксированном L и уменьшении количества нулей, число
вычисляемых составляющих спектра становится меньше. Так,
если выбрать N  L (вообще не добавлять нулей), то все вычисляемые спектральные составляющие окажутся нулевыми, кроме
первой, которая соответствует нулевой частоте и равна сумме
всех отсчетов сигнала x p n  , т.е. является постоянной составляющей прямоугольного сигнала xn  .
3. При изменении L форма спектра, включая положение нулей,
изменяется. Увеличение значения L приводит к сужению спектра и наоборот.
На Рис. 5 с помощью функции fft(x) получены амплитуды дискрет2 
k  исходного спектра X ( f ) в диапазоне частот
N 
ных составляющих X 
 2 
k  в основную область частот можно
0  f  1 . Для пересчета спектра X 
N 
воспользоваться специальной функцией fftshift(X), сдвигающей спектраль1
2
1
2
ные составляющие в основную область относительных частот   f  :
>> L=8; N=64; n=0:N-1; f=n/N; x(1:N)=0; x(1:L)=1;
>> X=abs(fft(x,N)); X1=fftshift(X); stem(f,X1); grid on;
 2 
X k
N 
8
7
6
5
4
3
2
1
0
-0.5
fk 
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
k
N
Рис. 6. Амплитуда дискретного спектра прямоугольного сигнала
xn  при L  8 , N  64 для диапазона частот 
1
1
 f  .
2
2
17
Следует запомнить, что функции X=fft(x) и x= ifft(X), вычисляющие
ДПФ и ОДПФ, соответственно, используют диапазон частот 0  f  1 . Поэтому после вычисления X=fft(x) и Y=fftshift(X) необходимо применить обратную функцию X=ifftshift(Y) для правильной работы функции x= ifft(X).
1.2. Формула Парсеваля для дискретных сигналов конечной
длительности.
Рассмотрим дискретный сигнал xn  длительностью N отсчетов.
Предположим, что этот сигнал имеет конечную энергию на интервале длиной N :
N 1
E x   xn    .
2
n 0
С учетом формул ДПФ (таблица 1) и выражения для комплексносопряженной функции, получаем
N 1
 1 N 1  2k 
2k 

E x   xn   X * 
n
 exp  j
N 

n 0
 N k 0  N 
Изменяя порядок суммирования, получим:
1 N 1  2k  N 1
2k  1 N 1 *  2k   2k 
1 N 1  2k 

Ex   X * 
n   X 
 xn exp  j
X 
  2  X

N k  0  N  n 0
N  N k  0  N   N  N k 0  N 

Таким образом, формулу Парсеваля для дискретных сигналов конечной длительности можно представить в виде:
N 1
Ex   xn 
n 0
2
2
1 N 1  2k 
  X
 .
N k 0  N 
Проверим выполнение формулы Парсеваля на примере результатов
вычислений спектра, представленного на Рис. 5:
>> L=8; N=64; n=0:N-1; f=n/N; x(1:N)=0; x(1:L)=1;
>> X=abs(fft(x,N));stem(f,X); grid on;
>> Ex=sum(x.^2)
Ex =
8.0
>> Ex=sum(X.^2)/N
Ex =
18
2
8.0
Таким образом, выполнена проверка формулы Парсеваля для прямо2 
k.
N 
угольного сигнала (11) и его спектра X 
1.3. Свойство линейности ДПФ.
Дискретное преобразование Фурье имеет ряд полезных свойств, основными из которых являются: линейность, свойство кругового сдвига и
свойство симметрии.
Свойство линейности можно сформулировать следующим образом:
Если существует последовательность дискретных функций
 2 
 2 
k  , X1
k,
x(n) , x1 (n) , x2 (n) … с одинаковым периодом N и их ДПФ X 
N 
 N 
 2 
X2
k  …, соответственно, то линейная комбинация этих функций равN 
ная:
z(n)  ax(n)  a1 x1 (n)  a2 x2 (n)... ,
(12)
где a, a1, a2 ... - постоянные коэффициенты,
2 
k  , равный линейной комбинации исходных спекN 
имеет спектр Z 
тров:
 2 
 2 
 2 
 2 
Z
k  = aX 
k  + a1 X 1 
k  + a2 X 2 
k… .
N 
N 
N 
N 
(13)
2 
k  неN 
Справедливо также обратное утверждение: если спектр Z 
которой дискретной функции z(n) можно представить в виде линейной
комбинации спектров вида (13), то z(n) представляется в виде (12).
Свойство линейности можно сформулировать также в более компактной форме, используя символ  двусторонней импликации:
Если существует последовательность дискретных функций
 2 
 2 
k  , X1
k,
x(n) , x1 (n) , x2 (n) … с одинаковым периодом N и их ДПФ X 
N 
 N 
 2 
X2
k  …, то справедливо соответствие:
N 
19
 2 
 2 
 2 
ax(n)  a1x1 (n)  a2 x2 (n)...  aX 
k  + a1 X 1 
k  + a2 X 2 
k…
N 
N 
N 
1.3.1. Пример 2. Линейность ДПФ суммы прямоугольного и
треугольного сигналов.
Рассмотрим пример двух сигналов x(n) и x1 (n) в виде:
1 0  n  L  1
xn   
,
0 L  n  N  1
где x(n) - прямоугольный сигнал и
L

0  n  1
 n,
2

L
x1 n    L  n  1,
 n  L 1
2

L  n  N 1
 0,

,
(14)
где x1 (n) - треугольный сигнал при L – четном.
Как и ранее выберем параметры L  8 , N  64 .
По аналогии с уже проведенными вычислениями формы прямоугольного сигнала x(n) на Рис. 2 и его спектра на Рис. 5 в среде MatLab
2 
k:
 N 
построим графики треугольного сигнала x1 (n) и его спектра X 1 
>> L=8; N=64; n=0:N-1; x1(1:N)=0; x1(1:L/2) = n(1:L/2); x1(L/2+1:L) =
L-n(L/2+1:L)-1;
>> stem(n, x1); grid on;
20
3
x1 (n)
2.5
2
1.5
1
0.5
0
n
0
10
20
30
40
50
60
70
Рис. 7. Дискретный треугольный сигнал x1 (n) длительностью L  8
отсчетов и с периодом N  64 .
Далее вычислим спектр треугольного сигнала и его модуль:
>> X1=fft(x1,N); modX1=abs(X1); f=n/N; stem(f,modX1); grid on;
12
 2 
X1
k
 N 
10
8
6
4
2
0
fk 
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
k
N
Рис. 8. Амплитуда дискретного спектра треугольного сигнала x1 (n)
при четном L  8 и N  64 для диапазона частот 0  f  1 .
В качестве примера линейной комбинации сигналов x(n) и x1 (n) рассмотрим их сумму, когда коэффициенты в (12) выбраны равными a  a1  1 :
z(n)  x(n)  x1 (n) ,
(15)
Тогда, свойство линейности ДПФ в данном случае означает необходимость и достаточность выполнения соотношения:
21
 2 
 2 
 2 
Z
k= X
k  + X1
k,
N 
N 
 N 
(16)
2 
 2 
k  ДПФ сигнала z (n) , X 
k  - ДПФ прямоугольного сигN 
N 
где Z 
2 
k  - ДПФ треугольного сигнала x1 (n) .
 N 
нала x(n) , X 1 
Иными словами, если (15) выполняется, то надо доказать, что справедливо соотношение (16) – это прямое утверждение (или достаточность).
Для проверки этого утверждения введем следующий критерий:
k  N 1
 2 
 2 
 2 
delta   Z 
k X
k   X1
k  0.
 N 
 N 
 N 
k 0
(17)
Вычислим сигналы:
>> L=8; N=64; n=0:N-1; f=n/N; x(1:N)=0; x(1:L)=1;
>> x1(1:N)=0; x1(1:L/2)=n(1:L/2); x1(L/2+1:L)=L-n(L/2+1:L)-1;
z=x+x1;
Затем вычислим спектры и проверим значение параметра delta:
>> Z=fft(z,N); X=fft(x,N); X1=fft(x1,N); delta=sum(abs(Z-X-X1))
delta =
4.6307e-014
Полученный результат показывает, что с точностью до погрешности
вычисления на ЭВМ, условие (17) выполняется, следовательно, соотношение (16) справедливо.
Проверим теперь обратное утверждение (или необходимость): если
(16) выполняется, то надо доказать, что справедливо соотношение (15). По
аналогии с (17) критерий выполнения соотношения (15) можно записать в
виде:
n N 1
delta1   z n   xn   x1n   0
(18)
n0
Вычислим сумму спектров (16), и поместим ее в новый массив Z1,
затем выполним ОДПФ этой суммы и вычислим значение delta1:
>> L=8; N=64; n=0:N-1; f=n/N; x(1:N)=0; x(1:L)=1;
>> x1(1:N)=0; x1(1:L/2)=n(1:L/2); x1(L/2+1:L)=L-n(L/2+1:L)-1;
X=fft(x,N); X1=fft(x1,N);
>> Z1=X+X1; z1= ifft(Z1,N); delta1=sum(abs(z1-x-x1))
22
delta1 =
5.0195e-015
Таким образом, критерий (18) также выполняется и соотношение
(15) справедливо.
1.4. Свойство ДПФ при круговом сдвиге.
Термин «круговой сдвиг» требует пояснения. Мы рассматривали конечную последовательность x(n) длительностью N отсчетов и на ее основе
строили (3) бесконечную периодическую последовательность x p (n ) с периодом N . На конечном интервале 0  n  N  1 эти последовательности одинаковы x p (n ) = x(n) . Следовательно, при рассмотрении ограниченного интервала 0  n  N  1 сдвиг бесконечной периодической последовательности
x p (n ) на n 0 отсчетов эквивалентен круговому сдвигу конечной последовательности x(n) на такое же число отсчетов. При этом, очевидно, что ситуация не изменится, если начало m конечного интервала m  n  m  N  1 будет произвольным.
Свойство ДПФ при круговом сдвиге можно сформулировать следующим образом. Если существует периодическая последовательность x(n) с
2 
k  , то справедливо соответствие при кругоN 
периодом N и ее ДПФ X 
вом сдвиге x(n) на n0 отсчетов:
2
 2   j N kn0
k e
x(n  n0 )  X 
 N 
(19)
1.4.1. Пример 3. Свойство ДПФ при круговом сдвиге
треугольного сигнала
Рассмотрим пример треугольного сигнала x(n) при нечетном L в виде:

 n,

xn    L  n  1,

 0,

0n
L 1
2
L 1
 n  L 1
2
L  n  N 1
(20)
23
где L  9 , N  64 .
По аналогии с процедурой вычисления треугольного сигнала при
четном L на Рис. 7 и его спектра на Рис. 8 построим в среде MatLab графики треугольного сигнала (20) и его спектра для случая нечетного L . Вначале вычислим сигнал:
>> L=9; N=64; n=0:N-1; x(1:N)=0; x(1:(L+1)/2)=n(1:(L+1)/2);
>>x((L+1)/2+1:L)=L-n((L+1)/2+1:L)-1; stem(n,x); grid on;
В результате выполнения этих команд получим график на Рис. 9.
Далее вычислим спектр этого сигнала и его модуль:
>> X=fft(x,N); modX=abs(X); f=n/N; stem(f,modX); grid on;
В результате выполнения этих команд получим график на Рис. 10.
Следует обратить внимание на различие формы спектров на Рис. 8 и
Рис. 10 для треугольных сигналов с четным и нечетным L , соответственно.
При нечетном L форма треугольного сигнала (Рис. 9) в точности
определяется результатом свертки двух одинаковых прямоугольных сигналов длительностью
L 1
 4 отсчетов каждый (с учетом начального и ко2
нечного нулевых отсчетов треугольного сигнала). Поэтому спектр на Рис.
10 представляет собой произведение спектров одинаковых прямоугольных
сигналов (или спектр в квадрате). При этом ширина лепестков результирующего спектра равна
2
2
  0.25 , что хорошо видно на Рис. 10.
L 1 8
При четном L форма треугольного сигнала (Рис. 7) определяется результатом свертки двух прямоугольных сигналов разной длительностью. В
нашем случае эти длительности равны L1  3 и L2  4 отсчетов (также с
учетом добавления начального и конечного нулевых отсчетов). Поэтому
спектр сигнала на Рис. 8 представляет собой произведение спектров этих
двух прямоугольных сигналов с длительностями L1 и L2 . При этом положение
нулей
результирующего
спектра
следующее:
1 1
  0.25 ;
L2 4
1 1
2 1
  0.33 ;
  0.5 , что соответствует Рис. 8.
L2 2
L1 3
24
xn
4
3.5
3
2.5
2
1.5
1
0.5
0
n
0
10
20
30
40
50
60
70
Рис. 9. Дискретный треугольный сигнал y(n) длительностью L  9 и
с периодом повторения N  64 .
 2 
X k
N 
16
14
12
10
8
6
4
2
fk 
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Рис. 10. Амплитуда дискретного спектра
при L  9 , N  64 для диапазона частот 0  f  1 .
0.9
k
N
1
треугольного сигнала
Далее вычислим произведение спектра треугольного сигнала, и дискретной экспоненциальной функции, представленной в правой части соотношения (19). Затем, вычислив обратное преобразование Фурье полученного произведения, построим график треугольного сигнала с круговым
сдвигом на n0 отсчетов. Для наглядности результата выберем значение
n0  61 отсчету и выполним следующие команды:
25
>> L=9; N=64; n=0:N-1; x(1:N)=0; x(1:(L+1)/2)=n(1:(L+1)/2);
>> x((L+1)/2+1:L)=L-n((L+1)/2+1:L)-1; X=fft(x,N);
>>
n0=61;
k=0:N-1;
E=exp(-j*2*pi*k*n0/N);
Xn0=X.*E;
xn0=real(ifft(Xn0));
>> stem(n, xn0); grid on;
В результате выполнения этих команд получим график на Рис. 11.
xn  n0
4
3.5
3
2.5
2
1.5
1
0.5
0
-0.5
n
0
10
20
30
40
50
60
70
Рис. 11. Круговой сдвиг дискретного треугольного сигнала x(n  n0)
на n0  61 отсчет. Длительность сигнала L  9 , период повторения N  64 .
Полученный результат на Рис. 11 наглядно показывает результат
кругового сдвига треугольного сигнала на n0  61 отсчет. Заметим, что при
выборе n0  64 , сигнал примет исходное положение, показанное на Рис. 9.
1.5. Свойства симметрии ДПФ.
Если сигнал x(n) имеет конечную длительность N и является дей 2 
ствительным, то его ДПФ X  k  удовлетворяет свойствам симметрии:
N

  2 
  2
N  k   Re  X   2 k  ;
Re  X 
k   Re  X 

  N 
  N
  N 
(21)
  2 
  2 
Im  X 
k    Im  X  
k  ;
  N 
  N 
26
 2 
 2 
X
k   X 
k ;
 N 
 N 
 2 
 2 
arg X 
k    arg X  
k .
N 
 N 
Использование свойств симметрии ДПФ позволяет уменьшить объем вычислений при оценке амплитуды спектральных составляющих или
фазовых характеристик, когда соответствующие величины необходимо
вычислить только для положительных частот и продлить полученные результаты в область отрицательных частот.
Интересный результат можно получить также, составив комплексный сигнал z(n) из двух действительных сигналов x(n) и y(n) одинаковой
длительности N :
z(n)  x(n)  jy(n) .
(22)
 2 
k  этого сигнала, можно поN 
Тогда, вычислив один раз спектр Z 
 2 
 2 
k  и Y
k  двух исходных сигналов, что также
 N 
N 
лучить спектры X 
может существенно сократить объем вычислений, особенно при больших
значениях N . Используя (21), нетрудно получить следующие соотношения:
  2  1   2  1   2 
Re  X 
k   Re  Z 
k   Re  Z  
k  ,
  N  2   N  2   N 
(23)
  2  1   2  1   2 
Im  X 
k   Im  Z 
k   Im  Z  
k  ,
  N  2   N  2   N 
  2  1   2  1   2 
Re Y 
k   Im  Z 
k   Im  Z  
k  ,
  N  2   N  2   N 
  2  1   2  1   2 
Im Y 
k   Re  Z  
k   Re  Z 
k  .
  N  2   N  2   N 
Практическое использование этих соотношений представлено в
Примере 4.
27
1.5.1. Пример 4. Вычисление спектров линейно нарастающего и
сигнала «полуволна синусоиды» с использованием свойства
симметрии ДПФ.
Рассмотрим пример двух сигналов x(n) и y(n) вида:
 n
0  n  L 1
,
xn    L  1
 0
L  n  N 1
(24)
где x(n) - линейно нарастающий сигнал и
 
n 
sin  
0  n  L 1
,
y n     L  1 

0
L  n  N 1
(25)
где y(n) - сигнал «полуволна синусоиды».
Как и ранее выберем параметры L  8 , N  64 .
В среде MatLab сначала построим график линейно нарастающего
сигнала x(n) :
>> L=8; N=64; n=0:N-1; x(1:N)=0; x(1:L)=n(1:L)/(L-1); stem(n,x); grid
on;
В результате выполнения этих команд получим график на Рис. 12.
В рассматриваемом случае для изучения свойств симметрии ДПФ
вычислим спектр в основной области частот с использованием функции
fftshift(X):
>> L=8; N=64; n=0:N-1; x(1:N)=0; x(1:L)=n(1:L)/(L-1);
>> X=fft(x,N); modX=abs(fftshift(X)); f=(n-N/2)/N; stem(f,modX); grid
on;
В результате выполнения этих команд получим график на Рис. 13.
28
xn
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
n
0
0
10
20
30
40
50
60
70
Рис. 12. Дискретный линейно нарастающий сигнал длительностью
L  8 с периодом повторения N  64 .
 2 
X k
 N  3.5
4
3
2.5
2
1.5
1
0.5
fk 
0
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
k
N
Рис. 13. Амплитуда дискретного спектра линейно нарастающего
1
2
1
2
сигнала x(n) при L  8 , N  64 для диапазона частот   f  .
Далее для сигнала «полуволна синусоиды» (25) выполним:
>> L=8; N=64; n=0:N-1;
stem(n,y); grid on;
y(1:N)=0; y(1:L)=sin(pi*n(1:L)/(L-1));
29
yn
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
n
0
10
20
30
40
50
60
70
Рис. 14. Дискретный сигнал «полуволна синусоиды» длительностью L  8 и с периодом повторения N  64 .
Соответственно, получим график амплитуд дискретного спектра
сигнала «полуволна синусоиды»:
>> L=8; N=64; n=0:N-1; y(1:N)=0; y(1:L)=sin(pi*n(1:L)/(L-1));
>> Y=fft(y,N); modY=abs(fftshift(Y)); f=(n-N/2)/N; stem(f,modY); grid
on;
 2 
Y k 
N 
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
-0.5
fk 
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
k
N
Рис. 15. Амплитуда дискретного спектра сигнала «полуволна сину1
2
1
2
соиды» при L  8 , N  64 для диапазона частот   f  .
30
Составим комплексный сигнал z(n)  x(n)  jy(n) из двух действитель 2 
ных сигналов и вычислим спектр Z  k  составного сигнала z(n) , помеN

стив результат в массив Z m , где номера m в MatLab всегда начинаются с
единицы 1  m  N :
>>
z=x+j*y;
stem(f,modZ); grid on;
Z=fftshift(fft(z,N));
modZ=abs(Z);
f=(n-N/2)/N;
7
 2 
Z k 
N  6
5
4
3
2
1
fk 
0
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
k
N
0.5
Рис. 16. Амплитуда спектра комплексного дискретного сигнала
z(n)  x(n)  jy(n) при L  8 , N  64 для диапазона частот 
1
1
 f  .
2
2
На Рис. 16 хорошо видно отсутствие симметрии модуля спектра
 2 
Z
k  относительно нулевой частоты f  0 . Как видно из графика мо N 
дуль спектра комплексного сигнала z(n)  x(n)  jy(n) смещен с область отрицательных частот и имеет несимметричные боковые лепестки.
 2 
Для вычисления спектра Z   k  достаточно зеркально поменять

N

местами элементы массива Z m относительно нулевой частоты. Элемент
Z 1 соответствует частоте f   , Z 2 соответствует частоте f   
1
2
N 
Z  1 соответствует частоте
2

1
2
1
,
N
f  0 , а Z N  соответствует частоте
31
f 
 2 
1 1
k  элемент Z 1 оставим
 . С учетом периодичности спектра Z 
2 N
N 
на месте, а зеркально переставим только элементы Z m с номерами
2  m  N и поместим результат в массив Z1 m :
>> Z1(1)=Z(1); Z1(2:N)=Z(N-n(1:(N-1)));
Далее, пользуясь формулами (23) для определения спектров исход 2 
ных функций, вычислим спектр линейного сигнала X1 m  X  k  :
 N

>> X1=(real(Z)+real(Z1)+j*imag(Z)-j*imag(Z1))/2;
Затем для проверки правильности проделанных вычислений восстановим исходный сигнал, пользуясь функцией ifft и функцией ifftshift, обратной fftshift:
>> x1=real(ifft(ifftshift (X1),N)); stem(n,x1); grid on;
В результате, как и ожидалось, получился линейно нарастающий
сигнал, изображенный на Рис. 12.
Теперь восстановим сигнал «полуволна синусоиды», пользуясь формулами (23) и полученными массивами Z и Z1:
>> Y1=(imag(Z)+imag(Z1)+j*real(Z1)-j*real(Z))/2;
>> y1=real(ifft(ifftshift (Y1),N)); stem(n,y1); grid on;
В результате, как и ожидалось, получился сигнал «полуволна синусоиды», изображенный на Рис. 14.
2. Вычисление спектра непрерывных сигналов с помощью ДПФ
В разделе 1 был рассмотрен дискретный сигнал xn  xa nT  длительностью N отсчетов, полученный в результате дискретизации непрерывного сигнала xa t  длительностью Tp  NT вида:
 xa1 t  0  t  
xa t   
,
0


t

T
p

(26)
где xa1 t  - непрерывный сигнал длительностью  , при 0  t   .
Спектр такого сигнала определяется с помощью преобразования
Фурье:
32
Tp
X a 2F    x a t e  j 2Ft dt
  F  
(27)
0
В этом разделе мы рассмотрим возможность оценки спектра X a 2F 
с помощью ДПФ дискретного сигнала xn  xa nT  . Как видно из (8), спектр
F
X   дискретного сигнала xn  есть бесконечная сумма копий спектра
 Fs 
X a 2F  непрерывного сигнала xa t  , сдвинутых друг относительно друга на
частоту дискретизации Fs :

 j 2 n
 F  N 1
Fs
X     xn e
 Fs  X a 2F  2Fs k  ,
k 
 Fs  n0
F
где xn  xa nT  и 
(28)
Fs
F
F s .
2
2
Для суммы в правой части выражения (28) введем обозначение:
k 
~
X a F    X a 2F  2Fs k 
(29)
k 
Запишем X a F  в виде:
~
k 
~
X a F   X a 2F    X a 2F  2Fs k   X a 2F  2Fs k  ,
(30)
k 1
В правой части выражения (30) первое слагаемое представляет основную часть спектра X a 2F  сигнала xa t  , размещенную в частотном
«окне» 
Fs
F
F s
2
2
шириной Fs . Второе слагаемое представляет собой
суммарный вклад «хвостов» размноженного спектра в это частотное окно.
При этом под знаком суммы первое слагаемое представляет повторение
спектра в область положительных частот, а второе слагаемое представляет
повторение спектра в область отрицательных частот.
Пользуясь ДПФ (таблица 1.), можно вычислить дискретный набор
спектральных составляющих непрерывного спектра (29):
N 1
2k 
~  2Fs 

Xa
k   T  xa nT exp  j
n
N 
 N 

n0
xa nT  
Fs N 1 ~  2Fs 
 2k 
Xa
k  exp j
n

N k 0  N 
 N 
k  0, 1, 2, ... N  1
(31)
n  0, 1, 2, ... N  1
33
В результате дискретизации непрерывного сигнала xa t  получаем
дискретные отсчеты xa nT  , спектр X a F  которых содержит искажения
дискретной обработки и связан с исходным спектром X a F  соотношением
(29).
Таким образом, с помощью ДПФ мы обрабатываем дискретные отсчеты xa nT  сигнала xa t  длительностью Tp  NT с разрешающей способ~
ностью по времени равной величине интервала дискретизации T . При
этом в частотной области получаем дискретный набор спектральных соF
F
2Fs 
k  из основной области частот  s  F  s длиной
2
2
 N 
1 F
Fs с разрешающей способностью по частоте F =  s .
Tp N
ставляющих X a 
~
На практике использование ДПФ вида (31) затруднительно, поскольку стандартные функции вычисления ДПФ на ЭВМ реализуют каноническую форму ДПФ, представленную в таблице 1. При этом дискретный
2 
k  вычисляется на интервале частот 0  f  1 вместо основN 
1
1
ной области частот   f  .
2
2
спектр X 
С учетом (28) и (29), получаем:
~  2Fs 
 2 
Xa
k   TX 
k ,
 N 
N 
xa nT   xn  ,
k  0, 1, 2, ... N  1
(32)
n  0, 1, 2, ... N  1
2Fs 
k  вычис N 
Дискретный набор спектральных составляющих X a 
~
ляется на интервале частот 0  F  Fs , где область частот 0  F 
ствует спектру для положительных частот, а область
Fs
соответ2
Fs
 F  Fs соответ2
ствует спектру для отрицательных частот.
Соответствие между частотами ДПФ спектральных составляющих
представлено в таблице 3.
34
1
2
Таблица 3. Значения частот ДПФ в основной области   f 
Fs
F
 fFs  s при вычислении спектра в диапазоне 0  F  Fs .
2
2
k
N
N
N
номера
1
1
0
1
...
2
2
2
строк
1
и
2

f 
k
N
0
F
0
fFs
0
1
N
Fs
N
Fs
N
...
…
1 1

2 N
Fs Fs

2 N
Fs Fs

2 N
1
2
Fs
2
F
 s
2

1 1 
  
2 N 
Fs Fs

2 N
1 1 
 Fs   
2 N 
N 1
...
1
N
F
Fs  s
N
F
 s
N

...
…
…
2.1. Пример 5. Непрерывный прямоугольный сигнал.
Пусть на интервале 0  t  Tp прямоугольный сигнал xa t  имеет вид:
1 0  t  
xa t   
,
0   t  Tp
где  - длительность прямоугольного сигнала, T p - интервал наблюдения прямоугольного сигнала.
Спектр X a F  сигнала xa t  вычисляется как:



0
X a F    xa t e  j 2Ft dt   e  j 2Ft dt  e  jF
sin F 
,
F
(33)
где    F  
Как и ранее (раздел 1.1.) определим положение нулевых значений
спектра (33), определяющих ширину его лепестков, из уравнения:
X a F   e  jF
sin F 
 0.
F
(34)
Решением уравнения (34) является выполнение условия F  m , где
m - целое число. Тогда положение нулей спектра определяется отношением:
F
m

,
(35)
35
где m  1, 2, ... - целое число, большее нуля.
Ширина первого лепестка равна
1

1
, второго – также
и т.д. В пре-

делах первого лепестка сосредоточено примерно 91.5% энергии сигнала,
второго – 4.2%, третьего – 1.5%, четвертого – 0.8% и т.д. Таким образом, в
области частот с первого по 4-й лепесток сосредоточено 98% энергии прямоугольного сигнала.
В нашем примере будем считать, что основная энергия (98%) спектральных составляющих (33) сосредоточена в области частот с первого по
4
4-й лепесток, тогда Fmax  . В этом случае частота дискретизации равна

Fs 
1
8
 2 Fmax  .
T

Пусть, например,   20 мс
T
и Tp  160 мс
тогда
Fs 
8

 400 Гц ,
Tp 160
1
 20

 64 .
 2.5 мс , L  
8, N 
T
2 .5
400
Т 2.5
Построим график модуля спектра (33) с использованием ДПФ при
выбранных параметрах в диапазоне частот 0  F  Fs :
>> L=8; N=64; Fs=400; T=1/Fs; n=0:N-1; F=Fs*n/N; x(1:N)=0;
x(1:L)=1;
>> X=T*abs(fft(x,N));stem(F,X); grid on;
~  2Fs 
Xa
k
 N 
0.02
0.018
0.016
0.014
0.012
0.01
0.008
0.006
0.004
0.002
0
F, Гц
0
50
100
150
200
250
300
350
400
Рис. 17. Амплитуда дискретного спектра (32) прямоугольного сигнала xa nT  при   20 мс , Tp  160 мс , Fs  400 Гц , T  2.5 мс , L  8 , N  64 .
для диапазона частот 0  F  Fs .
36
Как и следовало ожидать форма графиков спектра на Рис. 5 и Рис. 17
одинакова.
Для наглядности можно воспользоваться функцией fftshift(X), сдвигающей спектральные составляющие в основную область частот

Fs
F
F s:
2
2
>> X1=fftshift(X); n=-N/2:N/2-1; F=Fs*n/N stem(F,X1); grid on;
Здесь произведен также перерасчет массива частот F для симметричного диапазона.
~  2Fs 
Xa
k
 N 
0.02
0.018
0.016
0.014
0.012
0.01
0.008
0.006
0.004
0.002
F, Гц
0
-200
-150
-100
-50
0
50
100
150
200
Рис. 18. Амплитуда дискретного спектра (32) прямоугольного сигнала xa nT  при   20 мс , Tp  160 мс , Fs  400 Гц , T  2.5 мс , L  8 , N  64 .
для диапазона частот 
Fs
F
F s .
2
2
2.2. Пример 6. Вычисление спектра с помощью программы SPTool
Вычислить ДПФ в среде MatLab можно разными способами. Например, можно воспользоваться программой SPTool [8] в подменю
Start/Toolboxes/Signal Processing/Signal Processing Toolbox(SPTool). В окне
этой программы необходимо импортировать из рабочей области MatLab
(Workspace) в программу SPTool наш прямоугольный сигнал х, полученный в предыдущем разделе с помощью командной строки:
37
>> L=8; N=64; Fs=400; T=1/Fs; n=0:N-1; F=Fs*n/N; x(1:N)=0;
x(1:L)=1;
Для этого в окне программы SPTool в подменю File/Import откройте
окно Import to SPTool. В окне Import to SPTool в разделе Source выберите
опцию From Workspace, а в разделе Workspace Content левой кнопкой
«мыши» выберите переменную х и подтвердите свой выбор нажатием
стрелки для переноса символа х в окошко Data. Затем в том же разделе
Workspace Content левой кнопкой «мыши» выберите частоту дискретизации Fs (или введите ее численное значение) и подтвердите свой выбор
нажатием нижней стрелки для переноса символа Fs в окошко Sampling
Frequency. В окошке Name введите наименование сигнала для программы
SPTool, например sig1, и нажмите ОК. В программе SPTool в окне Signals
левой кнопкой «мыши» выберите сигнал sig1 и нажмите кнопку View. В
открывшемся окне Signal Browser контролируйте форму сигнала sig1.
Для просмотра амплитуды спектра power spectral density (PSD) сигнала sig1 нажмите кнопку Create в разделе Spectra основного окна SPTool.
В открывшемся окне Spectrum Viewer в разделе Parameters в окне Method
выберите FFT (Fast Fourier transform), что означает выбор дискретного
преобразования Фурье, вычисляемого методом быстрого преобразования
Фурье (БПФ). В том же разделе Parameters в окно NFFT введите численное
значение N (в нашем случае N  64 ). В окне Spectrum Viewer в подменю
Options/Frequency Range выберите диапазон наблюдаемых частот [0, Fs ]. В
том же окне в подменю Options/Magnitude Scale выберите Linear - линейную шкалу и нажмите кнопку Apply.
В результате выполнения этих операций получим график на Рис. 19.
38
Рис. 19. Амплитуда спектра прямоугольного сигнала xa nT  при
  20 мс , Tp  160 мс , Fs  400 Гц , T  2.5 мс , L  8 , N  64 . для диапазона
частот 0  F  Fs .
2.3. Пример 7. Вычисление спектра с помощью моделирования в
среде Simulink.
Рассмотрим еще один способ вычисления ДПФ. Для этого воспользуемся расширением MatLab - универсальной интерактивной системой
Simulink, предназначенной, в частности, для моделирования различного
рода функций и алгоритмов обработки сигналов. На Рис. 20 приведена модель вычисления амплитуды спектра прямоугольного сигнала, построенная с помощью Simulink.
Рис. 20. Модель вычисления амплитуды спектра прямоугольного
сигнала, построенная с помощью Simulink.
39
Для построения модели прежде всего необходимо открыть окно новой модели, для чего в открытом окне MatLab выберите меню
File\New\Model в результате чего откроется пустое окно модели. В это окно с помощью «мыши» необходимо «перетащить» блоки модели. В модели
на Рис. 20 использованы три блока: Signal From Workspace, Magnitude FFT
и Vector Scope.
Блок Signal From Workspace импортирует данные из рабочей области
workspace MATLAB. В нашем случае это вектор прямоугольного сигнала х.
Блок Signal From Workspace находится в меню Start\ Simulink\ Simulink Library Browser\ DSP Blockset\ DSP Sources\ Signal From Workspace. После
«перетаскивания» блока в окно модели необходимо установить параметры
этого блока. Для этого с помощью левой клавиши «мыши» щелкните два
раза по блоку и в открывшемся диалоговом окне введите параметры:
 в окно Signal введите имя переменной х;
 в окно Sample time введите значение интервала дискретизации 1/400;
 в окно Samples per frame введите значение фундаментального периода 64;
 в раскрывающемся окне Form output after final data value
by выберите параметр Cyclic Repetition.
После ввода параметров нажмите ОК.
Блок Magnitude FFT вычисляет амплитуду спектра входного векторного сигнала, используя метод быстрого преобразования Фурье (БПФ) или
fast Fourier transform (FFT). При вычислении спектра используется «сглаживание» формы спектра методом «окна», тип которого задается при выборе параметров блока. Блок Magnitude FFT находится в меню Start\ Simulink\ Simulink Library Browser\ DSP Blockset\ Transforms. После «перетаскивания» блока в окно модели необходимо установить параметры этого
блока. Для этого с помощью левой клавиши «мыши» щелкните два раза по
блоку и в открывшемся диалоговом окне введите параметры:
 в раскрывающемся окне Output выберите Magnitude;
 в окно FFT length введите значение фундаментального периода 64.
После ввода параметров нажмите ОК.
В модели блок Vector Scope использован дважды. Один блок используется для отображения входного сигнала х, а второй для отображения
спектра.
40
Окно настройки блока Vector Scope имеет несколько разделов
настройки. Чтобы вызвать определенный раздел, необходимо ввести «галочку» напротив названия раздела, например Show Scope Properties, и в открывшемся окне раздела Scope Properties ввести соответствующие параметры.
Для настройки первого блока Vector Scope1 необходимо выполнить
следующее:
 в разделе Scope Properties введите следующие параметры:
 в раскрывающемся окне Input domain выберите Time;
 в окно Time display span введите 1;
 в разделе Axis Properties введите следующие параметры:
 в окно Minimum Y-limit введите 0;
 в окно Maximum Y-limit введите 2.
Остальные настройки первого блока Vector Scope1 можно не менять.
Для настройки второго блока Vector Scope необходимо выполнить
следующее:
 в разделе Scope Properties введите следующие параметры:
 в раскрывающемся окне Input domain выберите Frequency;
 в разделе Axis Properties введите следующие параметры:
 в окно Frequency units введите Hertz;
 в раскрывающемся окне Frequency range выберите
[0..Fs];
 в раскрывающемся окне Amplitude scaling выберите
Magnitude;
 в окно Minimum Y-limit введите 0;
 в окно Maximum Y-limit 10.
Остальные настройки второго блока Vector Scope можно не менять.
Перед запуском модели необходимо установить продолжительность
моделирования. Для этого в основном окне модели в меню Simulation\ Simulation Parameters\Solver в окно Stop time введите 63/400.
Запустите модель, нажатием кнопки
в открытом окне модели (Рис.
20). В результате моделирования будут открыты два окна с графиками
входного сигнала х и амплитуды его спектра (см. Рис. 21 и Рис. 22, соответственно).
41
Рис. 21. Прямоугольный сигнал.
Как следует из рассмотрения Рис. 21 и Рис. 22, результатом моделирования являются графики сигнала и спектра, оформленные в виде непрерывных функций по времени и частоте, соответственно.
Построенную модель следует сохранить в виде файла, например
dpf1.mdl, для дальнейшего использования в разделе 3.3. Для этого в активном окне модели выберите меню: File/Save as и сохраните файл dpf1.mdl в
желаемом вами месте на жестком диске.
Рис. 22. Амплитуда спектра прямоугольного сигнала.
3. Преобразование Фурье дискретных функций с бесконечной
длительностью.
42
Рассмотрим дискретную функцию xn  с бесконечной длительностью
  n  .
Преобразование Фурье такой функции запишем в виде ряда Фурье:

X  f    xn e  j 2ft ,
(36)
n
1
2
1
2
где    n   ,   f  .,
Пределы суммирования в (36) бесконечны, поэтому возникает вопрос о сходимости ряда Фурье.
Рассмотрим усеченную (частичную) сумму в конечных пределах
 M  n  M , где M – большое целое число:
M
X M  f    xne j 2ft .
(37)
n  M
Если существует предел
lim X  f   X M  f   0 ,
(38)
M 
то мы говорим, что имеет место сходимость преобразования Фурье
бесконечной функции xn  . В таблице 4 представлена пара преобразований
Фурье для бесконечной функции.
Таблица 4 Прямое и обратное преобразования Фурье для бесконечной функции.
Преобразование
Формула преобразования
Анализ функции

Прямое преобразование
X  f    xn e  j 2ft
Спектр функции
n

Синтез функции
Обратное преобразование
1
1
 f 
2
2
1
2
xn    X  f e j 2ft df

1
2
  n  
Преобразования Фурье для бесконечной функции часто используется
для анализа частотных характеристик сигналов. В этом случае мы рас-
43
сматриваем бесконечный сигнал xn  и его спектр X  f  , связанные парой
преобразований Фурье (таблица 4).
В теории фильтрации в качестве исходной функции используется
бесконечная импульсная характеристика (БИХ) анализируемого фильтра,
обычно обозначаемая как hn . Частотная характеристика H  f  такого
фильтра связана с БИХ парой преобразований Фурье, представленных в
таблице 4, с заменой функций xn  и X  f  на hn  и H  f  , соответственно.
Особое значение при вычислении преобразований Фурье бесконечных функций xn  или hn  являются погрешности их усечения в конечных
пределах. Например, если функции X  f  или H  f  имеют разрыв первого
рода, что наблюдается в случае рассмотрения частотных характеристик
сигналов или фильтров с триггерной формой (сигналы с прямоугольным
спектром, идеальные ФНЧ, ПФ и т.п.), то равномерная сходимость ряда
Фурье в точке разрыва (на частоте среза) нарушается и предела вида (38)
не существует. В этом случае преобразования (36) и (37) будут различаться
наличием колебаний X M  f  относительно истинного значения X  f  , увеличивающихся по амплитуде к краям частотной характеристики. При бесконечном увеличении М происходит смещение области колебаний к краям
частотной характеристики без изменения максимального значения амплитуды этих колебаний, составляющей примерно 9% от амплитуды частотной характеристики. Этот эффект часто называют явлением Гиббса [4].
Главная особенность явления Гиббса состоит в неустранимости описанных
колебаний частотной характеристики в окрестности разрыва функции при
бесконечном увеличении М.
3.1. Пример 8. Дискретный апериодический сигнал вида sin(n)/n.
Явление Гиббса.
Рассмотрим пример дискретного сигнала xn  вида:
2 fc


sin 2f c n
xn   
2 fc

2f c n
n0
n0
(39)
Спектр функции xn  можно представить в виде:
1
Xf  
0
f  fc
fc  f  
(40)
44
Относительная частота среза f c в формулах (39) и (40) равна отношению частоты среза Fc спектра X  f  к частоте дискретизации Fs : f c 
Fc
.
Fs
График xn  в конечных пределах легко построить в среде MatLab.
Выберем M  32 , Fc  80 Гц, Fs  400 Гц, тогда выполнив команды:
>>
M=32;
Fc=80;
Fs=400;
x=2*fc*sin(2*pi*fc*n)./(2*pi*fc*n); x(M+1)=2*fc;
>> plot(n+M,x); grid on;
fc=Fc/Fs;
n=-M:M;
получим график, представленный на Рис. 23, сигнала xn , сдвинутого на M  32 отсчета в область положительных n .
Спектр сигнала xn  можно получить, выполнив следующие команды:
>> X=abs(fftshift(fft(x))); f=n/2/M; plot(f,X); grid on;
В результате выполнения этих команд получим график на Рис. 24.
Выберем теперь M  128 , f c  0.2 , тогда, выполнив команды:
>> M=128; fc=0.2; n=-M:M;
x(M+1)=2*fc;
>> plot(n+M,x); grid on;
x=2*fc*sin(2*pi*fc*n)./(2*pi*fc*n);
получим график, представленный на Рис. 25, сигнала xn , сдвинутого на M  128 отсчетов в область положительных n .
Спектр сигнала xn  с указанными параметрами можно получить,
выполнив следующие команды:
>> X=abs(fftshift(fft(x))); f=n/2/M; plot(f,X); grid on;
В результате выполнения этих команд получим график на Рис. 26.
45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
-0.05
-0.1
0
10
20
30
40
50
60
70
Рис. 23. Апериодический сигнал вида (39) при M  32 , Fc  80 Гц,
Fs  400 Гц, f c 
XM  f 
Fc
 0.2 и 0  n  2M  1 .
Fs
1.4
1.2
1
0.8
0.6
0.4
0.2
0
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
f
Рис. 24. Амплитуда спектра X M  f  вида (37) при M  32 , f c  0.2 и

1
1
 f  .
2
2
46
xn 
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
-0.05
-0.1
n
0
50
100
150
200
250
Рис. 25. Апериодический сигнал вида (39) при M  128 , f c  0.2 и
0  n  2M  1 .
XM  f 
1.4
1.2
1
0.8
0.6
0.4
0.2
0
-0.5
f
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
Рис. 26. Амплитуда спектра X M  f  вида (37) при M  128 , f c  0.2 и

1
1
 f  .
2
2
Анализ результатов вычислений, представленных на рисунках 22-26
показывает, что особенностями проявления эффекта Гиббса являются:
 При усечении бесконечной апериодической функции в
спектре, имеющем разрыв первого рода, появляются осцилляции, амплитуда которых растет по мере приближения
к частоте среза спектра;
47
 При увеличении количества отсчетов сигнала частота осцилляций увеличивается, а диапазон их существования по
частоте уменьшается и приближается к частоте среза. При
этом амплитуда максимальной осцилляции в непосредственной близости от частоты среза не меняется и составляет примерно 9% от амплитуды спектра.
3.2. Аппроксимация спектра бесконечного сигнала методом
взвешивания.
В ряде практически важных случаев, когда амплитуда спектра бесконечного сигнала xn  имеет разрыв первого рода, спектр усеченного сигнала в пределах  M  n  M существенно отличается от спектра бесконечного сигнала в области разрыва, а увеличение М не позволяет избавиться
от этих отличий. При этом возникает задача аппроксимации спектра бесконечного сигнала при сравнительно небольших значениях М.
Хорошие результаты дает метод, основанный на использовании весовой последовательности wN n  конечной длины N , называемой окном. В
нашем случае N  2M  1. Чтобы получить хорошую аппроксимацию
функции X  f  , формируется последовательность
xˆ n   xn wN n 
(41)
тождественно равная нулю за пределами интервала  M  n  M .
В правой части выражения (41) представлено произведение двух
дискретных функций, поэтому в спектральной области по теореме о комплексной свертке получаем:
0.5
Xˆ N  f    X  f1 WN  f  f1 df1 ,
(42)
0.5
где Xˆ N  f  - непрерывный спектр сигнала xˆ N n  ;
WN  f  - непрерывный спектр окна wN n  ;
X  f  - непрерывный спектр апериодического сигнала xn  ;
Отсюда можно сделать выводы, содержащие требования к форме частотной характеристики WN  f  окна wN n  :
 ширина главного лепестка WN  f  должна быть малой;
48
 амплитуда боковых лепестков WN  f  должна быстро умень1
2
шаться при приближении f к значениям  .
В работе [5] приведено большое количество функций, которые можно использовать в качестве сглаживающих окон. Формулы для некоторых
из них представлены ниже в Таблице 5 в диапазоне отсчетов 0  n  N  1 :
Наименование
Формулы wN n 
Окно Хеннинга
1
2n 
1  cos

2
N 1 
Окно Хемминга
Окно Блэкмена
Окно Кайзера
0,54  0,46 cos
0,42  0,5 cos
Таблица 5.
2n
N 1
2n
4n
 0,08 cos
N 1
N 1
2
  N  1 2 
N  1  

I0  
 n

  2  
2  


  N 1  
I0   

  2 
Для вычисления формы этих окон в среде MatLab выполним следующие команды:
>>M=32; w = hamming(2*M)'; plot(w); grid on; hold on;
>> w = hann(2*M)'; plot(w); grid on;
>> w = blackman(2*M)'; plot(w); grid on;
>> w = kaiser(2*M,10)'; plot(w); grid on; hold off;
Графики окон представлены на Рис. 27.
49
wN n
1
Окно Хемминга
Окно Кайзера
  10
0.5
Окно Хеннинга
Окно Блэкмена
n
0
0
10
20
30
40
50
60
70
Рис. 27. Формы окон, представленных в таблице 5, при N  64 и параметре   10 для окна Кайзера.
Для вычисления формы спектра этих окон в среде MatLab выполним
следующие команды:
>> w = hamming(2*M)'; W=abs(fftshift(fft(w))); n=-M:M-1; f=n/2/M;
plot(f,W); grid on; hold on;
>> w = hann(2*M)'; W=abs(fftshift(fft(w))); n=-M:M-1; f=n/2/M;
plot(f,W); grid on;
>> w = blackman(2*M)'; W=abs(fftshift(fft(w))); n=-M:M-1; f=n/2/M;
plot(f,W); grid on;
>> w = kaiser(2*M,7)'; W=abs(fftshift(fft(w))); n=-M:M-1; f=n/2/M;
plot(f,W); grid on;
>> w = kaiser(2*M,10)'; W=abs(fftshift(fft(w))); n=-M:M-1; f=n/2/M;
plot(f,W); grid on;
В результате выполнения этих команд получим графики амплитуд
спектров для окон из таблицы 5, представленные на Рис. 28. Как видно на
этих графиках, частотные характеристики всех окон в целом удовлетворяют сформулированным выше требованиям.
50
 2 
W k 
N 
2
10
1
10
Окна:
Хеннинга
0
10
-1
10
-2
10
Хемминга
Блэкмена
Кайзера
  10
-3
10
-4
10
-5
10
fk 
-6
10
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
k
N
0.5
Рис. 28. Амплитуда спектра окон, представленных в таблице 5, при
N  64 и параметре   10 для окна Кайзера для основного диапазона ча1
2
1
2
стот   f  .
Для оценки спектра Xˆ N  f  сигнала xn  методом взвешивания воспользуемся ДПФ, тогда с учетом формул в таблице 1, запишем:
M 1
Xˆ N 2f k    ~
x N n exp j 2f k n ,
(43)
n M
где xˆ N n  xnwN n при  M  n  M и N  2M  1, f k 
k
k

N 2M
3.3. Пример 9. Вычисление спектра сигнала вида sin(n)/n методом
взвешивания окном Хемминга.
Рассмотрим дискретный сигнал xn  вида (38) с параметрами, представленными на Рис. 23. Проведем расчет спектра этого сигнала с использованием процедуры взвешивания, описанной в разделе 3.2. Для взвешивания будем использовать окно Хемминга. С учетом (43) построим график
Xˆ N  f  и для сравнения представим график амплитуды X M  f  спектра усеченного сигнала без сглаживания:
>>
M=32;
Fc=80;
Fs=400;
fc=Fc/Fs;
n=-M:M;f=n/2/M;
x=2*fc*sin(2*pi*fc*n)./(2*pi*fc*n); x(M+1)=2*fc;
>> w = hamming(2*M+1)' ;x1=w.*x; f=n/2/M; X=abs(fftshift(fft(x1)));
plot(f,X); grid on
51
>> hold on
>> X=abs(fftshift(fft(x))); plot(f,X); grid on
~
XN  f 
XM  f 
1.4
1.2
Спектр X M  f 
усеченного
сигнала
Спектр X N  f 
сигнала,
взвешенного окном
Хемминга
~
1
0.8
0.6
0.4
0.2
f
0
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
Рис. 29. Амплитуда Xˆ N  f  спектра сигнала xˆ N n  , взвешенного окном Хемминга, и амплитуда X M  f  спектра усеченного сигнала xn  вида (39) при  M  n  M , M  32 , N  2M  1  65 , f c  0.2 и  0,5  f  0,5 .
3.4. Пример 10. Вычисление спектра сигнала вида sin(n)/n
с помощью модели в среде Simulink
В разделе 2.3 в среде Simulink была разработана модель для вычисления формы спектра сигнала, сформированного в рабочей области workspace MatLab.
Воспользуемся этой моделью, которая была сохранена в файле
dpf1.mdl. Для вызова модели необходимо в активном окне MatLab выбрать меню File\Open и открыть файл dpf1.mdl, сохраненный вами при
изучении раздела 2.3.
Дополним модель dpf1.mdl блоком Window Function, находящимся в
в меню Start\ Simulink\ Simulink Library Browser\ DSP Blockset\ Signal Operations\ Window Function, как это показано на Рис 28.
При настройке блоков модели в разделе 3.3 мы предварительно формировали исходный сигнал в массиве х. Нужный нам сейчас сигнал вида
(38) будем формировать также в массиве х. При этом для последующего
вычисления БПФ будем использовать длину массива х, кратную степени 2.
Поэтому в командной строке при формировании массива n будем использовать пределы n=-M:M-1:
52
>> M=32; Fc=80; Fs=400; fc=Fc/Fs;
x=2*fc*sin(2*pi*fc*n)./(2*pi*fc*n); x(M+1)=2*fc;
n=-M:M-1;
f=n/2/M;
Рис. 30. Модель вычисления амплитуды спектра усеченного сигнала вида sin(n)/n, построенная в среде Simulink.
В этом случае необходимо установить параметры новые блока Signal
From Workspace. Для этого с помощью левой клавиши «мыши» щелкните
два раза по блоку и в открывшемся диалоговом окне введите параметры:
 в окно Signal введите имя переменной х;
 в окно Sample time введите значение интервала дискретизации 1/ Fs;
 в окно Samples per frame введите значение фундаментального периода 2*M;
 в раскрывающемся окне Form output after final data value
by выберите параметр Cyclic Repetition.
После ввода параметров нажмите ОК.
Новый блок Window Function производит умножение отсчетов входного сигнала на отсчеты окна выбранного типа. Для настройки этого блока
необходимо с помощью левой клавиши «мыши» щелкнуть два раза по
блоку и в открывшемся диалоговом окне ввести параметры:
 в раскрывающемся окне Operation выберите параметр Apply window to input;
 в раскрывающемся окне Window type выберите параметр
Hamming;
 в раскрывающемся окне Sampling выберите параметр
Symmetric.
53
После ввода параметров нажмите ОК.
По аналогии с Рис. 28 вывод спектра будем проводить в основной
области частот. Для этого перенастроим параметр блока Vector Scope в
разделе Axis Properties:
 в раскрывающемся окне Frequency range выберите
[-Fs/2..Fs/2].
Теперь модель готова к работе. В открытом окне модели запустите
ее, нажатием кнопки . В результате моделирования будут открыты два
окна с графиками входного сигнала х и амплитуды его спектра.
Рис. 31. Сигнал вида sin(n)/n, вычисленный в среде Simulink.
54
Рис. 32. Вычисление амплитуды спектра сигнала sin(n)/n в среде
Simulink.
4. Задание к лабораторной работе
В таблице 6 представлены варианты дискретных сигналов.
Таблица 6
Вид
Финитные сигналы xn 
Бесконечные сигналы xn 
Сигнала
при 0  n  N  1
при    n  
Прямоугольный сигнал
В1
1 0  n  L  1
xn   
0 L  n  N  1
Линейный сигнал
В2
n


0  n  L 1
xn    L  1

L  n  N 1
 0
2 fc


sin 2f c n
xn   
2f
 c 2f c n
n0
n0
0,
n0

 
xn    sin 2f c n cos 2f c n 
f

, n  0
2
 c
n

  2f c n
Треугольный сигнал
при четном L
В3
L

0  n  1
 n,
2

L
xn    L  n  1,
 n  L 1
2

L  n  N 1
 0,

2 fc

2

xn     sin 2f c n 
2 f c  2f n 
c

 
n0
n0
55
Вид
Финитные сигналы xn 
Бесконечные сигналы xn 
Сигнала
при 0  n  N  1
при    n  
Треугольный сигнал
при нечетном L
В4

 n,

xn    L  n  1,

 0,

0n
L 1
2
L 1
 n  L 1
2
L  n  N 1
2 fc

2

xn     sin 2f c n 
2 f c  2f n 
c

 
n0
n0
Сигнал «полуволна
синусоиды»
В5
  n
0  n  L 1
sin 
x  n     L 

0
L  n  N 1

x  n   fc
cos 2 f c n
2
 
    2 f c n 
2
 
2
Примечания к таблице 6:
1. Строки таблицы 6 содержат варианты В1 – В5 с указанием аналитической формы анализируемого сигнала. Каждый вариант
содержит финитный сигнал, представленный на конечном интервале 0  n  N  1, и бесконечный сигнал, представленный в
интервале    n   .
2. В каждом варианте конечный и бесконечный сигналы имеют
смысловую взаимосвязь. Так в первом варианте В1 конечный
сигнал – прямоугольный, следовательно, спектр этого сигнала
имеет форму вида sin(n)/n. Именно такую форму имеет бесконечный сигнал для этого варианта и т.д. Следует подчеркнуть,
что поскольку бесконечные сигналы в правой колонке являются
вещественными функциями, то их Фурье образ оказывается
четной функцией. В частности, для варианта В5 конечный сигнал представляет собой «полуволну синусоиды», а Фурье преобразование бесконечного сигнала - «полуволну косинусоиды».
Исключением, строго говоря, является вариант В3, поскольку
дискретный треугольный сигнал для четного L больше похож
на трапецию с шириной вершины, равной интервалу дискретизации. Пояснения по этому поводу приведены в разделе 1.6.
56
3. При вычислении бесконечных сигналов xn  в среде MatLab
следует учесть особенности этих функций при некоторых значениях параметра n . В частности, для вариантов В1 и В3
функция xn  вида sin(n)/n имеет особенность при n  0 , о чем в
среде MatLab будет выдаваться соответствующее предупреждение. В частности, для варианта В1 имеем:
>>
M=64;
fc=0.2;
n=-M:M-1;
f=n/N;
x=2*fc*sin(2*pi*fc*n)./(2*pi*fc*n);
Warning: Divide by zero.
(Type "warning off MATLAB:divideByZero" to suppress this warning.)
При этом элемент х(М+1) массива х(k), где 1  k  2M , соответствующий элементу n(M+1)=0 массива n(k), не будет определен.
Поэтому элементу х(М+1) необходимо присвоить значение предела функции xn  при n(M+1)=0:
>> х(М+1)= 2*fc;.
Для варианта В2 при n=0 наблюдается особенность типа
«    », а предел функции равен нулю, следовательно, после
вычисления функции необходимо выполнить команду:
>> х(М+1)= 0;.
Для варианта В4 функция xn  может иметь две особенности в
точках n  
1
1
, если величина
– целое число. В этом слу4 fc
4 fc
чае необходимо доопределить xn  в этих двух точках.
В таблице 7 представлены варианты заданий к лабораторной работе:
Таблица 7
№
Вариант
L
N
Fs
M
Fс
Тип
Гц
окна
задания
сигнала
1
В1
6
32
100
16
11
Хеннинга
2
В2
8
64
200
32
41
Хемминга
3
В3
10
64
400
32
71
Блэкмена
Гц
57
Кайзера
4
В4
15
128
600
64
81
 5
5
В5
15
128
600
64
81
Кайзера
  10
В соответствии с одним из заданий в таблице 7 (с учетом таблицы 6)
выполнить следующие пункты:
1. Построить график заданного финитного сигнала xn  на длительности 0  n  N  1 при заданном L . Построить график амплитуды
спектра этого сигнала, определить положение нулей спектра и относительный уровень первого «лепестка». Проверить выполнение
формулы Парсеваля.
2. Повторить вычисления по п.1. для параметров заданного финитного сигнала xn  равных 2 L и N ; L и 2 N .
3. По заданным параметрам L , N и Fs дискретного сигнала определить значения параметров  и T p , порождающего его непрерывного сигнала. Построить график амплитуды дискретного спектра
сигнала xa nT  для диапазона частот 0  F  Fs . Сравнить полученный результат с результатами п. 1.
4. Проверить свойство линейности ДПФ для заданного финитного
сигнала и второго произвольно выбранного финитного сигнала из
таблицы 6.
5. Проверить свойство ДПФ при круговом сдвиге заданного финитного сигнала.
6. Составить комплексный сигнал из двух действительных финитных
сигналов: заданного сигнала и второго произвольно выбранного
сигнала из таблицы 6. Вычислить спектры этих сигналов, используя результат вычисления спектра комплексного сигнала и свойства симметрии ДПФ.
7. Построить с помощью программы SPTool графики заданного финитного сигнала и амплитуды его спектра с параметрами  и T p ,
вычисленными в п. 3.
8. Построить в среде Simulink модель и получить графики заданного
финитного сигнала и амплитуды его спектра с параметрами  и
T p , вычисленными в п. 3.
9. Для заданной формы бесконечного дискретного сигнала вычислить его параметры по заданным параметрам Fс и Fs порождаю58
щего непрерывного сигнала. Построить график непрерывного бесконечного сигнала в пределах временного интервала 
M
M
.
t 
Fs
Fs
Построить график амплитуды дискретного спектра сигнала x a nT 
для диапазона частот 0  F  Fs , для длительностей усеченного апериодического сигнала (М+1)/Fs, (2М+1)/Fs, (4М+1)/Fs. Показать на
графиках искажения спектра, связанные с явлением Гиббса.
10. Вычислить спектр заданного бесконечного сигнала методом ДПФ
со сглаживанием заданным окном. Построить график амплитуды
спектра и сравнить с результатом п. 9.
11. Вычислить спектр заданного бесконечного сигнала с помощью
модели в среде Simulink. Сравнить результат моделирования с результатом п. 9.
59
Библиографический список
1. Цикин И.А. Свойства сигналов, используемых в радиосистемах.
Учебное пособие.- Л., изд. ЛПИ, 1980. 64 с.
2. Цикин И.А. Оптимальная обработка сигналов в радиотехнических
системах. Учебное пособие.- Л., изд. ЛПИ, 1986.
3. Основы цифровой обработки сигналов: Курс лекций / Авторы: Солонина А.И., Улахович Д.А., Арбузов С.М., Соловьева Е.Б./ Изд. 2-е
испр. и перераб. – СПб.: БХВ-Петербург, 2005. 768 с.
4. Рабинер Р., Голд Б. Теория и применение цифровой обработки сигналов.- М.: МИР, 1978.
5. Айфичер Э.С., Джервис Б.У. Цифровая обработка сигналов: Практический подход. 2-е изд. Пер. с англ. – М.: Издательский дом «Вильямс», 2004. 992 с.
6. Варгаузин В.А. Цифровая обработка сигналов: Лабораторный практикум. Часть 1. СПб.: Изд-во СПбГПУ, 2004. 36с.
7. Варгаузин В.А. Цифровая обработка сигналов: Лабораторный практикум. Часть 2. СПб.: Изд-во СПбГПУ, 2005. 27с.
8. Дьяконов В.П. MATLAB 6.5 SP1/7 + Simulink 5/6R в математике и моделировании. Серия «Библиотека профессионала». — М.: СОЛОНПресс, 2005. 576 с.
9. J.G. Proakis, D.G. Manolakis Digital signal processing. Principles, Algorithms and Applications, Second edition, 1992. 969 р.
60
Радченко Николай Николаевич
ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ
Дискретное преобразование Фурье
Методические указания по выполнению лабораторной работы
Лицензия ЛР № 020593 от 07.08.97
Налоговая льгота – Общероссийский классификатор продукции
ОК 005-93, т. 2; 95 3005 – учебная литература
Подписано в печать
Усл. печ. л.
Уч.-изд. л.
Формат 60×84/16.
Тираж 30. Заказ
Отпечатано с готового оригинал-макета, предоставленного автором,
в Цифровом типографском центре Издательства Политехнического университета
195251, Санкт-Петербург, Политехническая ул., 29.
Тел.: 550-40-14
Тел./факс: 297-57-76
61
Download