Курсовая от Мирошниченко (почти задание Шаврина) 2023 весна / Курсовая от Мирошниченко (почти задание Шаврина)
.pdfМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ
КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ
Кафедра Многоканальные телекоммуникационные системы
Курсовая работа
Выполнил: студент группы БЗС2002
Поляков Н.С.
Проверил: Мирошниченко А.В.
Москва 2023
Содержание
1. |
Проектирование КИХ-фильтра......................................................................................... |
3 |
|
|
1.1 |
Исходные данные............................................................................................................ |
3 |
|
1.2 |
Вычисление коэффициентов.......................................................................................... |
3 |
|
1.3 |
Код математического пакета Scilab............................................................................... |
9 |
|
1.4 |
Разработка программы на языке ассемблера процессора ADSP-2181 .................... |
11 |
|
1.5 |
Проверка проделанной работы.................................................................................... |
13 |
2. |
Проектирование БИХ-фильтра....................................................................................... |
14 |
|
|
2.1 |
Исходные данные.......................................................................................................... |
14 |
|
2.2 |
Вычисление коэффициентов........................................................................................ |
14 |
|
2.3 |
Разработка программы на языке ассемблера процессора ADSP-2181 .................... |
15 |
|
2.4 |
Результаты работы программы.................................................................................... |
16 |
2
1. Проектирование КИХ-фильтра
1.1 Исходные данные
На рисунке 1 приведено задание на разработку КИХ-фильтра. Порядок фильтра
n=80.
Рисунок 1. Исходные параметры АЧХ и ФЧХ проектируемого КИХ-фильтра
1.2 Вычисление коэффициентов
Для начала следует аппроксимировать АЧХ и ФЧХ. В заданном варианте АЧХ есть 3 отрезка, два из которых являются прямыми, а один – эллипсом. Найдем уравнения данных отрезков.
Формула эллипса и аппроксимирующая функция отрезка-эллипса АЧХ расположенный в диапазоне от 0 до 1000 Гц:
(x − x0 )2 |
+ |
(y − y0 )2 |
=1 − уравнение эллипса |
(1) |
|
a2 |
b2 |
||||
|
|
|
Центр эллипса (x0 ; y0 ) = (0; 0) , большая полуось a = 1000 , малая полуось b = 0.5 .
( |
x − 0 |
|
2 |
( |
y − 0 |
2 |
|
|
|
|
x |
2 |
|
|
|
|
|
2) |
+ |
|
2 ) |
|
=1 y = 0.5 |
1 |
− |
|
|
|
|
− функция |
|||
1000 |
|
0.5 |
|
1000 |
2 |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
аппроксимации отрезка − эллипса
(2)
Уравнение прямой и аппроксимирующая линейная функция прямого отрезка АЧХ расположенный в диапазоне от 1000 до 3000 Гц:
y = kx + b − уравнение прямой |
(3) |
3
|
A(1000; 0), B(3000; 0) |
0 |
= 1000k +b |
|
|
|
0 |
= 3000k +b |
|||
|
|
|
|
||
|
b = −1000k |
b =0 y =0 |
− функция |
|
|
k = 0 |
|
||||
|
|
|
|
|
|
аппроксимации прямого отрезка |
|
(4)
Аппроксимирующая линейная функция прямого отрезка АЧХ расположенный в диапазоне от 3000 до 4000 Гц, построенный на основе уравнения прямой (3):
0 = 3000k +b |
|
|
A(3000; 0), B(4000; 1) 1 = 4000k +b |
|
|
bk == −0.0013000k b = − 3 y =0.001x − 3 − функция |
(5) |
аппроксимации прямого отрезка
В заданном варианте ФЧХ есть 2 прямых отрезка. Найдем аппроксимирующие линейные функции данных прямых отрезков, расположенных в диапазонах от 0 до 2000 Гц и от 2000 до 4000 Гц, построенные на основе уравнения прямой (3):
A(0; 0), B(2000; −30 ) |
−30 = 2000k +b |
|
||
0 |
= 0 k +b |
|||
|
|
|
|
|
|
|
b = −30 −2000k |
b =0 y = |
−3 x |
− функция |
|
|
−30 |
200 |
||
k = |
|
|
||
2000 |
|
|
||
|
|
|
|
|
аппроксимации прямого отрезка в диапазоне частот (0; 2000) |
(6)
|
|
|
|
−30 = 2000k +b |
|
|
|
|
A(2000; − 30 ), |
B(4000; − 50 ) −50 = 4000k +b |
|
|
|||
|
|
|
|
|
|
|
|
b = −30 −2000k |
b = −10 y = |
− x |
−10 − функция |
(7) |
|||
|
|
−20 |
100 |
||||
k = |
|
|
|
|
|||
2000 |
|
|
|
|
|
||
|
|
|
|
|
|
|
аппроксимации прямого отрезка в диапазоне частот (2000; 4000)
4
|
Таблица 1. |
Аппроксимация АЧХ и ФЧХ |
|
|
|
|
|
|
|
n |
f |
|
(f) |
(f) |
0 |
0 |
|
0.5 |
0 |
1 |
100 |
|
0.497 |
-4.712 |
2 |
200 |
|
0.49 |
-9.425 |
3 |
300 |
|
0.477 |
-14.137 |
4 |
400 |
|
0.458 |
-18.85 |
5 |
500 |
|
0.433 |
-23.562 |
6 |
600 |
|
0.4 |
-28.274 |
7 |
700 |
|
0.357 |
-32.987 |
8 |
800 |
|
0.3 |
-37.699 |
9 |
900 |
|
0.218 |
-42.411 |
10 |
1000 |
|
0 |
-47.123 |
11 |
1100 |
|
0 |
-51.836 |
12 |
1200 |
|
0 |
-56.548 |
13 |
1300 |
|
0 |
-61.261 |
14 |
1400 |
|
0 |
-65.973 |
15 |
1500 |
|
0 |
-70.685 |
16 |
1600 |
|
0 |
-75.398 |
17 |
1700 |
|
0 |
-80.110 |
18 |
1800 |
|
0 |
-84.823 |
19 |
1900 |
|
0 |
-89.535 |
20 |
2000 |
|
0 |
-94.247 |
21 |
2100 |
|
0 |
-97.389 |
22 |
2200 |
|
0 |
-100.530 |
23 |
2300 |
|
0 |
-103.67256 |
24 |
2400 |
|
0 |
-106.81415 |
25 |
2500 |
|
0 |
-109.95574 |
26 |
2600 |
|
0 |
-113.09734 |
27 |
2700 |
|
0 |
-116.23893 |
28 |
2800 |
|
0 |
-119.38052 |
29 |
2900 |
|
0 |
-122.52211 |
30 |
3000 |
|
0 |
-125.66371 |
31 |
3100 |
|
0.1 |
-128.80530 |
32 |
3200 |
|
0.2 |
-131.94689 |
33 |
3300 |
|
0.3 |
-135.08848 |
34 |
3400 |
|
0.4 |
-138.23008 |
35 |
3500 |
|
0.5 |
-141.37167 |
36 |
3600 |
|
0.6 |
-144.51326 |
37 |
3700 |
|
0.7 |
-147.65485 |
38 |
3800 |
|
0.8 |
-150.79645 |
39 |
3900 |
|
0.9 |
-153.93804 |
40 |
4000 |
|
1 |
-157.07963 |
5
Построение АЧХ и ФЧХ в математическом пакете Scilab:
Рисунок 2. Построенные АЧХ и ФЧХ по параметрам КИХ-фильтра
Теперь постоим график действительной и мнимой части от АЧХ и ФЧХ, использовав преобразование Фурье:
H ( f ) = a( f ) + jb( f ) = K ( f ) cos( ( f )) + jK ( f ) sin( ( f ))
|
|
|
K (n) cos (n) |
(8) |
|
Re K (n) = |
|||||
|
|
|
|
|
, 0 n 40 |
Im K (n) = |
K (n) sin (n) |
|
|||
|
|
|
|
|
|
В таблице 2 представлены значения действительной и мнимой частей.
6
Таблица 2. Значения мнимой и действительной частей АЧХ и ФЧХ
n |
f |
[ (f)] |
[ (f)] |
0 |
0 |
0.5 |
0 |
1 |
100 |
0 |
0.497 |
2 |
200 |
-0.49 |
0 |
3 |
300 |
0 |
-0.477 |
4 |
400 |
0.458 |
0 |
5 |
500 |
0 |
0.433 |
6 |
600 |
-0.4 |
0 |
7 |
700 |
0 |
-0.357 |
8 |
800 |
0.3 |
0 |
9 |
900 |
0 |
0.218 |
10 |
1000 |
0 |
0 |
11 |
1100 |
0 |
0 |
12 |
1200 |
0 |
0 |
13 |
1300 |
0 |
0 |
14 |
1400 |
0 |
0 |
15 |
1500 |
0 |
0 |
16 |
1600 |
0 |
0 |
17 |
1700 |
0 |
0 |
18 |
1800 |
0 |
0 |
19 |
1900 |
0 |
0 |
20 |
2000 |
0 |
0 |
21 |
2100 |
0 |
0 |
22 |
2200 |
0 |
0 |
23 |
2300 |
0 |
0 |
24 |
2400 |
0 |
0 |
25 |
2500 |
0 |
0 |
26 |
2600 |
0 |
0 |
27 |
2700 |
0 |
0 |
28 |
2800 |
0 |
0 |
29 |
2900 |
0 |
0 |
30 |
3000 |
0 |
0 |
31 |
3100 |
-0.1 |
0 |
32 |
3200 |
0.2 |
0 |
33 |
3300 |
-0.3 |
0 |
34 |
3400 |
0.4 |
0 |
35 |
3500 |
-0.5 |
0 |
36 |
3600 |
0.6 |
0 |
37 |
3700 |
-0.7 |
0 |
38 |
3800 |
0.8 |
0 |
39 |
3900 |
-0.9 |
0 |
40 |
4000 |
1 |
0 |
7
Построим с помощью математического пакета Scilab график реальной части комплексного коэффициента передачи по полученным ранее точкам, а также график мнимой части КЧХ в диапазоне от 0 до Fд (8000 Гц), достроив функции согласно правилу:
|
|
|
b |
|
f |
|
|
f |
4000 |
|
|
|
||
|
|
|
|
, если |
|
|
|
|
||||||
* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
||
a |
( f ) = |
|
|
4000− f |
|
|
если f |
4000 |
|
|||||
|
|
|
a |
, |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b |
|
f |
|
|
f |
|
4000 |
|
|
|
|
|
|
|
|
, если |
|
|
|
|
|
|||||
* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
||
b |
( f ) = |
|
|
|
4000− f |
|
|
|
f |
4000 |
||||
|
|
|
−b |
, если |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
где |
f 0...4000 |
|
|
|
|
|
|
|
|
(9)
Рисунок 3. Функция a*(f)
Рисунок 4. Функция b*(f)
8
Получение импульсной характеристики через преобразование Фурье: |
|
h (t ) = F −1 (H *( f )) = F −1 (a* ( f )+ jb *( f ))= + H *( f )e j 2 d |
(10) |
− |
|
Рисунок 5. Импульсная характеристика фильтра
1.3 Код математического пакета Scilab
//Синтезирование АЧХ и ФЧХ по исходным параметрам function ach=K(F)
if F>=0 & F<=1000 then ach=0.5.*sqrt(1-F.^2/1000.^2)
elseif F>1000 & F<=3000 then ach=0
elseif F>2990 & F<=4000 then ach=(F-3000)/1000
end endfunction
//Построение графика АЧХ
ACH = zeros(41:1) F = 0 : 100 : 4000 for i = 1:41
ACH(i,:) = K(F(i)) end
scf(0) xgrid()
xtitle(" ", "Frequency [Hz]", "Magnitude") plot(F,ACH)
a=get('current_axes') a.children(1).children.thickness=4 a.title.font_size=4 a.x_label.font_size=4 a.y_label.font_size=4
9
function fch=fi(F)
if F>=0 & F<=2000 then fch = (-3.*F).*%pi./200
elseif F>=2000 & F<=4000 then fch = (-1.*F).*%pi./100.-10.*%pi
end endfunction
//Построение графика ФЧХ
FCH = zeros(41:1) F = 0 : 100 : 4000 for i = 1:41
FCH(i,:) = fi(F(i)) end
scf(1) xgrid()
xtitle(" ", "Frequency [Hz]", "Phase [rad]") plot(F,FCH)
b=get('current_axes') b.children(1).children.thickness=4 b.title.font_size=4 b.x_label.font_size=4 b.y_label.font_size=4
Re = zeros(1:80) Im = zeros(1:80) Hfunc = zeros(1:80)
//Нахождение действительной и мнимой части расширенных АЧХ и ФЧХ, а также нахождения КЧХ для реализации ИХ
for i = 1:41
Re(i) = abs(ACH(i))*cos(FCH(i)) Im(i) = abs(ACH(i))*sin(FCH(i)) Hfunc(i)=Re(i)+%i*Im(i)
if i >= 2 then Hfunc(82-i) = Re(i)-%i*Im(i) end
if i <> 1 then Re(82-i) = Re(i) Im(82-i) = -Im(i)
end end
//Построение графиков Re и Im
F = 0:100:7900 scf(2)
xgrid()
xtitle('Re[H(F)]','Frequency [Hz]','a*(F)') plot(F,Re)
c=get('current_axes') c.children(1).children.thickness=4
10