Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Звіт
про виконання розрахункової роботи
з курсу „ Обробка сигналів ”
Тема:
Дослідження спектральниххарактеристик сигналу
Мета роботи: освоїти методику обчислення спектральних характеристик сигналу за допомогою перетворення Фур’є.
Завдання
Варіант
Форма сигналу
Зауваження до завдання
9
A ,с - довільні додатні константи (обрано A=6; c=9).
Решта параметрів визначаються за співвідношеннями:
B = 0.5 * A; d = с / 2;
e = с / 4; f = с;
g = 2 * с; h = 4 * с.
Теоретичні відомості
Прямим та оберненим дискретним перетворенням Фур’є (ДПФ) називають пару взаємнооднозначних лінійних перетворень виду (1), (2):
Пряме дискретне перетворення Фур’є (1) призначено для виконання Фур’є-аналізу, тобто визначає спектральні компоненти (складові) X(k) сигналу x(n). Обернене перетворення Фур’є (2) забезпечує Фур’є-синтез сигналу x(n) за заданим набором спектральних компонент X(k) . У загальному випадку послідовності x(n) і X(k) - комплексні.
1. Аналітичний вираз для знаходження частотного спектру заданого сигналу (використовуємо рівність 2).
При k = 1 : N-1 : Ck(k)=1/T* ( A/(-j*k*w*c)*(c+1/(j*k*w)*(1-exp(j*k*w*c))) +
+ A/(-j*k*w*f)*(1/(j*k*w)*(1-exp(-j*k*w*f))-f) );
При k = 0: Ck=A/(2*T)*(c+f);
2. Таблиця 128 значень спектральних коефіцієнтів:
0 50.0000 + 0.0i
1 20.2642 + 0.0i
2 0.0000 + 0.0i
3 2.2516 + 0.0i
4 0.0000 + 0.0i
5 0.8106 + 0.0i
6 0.0000 + 0.0i
7 0.4136 + 0.0i
8 0.0000 + 0.0i
9 0.2502 + 0.0i
10 0.0000 + 0.0i
11 0.1675 + 0.0i
12 0.0000 + 0.0i
13 0.1199 + 0.0i
14 0.0000 + 0.0i
15 0.0901 + 0.0i
16 0.0000 + 0.0i
17 0.0701 + 0.0i
18 0.0000 + 0.0i
19 0.0561 + 0.0i
20 0.0000 + 0.0i
21 0.0460 + 0.0i
22 0.0000 + 0.0i
23 0.0383 + 0.0i
24 0.0000 + 0.0i
25 0.0324 + 0.0i
26 0.0000 + 0.0i
27 0.0278 + 0.0i
28 0.0000 + 0.0i
29 0.0241 + 0.0i
30 0.0000 + 0.0i
31 0.0211 + 0.0i
32 0.0000 + 0.0i
33 0.0186 + 0.0i
34 0.0000 + 0.0i
35 0.0165 + 0.0i
36 0.0000 + 0.0i
37 0.0148 + 0.0i
38 0.0000 + 0.0i
39 0.0133 + 0.0i
40 0.0000 + 0.0i
41 0.0121 + 0.0i
42 0.0000 + 0.0i
43 0.0110 + 0.0i
44 0.0000 + 0.0i
45 0.0100 + 0.0i
46 0.0000 + 0.0i
47 0.0092 + 0.0i
48 0.0000 + 0.0i
49 0.0084 + 0.0i
50 0.0000 + 0.0i
51 0.0078 + 0.0i
52 0.0000 + 0.0i
53 0.0072 + 0.0i
54 0.0000 + 0.0i
55 0.0067 + 0.0i
56 0.0000 + 0.0i
57 0.0062 + 0.0i
58 0.0000 + 0.0i
59 0.0058 + 0.0i
60 0.0000 + 0.0i
61 0.0054 + 0.0i
62 0.0000 + 0.0i
63 0.0051 + 0.0i
64 0.0000 + 0.0i
65 0.0048 + 0.0i
66 0.0000 + 0.0i
67 0.0045 + 0.0i
68 0.0000 + 0.0i
69 0.0043 + 0.0i
70 0.0000 + 0.0i
71 0.0040 + 0.0i
72 0.0000 + 0.0i
73 0.0038 + 0.0i
74 0.0000 + 0.0i
75 0.0036 + 0.0i
76 0.0000 + 0.0i
77 0.0034 + 0.0i
78 0.0000 + 0.0i
79 0.0032 + 0.0i
80 0.0000 + 0.0i
81 0.0031 + 0.0i
82 0.0000 + 0.0i
83 0.0029 + 0.0i
84 0.0000 + 0.0i
85 0.0028 + 0.0i
86 0.0000 + 0.0i
87 0.0027 + 0.0i
88 0.0000 + 0.0i
89 0.0026 + 0.0i
90 0.0000 + 0.0i
91 0.0024 + 0.0i
92 0.0000 + 0.0i
93 0.0023 + 0.0i
94 0.0000 + 0.0i
95 0.0022 + 0.0i
96 0.0000 + 0.0i
97 0.0022 + 0.0i
98 0.0000 + 0.0i
99 0.0021 + 0.0i
100 0.0000 + 0.0i
101 0.0020 + 0.0i
102 0.0000 + 0.0i
103 0.0019 + 0.0i
104 0.0000 + 0.0i
105 0.0018 + 0.0i
106 0.0000 + 0.0i
107 0.0018 + 0.0i
108 0.0000 + 0.0i
109 0.0017 + 0.0i
110 0.0000 + 0.0i
111 0.0016 + 0.0i
112 0.0000 + 0.0i
113 0.0016 + 0.0i
114 0.0000 + 0.0i
115 0.0015 + 0.0i
116 0.0000 + 0.0i
117 0.0015 + 0.0i
118 0.0000 + 0.0i
119 0.0014 + 0.0i
120 0.0000 + 0.0i
121 0.0014 + 0.0i
122 0.0000 + 0.0i
123 0.0013 + 0.0i
124 0.0000 + 0.0i
125 0.0013 + 0.0i
126 0.0000 + 0.0i
127 0.0013 + 0.0i
3. Графік зміни спектру:
4.1. Порівняння в графічному вигляді результатів обрахунку з результатами лабораторної роботи № 4. Позначення на графіку: Sx - лабораторна робота № 4, Ck - розрахункова робота.
4.2. Порівняння результатів обрахунку з результатами лабораторної роботи № 4 (Sx-Ck):
0 0.0000 + 0.0e+000i
1 0.0001 + -6.1e-017i
2 0.0000 + 0.0e+000i
3 0.0001 + -5.1e-017i
4 0.0000 + 0.0e+000i
5 0.0001 + -1.4e-016i
6 0.0000 + 0.0e+000i
7 0.0001 + 1.3e-017i
8 0.0000 + 0.0e+000i
9 0.0001 + -8.8e-017i
10 0.0000 + 0.0e+000i
11 0.0001 + 1.1e-017i
12 0.0000 + 0.0e+000i
13 0.0001 + 7.9e-017i
14 0.0000 + 0.0e+000i
15 0.0001 + 4.6e-016i
16 0.0000 + 0.0e+000i
17 0.0001 + 4.2e-016i
18 0.0000 + 0.0e+000i
19 0.0001 + 8.5e-017i
20 0.0000 + 0.0e+000i
21 0.0001 + 3.3e-018i
22 0.0000 + 0.0e+000i
23 0.0001 + -1.3e-016i
24 0.0000 + 0.0e+000i
25 0.0001 + -3.8e-017i
26 0.0000 + 0.0e+000i
27 0.0001 + -1.2e-017i
28 0.0000 + 0.0e+000i
29 0.0001 + 1.5e-016i
30 0.0000 + 0.0e+000i
31 0.0001 + -1.5e-016i
32 0.0000 + 0.0e+000i
33 0.0001 + -2.4e-016i
34 0.0000 + 0.0e+000i
35 0.0001 + 1.1e-016i
36 0.0000 + 0.0e+000i
37 0.0001 + -1.8e-017i
38 0.0000 + 0.0e+000i
39 0.0001 + -7.0e-017i
40 0.0000 + 0.0e+000i
41 0.0001 + -1.0e-016i
42 0.0000 + 0.0e+000i
43 0.0001 + 4.1e-017i
44 0.0000 + 0.0e+000i
45 0.0001 + 1.5e-017i
46 0.0000 + 0.0e+000i
47 0.0001 + 1.4e-016i
48 0.0000 + 0.0e+000i
49 0.0001 + 1.3e-016i
50 0.0000 + 0.0e+000i
51 0.0001 + -1.1e-017i
52 0.0000 + 0.0e+000i
53 0.0001 + 5.0e-018i
54 0.0000 + 0.0e+000i
55 0.0001 + 1.7e-017i
56 0.0000 + 0.0e+000i
57 0.0001 + 2.6e-017i
58 0.0000 + 0.0e+000i
59 0.0001 + 7.2e-018i
60 0.0000 + 0.0e+000i
61 0.0001 + -6.0e-019i
62 0.0000 + 0.0e+000i
63 0.0001 + -1.1e-017i
64 0.0000 + 0.0e+000i
65 0.0001 + 2.9e-017i
66 0.0000 + 0.0e+000i
67 0.0001 + 3.5e-018i
68 0.0000 + 0.0e+000i
69 0.0001 + 4.9e-017i
70 0.0000 + 0.0e+000i
71 0.0001 + 4.8e-017i
72 0.0000 + 0.0e+000i
73 0.0001 + 2.8e-017i
74 0.0000 + 0.0e+000i
75 0.0001 + -3.9e-017i
76 0.0000 + 0.0e+000i
77 0.0001 + -4.5e-017i
78 0.0000 + 0.0e+000i
79 0.0001 + 1.4e-016i
80 0.0000 + 0.0e+000i
81 0.0001 + 9.8e-017i
82 0.0000 + 0.0e+000i
83 0.0001 + 6.7e-017i
84 0.0000 + 0.0e+000i
85 0.0001 + 5.6e-017i
86 0.0000 + 0.0e+000i
87 0.0001 + -3.6e-017i
88 0.0000 + 0.0e+000i
89 0.0001 + -6.7e-018i
90 0.0000 + 0.0e+000i
91 0.0001 + -4.1e-017i
92 0.0000 + 0.0e+000i
93 0.0001 + 2.9e-017i
94 0.0000 + 0.0e+000i
95 0.0001 + -4.6e-016i
96 0.0000 + 0.0e+000i
97 0.0001 + -3.2e-016i
98 0.0000 + 0.0e+000i
99 0.0001 + 6.5e-017i
100 0.0000 + 0.0e+000i
101 0.0001 + 1.1e-017i
102 0.0000 + 0.0e+000i
103 0.0001 + -1.5e-017i
104 0.0000 + 0.0e+000i
105 0.0001 + -9.8e-017i
106 0.0000 + 0.0e+000i
107 0.0001 + -9.3e-018i
108 0.0000 + 0.0e+000i
109 0.0001 + 1.8e-017i
110 0.0000 + 0.0e+000i
111 0.0001 + 9.8e-017i
112 0.0000 + 0.0e+000i
113 0.0001 + 1.4e-016i
114 0.0000 + 0.0e+000i
115 0.0001 + -3.4e-018i
116 0.0000 + 0.0e+000i
117 0.0001 + 1.2e-017i
118 0.0000 + 0.0e+000i
119 0.0001 + 3.9e-018i
120 0.0000 + 0.0e+000i
121 0.0001 + 2.3e-017i
122 0.0000 + 0.0e+000i
123 0.0001 + 5.0e-017i
124 0.0000 + 0.0e+000i
125 0.0001 + -7.7e-017i
126 0.0000 + 0.0e+000i
127 0.0001 + -4.5e-016i
5. Чому виникла різниця між коефіцієнтами ряду Фур’є та дискретного перетворення Фур’є?
Коефіцієнти ряду Фурє залежать від ДПФ за формулою:
6. Відтворена вхідна послідовність за допомогою наближення рядом Фур’є. (використовуємо рівність 2).
7. Порівняємо вхідну та відтворену послідовності:
На нижньому графіку зображена абсолютна похибка.
8. Графіки амплітудної та фазової характеристик обраховані за формулами 3 та 4:
9. Енергія сигналу за формулою Парсеваля (рівність 5): E = 2.9167e+003.
Текст програми:
clc; clear all; close all; A=100; c=9; f=c; T=f+c; m=10; N=2^m;
dt=T/N; t=-c:dt:f-dt; t11=[t(1:N/2)]; t12=[t(N/2+1:N)];
k=A/c; x11=k*t11+A;
l=-A/f; x12=l*t12+A;
x=[x11 x12]; %zadannia vhidnigi sygnalu
Sx=fft(x, length(x))/N;
x1= N*ifft(Sx,length(Sx));
w=2*pi/T;
for k=1:N-1 %obrahunok Ck
Ck1(k)=1/T* ( A/(-j*k*w*c)*(c+1/(j*k*w)*(1-exp(j*k*w*c))) + A/(-j*k*w*f)*(1/(j*k*w)*(1-exp(-j*k*w*f))-f) );
end
Ck0=A/(2*T)*(c+f); Ck=[Ck0 Ck1];
L=0:1:N-1; %stvorenja tablytsi
Max=[L;real(Ck);imag(Ck)];
file = fopen('1) Ck.txt','w');
fprintf(file,'%d\t%8.4f + %2.1fi\r\n',Max); fclose(file);
figure(1);set(1,'Name','Графік спектру');
subplot(2, 1, 1), plot(real(Ck)) , title('Real part series Fourier');
subplot(2, 1, 2), plot(imag(Ck)) , title('Imag part series Fourier');
figure(2);set(2,'Name','Порівняння в графічному вигляді');
subplot(7, 1, 1), plot(real(Sx)) , title('Real Sx');
subplot(7, 1, 2), plot(imag(Sx)) , title('Imag Sx');
subplot(7, 1, 3), plot(real(Ck)) , title('Real Ck');
subplot(7, 1, 4), plot(imag(Ck)) , title('Imag Ck');
subplot(7, 1, 5), plot(abs(Sx)) , title('abs(Sx)');
subplot(7, 1, 6), plot(abs(Ck)) , title('abs(Ck)');
subplot(7, 1, 7), plot(abs(Sx)-abs(Ck)) , title('abs(Sx)-abs(Ck)');
L=0:1:N-1; %porivn'ann'a v tablychnomu vygl'adi
Max=[L;real(abs(real(Sx))-Ck);imag(Sx-Ck)];
file = fopen('2) Sx-Ck.txt','w');
fprintf(file,'%d\t%8.4f + %10.1ei\r\n',Max); fclose(file);
%vidtvorena vhidna poslidovnist' za C(k)
figure(3);set(3,'Name','Відтворена вхідна послідовність за C(k)');
k1=1:1:N; k2=0:1:N-1;
for i=1:length(x)
y(i)=Ck(k1)*exp(j*k2'*w*t(i));
end
subplot(3, 1, 1), plot(t,x) , title('vhidna poslidovnist''');
subplot(3, 1, 2), plot(t,abs(y)) , title('vidtvorena vhidna poslidovnist'' za C(k)');
subplot(3, 1, 3), plot(t,abs(y)-x) , title('absolutna pohybka');
figure(4);set(4,'Name','Амплітудний та фазовий спектри');
subplot(4, 1, 1), plot(t,abs(Sx)) , title('amplitudnyi spektr Sx');
subplot(4, 1, 2), plot(t,abs(Ck)) , title('amplitudnyi spektr Ck');
subplot(4, 1, 3), plot(t,-atan(imag(Sx)./real(Sx))) , title('fazovyi spektr Sx');
subplot(4, 1, 4), plot(t,-atan(imag(Ck)./real(Ck))) , title('fazovyi spektr Ck');
E=Ck*Ck' %sygnal energy
Висновки: в результаті виконання розрахункової роботи я освоїв методику обчислення спектральних характеристик сигналу за допомогою перетворення Фур’є, а також вдосконалив свої навики роботи з середовищем MatLab. Дослідження спектральних характеристик сигналу проводилися двома шляхами - аналітичним та практичним, з подальшим порівнянням результатів обох методів. Суттєвих розбіжностей в результатах виявлено не було.