Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовая от Мирошниченко (почти задание Шаврина) 2023 весна / Курсовая от Мирошниченко (почти задание Шаврина)

.pdf
Скачиваний:
40
Добавлен:
06.09.2023
Размер:
940.3 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ

КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ

Кафедра Многоканальные телекоммуникационные системы

Курсовая работа

Выполнил: студент группы БЗС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 ) =

 

 

4000f

 

 

если f

4000

 

 

 

 

a

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

f

 

 

f

 

4000

 

 

 

 

 

 

 

, если

 

 

 

 

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

b

( f ) =

 

 

 

4000f

 

 

 

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