Разработка фильтра с конечной импульсной характеристикой 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Разработка фильтра с конечной импульсной характеристикой



ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Ордена Трудового Красного Знамени федеральное

государственное бюджетное образовательное

учреждение высшего образования

 

Московский технический университет

Связи и информатики

 ──────────────────────────────────────

Факультет СиСС

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

 

КУРСОВАЯ РАБОТА

по дисциплине «Технологии микропроцессорных систем в инфокоммуникациях»

 

на тему:

«Проектирование цифровых фильтров с конечной и бесконечной импульсной характеристикой»

Выполнил:

студент группы М61901

Скоромнов Н.Д.

Проверил:

д.т.н., доцент Шаврин С.С.

 


 

Оглавление

1. Задание на курсовой проект……………………………………………….3

1.1 Разработка КИХ-фильтра ……………………………...………………3

1.2 Разработка БИХ-фильтра………………………………………………4

2. Постановка задачи………………………………………………………….5

3. Разработка фильтра с конечной импульсной характеристикой…………6

3.1 Расчёт импульсной характеристики…………………………...………6

3.2 Разработка блок-схем……………………………...………………….12

3.3 Листинг программы…………………………………………………...14

3.4 Отладка программы…………………………………………………...18

3.5 Оценка разработанного фильтра……………………………………..20

4. Разработка фильтра с бесконечной импульсной характеристикой……26

4.1 Предварительный расчёт……………………………………………..26

4.2 Разработка блок-схем программы....…………………………………28

4.3 Листинг программы…………………………………………………...30

4.4 Оценка ИХ разработанного фильтра…………………………………35

4.5 Оценка разработанного фильтра…………………...………………...36

Список используемой литературы...……………………...………………...39

 

 

 


 

Задание на курсовой проект

Часть 1

Рис.1. АЧХ и ФЧХ КИХ-фильтра

На рис.1 изображены АЧХ (сверху) и ФЧХ (снизу) КИХ-фильтра. По которым надлежит:

- вычислить импульсную характеристику фильтра (80 отсчетов);

- разработать на языке ассемблера ADSP-2181 программу, реализующую этот фильтр;

- отладить программу с использованием соответствующего ПО;

- по характерным точкам проверить соответствие АЧХ разработанного фильтра Техническому Заданию на разработку (экспериментально);

- провести эксперимент по работе разработанного изделия в режиме согласованного фильтра.

 

Разработка БИХ-фильтра

По заданным ниже параметрам разработать БИХ-фильтр на процессоре ADSP-2181:

Фильтр – узкоподавляющий («пробка»)

Центральная частота, Гц - 2100

Ширина полосы задержки, Гц -42

Ширина полос расфильтровки, Гц - 100

Максимальная неравномерность в полосе пропускания - 0.1

Минимальное затухание в полосе задержки, дБ - 40

 

Постановка задачи

По заданным, требуемым амплитудно-частотной (АЧХ) и фазово-частотной характеристикам (ФЧХ) рассчитать и спроектировать на базе сигнального процессора ADSP-2181 фильтр с конечной импульсной характеристикой (КИХ-фильтр)79 порядка (N=80) и фильтр с бесконечной импульсной характеристикой (БИХ-фильтр). Проверить соответствие характеристик разработанных фильтров техническому заданию. Решение поставленной задачи разбивается на несколько этапов:

1. Расчёт значений импульсной характеристики КИХ-фильтра

2. Разработка алгоритма работы фильтра и отладочной программы на языке ассемблера процессора ADSP-2181

3. Отладка программы

4. Получение реакции фильтра на дельта-импульс

5. Проверка соответсвия АЧХ фильтра техническому заданию

6. Расчёт коэффициентов БИХ-фильтра

7. Разработка-блок-схем

8. Разработка программы

9. Получение реакции фильтра на дельта-импульс

10.  Проверка соответсвия АЧХ фильтра техническому заданию

 


 

Разработка фильтра с конечной импульсной характеристикой

Листинг программы

Release 5.1 Assembler Version 1.34 6/6/94

C:\ADI_DSP\21XX\BIN\C:\DOCUME~1\Admin\0016~1\Edit1.for Sun May 10 17:07:06 2020 Page   1

addr inst source line

                   1 .module/ram/abs = 0 kihfilter;

                   2 .var/dm/circ signal[80]; {кольцевой буфер для сигнала}

                   3 .init signal: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   4                         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   5                         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                   6                         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;

                   7                             

                   8 .var/pm/circ impr[80]; {импульсная характеристика фильтра}

                   9       

                   10.init impr:

                   11.include <g.txt>;

                   12     

                   13 {Таблица векторов прерываний}

                   14 {RESET}

0000 18000Fu    22 jump start; rti; rti; rti;

0001 0A001F         

0002 0A001F         

0003 0A001F         

                   23 {IRQ2}

0004 0A001F     24 rti; rti; rti; rti;

0005 0A001F         

0006 0A001F         

0007 0A001F         

                   25 {IRQL1}

0008 0A001F     26 rti; rti; rti; rti;

0009 0A001F         

000A 0A001F         

000B 0A001F         

                   27 {IRQL0}

000C 0A001F     28 rti; rti; rti; rti;

000D 0A001F         

000E 0A001F         

000F 0A001F         

                   29 {SPORT0 ПД}

0010 0A001F     30 rti; rti; rti; rti;

0011 0A001F         

0012 0A001F         

0013 0A001F         

                   31 {SPORT0 ПМ}

0014 0A001F     32 rti; rti; rti; rti;

0015 0A001F         

0016 0A001F         

0017 0A001F         

                   33 {IRQE}

0018 0A001F     34 rti; rti; rti; rti;

0019 0A001F         

001A 0A001F         

001B 0A001F         

                   35 {BDMA}

001C 0A001F     36 rti; rti; rti; rti;

001D 0A001F         

001E 0A001F         

001F 0A001F         

                   37 {SPORT1 ПД}

Release 5.1 Assembler Version 1.34 6/6/94

C:\ADI_DSP\21XX\BIN\C:\DOCUME~1\Admin\0016~1\Edit1.for Sun May 10 17:07:06 2020 Page 2

addr inst source line

 

0020 0A001F     38 rti; rti; rti; rti;

0021 0A001F         

0022 0A001F         

0023 0A001F         

                   39 {SPORT1 ПМ}

0024 0A001F     40 rti; rti; rti; rti;

0025 0A001F         

0026 0A001F         

0027 0A001F         

                   41 {Timer}

0028 18000Fu    42 jump timer_proc; rti; rti; rti;

0029 0A001F         

002A 0A001F         

002B 0A001F         

                   43 {Power Down}

002C 0A001F     44 rti; rti; rti; rti;

002D 0A001F         

002E 0A001F         

002F 0A001F         

                   45 {Конец таблицы векторов прерываний}

                   46     

                   47     

                   48 {$$$$$$Начало основной программы$$$$$$$$$}

0030 000000       49 start:nop;

0031 40004A      50 ar = 4;

0032 93FFBA    51 dm(0x3ffb) = ar; {TSCALE - предделитель}

0033 403E7A     52 ar = 999;

0034 93FFCA    53 dm(0x3ffc) = ar; {TCOUNT - счётчик}

0035 93FFDA    54 dm(0x3ffd) = ar; {TPERIOD - период}

                   55     

                   56 {}

0036 380000u     57 i4=^impr; l4=%impr;

0037 380508           

0038 380014       58 m4 = 1; m5 = 0; {модификаторы ГАД 2}

0039 380005           

003A 400FF5      59 ay1 = 0x00ff; {маска обнуления старших разрядов}

003B 40000F      60 sr1 = 0; {формирование отсчётов в регистре Sr0 сдвигателя}

                   61     

003C 3C0505      62 cntr = 80;

003D 14000Eu    63 do perest until ce;

003E 500061       64             my0 = pm(i4,m5); {чтение из ячейки памяти программ отсчёта ИХ - старшие разряды}

003F 0D03A7     65             ar = px; {младшие разряды}

0040 238A0F     66             ar = ar and ay1; {обнуление 8 старших рязрядов}

0041 0D00EA    67             sr0 = ar; {формирование младших рязрядов отсчёта}

0042 0D0086      68             si = my0;

0043 0F1808      69             sr = sr or lshift si by 8(lo); {добавление 8 старших рязрядов}

0044 0D006E     70             my0 = sr0; {перенос значения отсчёта в регистр типа YOP, поскольку PM может работать только с ними}

0045 580060       71 perest: pm(i4,m4) = my0; {Запись в 16 старших рязрядов}

                   72     

                   73 {фильтр, установка регистров указателей и модификаторов}

0046 380000u     74 i4 = ^impr; l4=%impr; m4 = 1; {импульсная характеристика}

0047 380508           

0048 380014           

0049 340000u     75 i0 = ^signal; l0 = %signal; m0 = 0; m1=1; {сигнал}

004A 340508           

004B 340004           

004C 340015           

004D 500060       76 my0 = pm(i4,m4);

                   77     

004E 3C0FFC     78 ifc = 0x00ff; {сброс прерываний стоящих в очереди}

004F 000000       79 nop; {холостая операция}

Release 5.1 Assembler Version 1.34 6/6/94

C:\ADI_DSP\21XX\BIN\C:\DOCUME~1\Admin\0016~1\Edit1.for Sun May 10 17:07:06 2020 Page 3

addr inst source line

 

0050 0CC000     80 ena timer; {запуск таймера}

0051 3C0013      81 imask = b#0000000001; {разрешение таймерного прерывания}

0052 000000       82 nop;

0053 18000Fu    83 zacycl: jump zacycl;

                   84 {$$$$$$$$Конец основной программы$$$$$$$$$$$$$$$$$$$$$$$$}

                   85     

                   86     

 

 

                   87 {>>>>Таймерная подпрограмма<<<<<}

0054 000000       88 timer_proc:nop;

                   89     

0055 010002       90 mx0 = io(0);

0056 689821       91 dm(i0,m1) = mx0, mr = 0;

0057 3C04E5     92 cntr = 78;

0058 14000Eu    93 do filtr until ce;

0059 E90001      94 filtr: mr = mr +mx0*my0(ss), mx0 = dm(i0,m1), my0 = pm(i4,m4);

005A E90000      95 mr = mr + mx0*my0(ss), mx0=dm(i0,m0),my0=pm(i4,m4);

005B 510060       96 mr = mr+ mx0*my0(ss), my0 = pm(i4,m4);

005C 20580F      97 mr = mr(rnd);

005D 050000       98 if mv sat mr;

005E 01801C      99 io(1)=mr1;

005F 0A001F     100 rti;

                    101.endmod;

102


 

Отладка программы

Проведём оценку импульсной характеристики разработанного фильтра. Для этого создадим файл signal.dat с записью дельта-функции и подключим его в режиме симуляции к разработанной программе в качестве входного сигнала к порту IO(0) в знаковом формате. Запись выходного сигнала будет осуществляться с порта IO(1) в файл signal_out.dat так же в знаковом формате (Рисунок 10).

Рисунок 10. Подключение файла к порту входа и выхода

На рисунке 11 изображён процесс работы программы КИХ-фильтра. В секции Data Memory (память данных) записана дельта функция. В секции Timer состояния регистров TCOUNT, TPERIOD, TSCALE, которые являются в совокупности таймером, благодаря которому осуществляется таймерное прерывание каждые 125мкс.

Рисунок 11. Отладка программы КИХ-фильтра

Результат работы программы на дельта-импульс амплитудой 32767 шагов квантования представлен на рисунке 12. Очевидно сходство с рассчитанной ранее ИХ на рисунке 7. Соответствие расчетных и экспериментальных результатов свидетельствует лишь о правильности работы программы фильтра.

Рисунок 12. Импульсная характеристика фильтра (результат отладки программы)

 

 

Предварительный расчёт

Рассчитаем коэффициенты фильтра (рисунок 21), полоса пропускания и расфильтровки выбрана в соответствии с техническим заданием, частота дискретизации 8 кГц. В диалоге выбора фильтра - эллиптический фильтр.  

Рисунок 21. Коэффициенты БИХ фильтра

Импульсная характеристика фильтра представлена на рисунке 22.

Рисунок 22. Импульсная характеристика эллиптического БИХ-фильтра

В диалоге Plot так же выведем АЧХ фильтра:

Рисунок 23. АЧХ БИХ фильтра

При разработке программы фильтра, будет использована схема, представленная на рисунке 24.

Рисунок 24. Вариант схемы биквадратного звена

Такая схема не требует предварительного масштабирования сигнала для предотвращения перегрузки разрядной сетки, однако повышение уровня шумов квантования, связанного с эффектом усиления БИХ-структурой, в этой схеме сохраняется.

 

Листинг программы

Release 5.1 Assembler Version 1.34 6/6/94

C:\ADI_DSP\21XX\BIN\C:\DOCUME~1\Admin\0016~1\BIHSKR\Edit1.for Sat Jun 13 17:59:00 2020 Page 1

addr inst source line

                   1 .module/ram/abs = 0 BIH_v4;

                   2 .var/dm/circ z[6]; {линия задержки, КИХ }

                   3 .var/dm/circ zz[6]; {линия задержки, БИХ}

                   4 .var/pm/circ ab[15]; {коэф. a и b}

                   5      

                   6 .init z: 0,0,0,0,0,0;

                   7 .init zz: 0,0,0,0,0,0;

                   8 .init ab: 0x6E62, 0x1152, 0x6E62, 0x1152, 0x5CC5,

                   9              0x4FF8, 0xA43, 0x4FF8, 0xFDDA, 0x79BC,

                   10             0xC85E, 0x2527, 0xC85E, 0x2912, 0x79D1;

                   11                 

                   12 {Таблица векторов прерываний}

                   13 {RESET}

0000 18000Fu    14 jump start; rti; rti; rti;

0001 0A001F         

0002 0A001F         

0003 0A001F         

                   15 {IRQ2}

0004 0A001F     16 rti; rti; rti; rti;

0005 0A001F         

0006 0A001F         

0007 0A001F         

                   17 {IRQL1}

0008 0A001F     18 rti; rti; rti; rti;

0009 0A001F         

000A 0A001F         

000B 0A001F         

                   19 {IRQL0}

000C 0A001F     20 rti; rti; rti; rti;

000D 0A001F         

000E 0A001F         

000F 0A001F         

                   21 {SPORT0 ПД}

0010 0A001F     22 rti; rti; rti; rti;

0011 0A001F         

0012 0A001F         

0013 0A001F         

                   23 {SPORT0 ПМ}

0014 0A001F     24 rti; rti; rti; rti;

0015 0A001F         

0016 0A001F         

0017 0A001F         

                   25 {IRQE}

0018 0A001F     26 rti; rti; rti; rti;

0019 0A001F         

001A 0A001F         

001B 0A001F         

                   27 {BDMA}

001C 0A001F     28 rti; rti; rti; rti;

001D 0A001F         

001E 0A001F         

001F 0A001F         

                   29 {SPORT1 ПД}

0020 0A001F     30 rti; rti; rti; rti;

0021 0A001F         

0022 0A001F         

0023 0A001F         

                   31 {SPORT1 ПМ}

0024 0A001F     32 rti; rti; rti; rti;

0025 0A001F         

0026 0A001F         

 

Release 5.1 Assembler Version 1.34 6/6/94

C:\ADI_DSP\21XX\BIN\C:\DOCUME~1\Admin\0016~1\BIHSKR\Edit1.for Sat Jun 13 17:59:00 2020 Page 2

addr inst source line

 

0027 0A001F         

                   33 {Timer}

0028 18000Fu    34 jump timer_proc; rti; rti; rti;

0029 0A001F         

002A 0A001F         

002B 0A001F         

                   35 {Power Down}

002C 0A001F     36 rti; rti; rti; rti;

002D 0A001F         

002E 0A001F         

002F 0A001F         

                   37 {Конец таблицы векторов прерываний}

                   38     

0030 000000       39 perest:nop;     

0031 400FF5      40 ay1 = 0x00ff;

0032 40000F      41 sr1 = 0;

0033 0D0E58     42 cntr = l4;

0034 14000Eu    43 do cycl until ce;

0035 500041       44             ay0 = pm(i4,m5);

0036 0D03A7     45             ar = px;

0037 238A0F     46             ar = ar and ay1;

0038 0D00EA    47             sr0=ar;

0039 0D0084      48             si=ay0;

003A 0F1808      49             sr = sr or lshift si by 8(lo);

003B 0D004E     50             ay0 = sr0;

003C 580040       51 cycl: pm(i4,m4) = ay0;

003D 0A000F     52 rts;

                   53     

                   54     

003E 000000       55 start: nop;

003F 40004A      56 ar = 4;

0040 93FFBA    57 dm(0x3ffb) = ar; {TSCALE - предделитель}

0041 40001A      58 ar = 999;

0042 93FFCA    59 dm(0x3ffc) = ar; {TCOUNT - счётчик}

0043 93FFDA    60 dm(0x3ffd) = ar; {TPERIOD - период}

                   61     

0044 380000u     62 i4 = ^ab; l4 = %ab; m4 = 1; m5 = 0;

0045 3800F8          

0046 380014           

0047 380005           

0048 1C000Fu    63 call perest;

0049 0C2000      64 dis m_mode;

004A 380000u     65 i4 = ^ab; l4 =%ab; m4 = 1;

004B 3800F8          

004C 380014           

004D 340000u     66 i0 = ^z; l0 = %z; m0 = 0; m1 = 1; m3 = -1;

004E 340068           

004F 340004           

0050 340015           

0051 37FFF7          

0052 340001u     67 i1 = ^zz; l1 = %zz;

0053 340069           

0054 20980F      68 mr = 0; my0 = pm(i4,m4);

0055 500060           

                   69     

0056 3C0FFC     70 ifc = 0x00ff; {сброс прерываний стоящих в очереди}

0057 000000       71 nop; {холостая операция}

0058 0CC000     72 ena timer; {запуск таймера}

0059 3C0013      73 imask = b#0000000001; {разрешение таймерного прерывания}

005A 000000       74 nop;

005B 000000       75 zacycl:nop;

 

Release 5.1 Assembler Version 1.34 6/6/94

C:\ADI_DSP\21XX\BIN\C:\DOCUME~1\Admin\0016~1\BIHSKR\Edit1.for Sat Jun 13 17:59:00 2020 Page 3

addr inst source line

 

005C 18000Fu    76 jump zacycl;

                   77     

005D 000000       78 timer_proc:nop;

                   79     

005E 000000       80 kaskad1:nop;

                   81 {КИХ-ветвь}

005F 010003       82 mx1 = io(0);

0060 E8A101     83 mr = mx1*my0(su), mx0=dm(i0,m1), my0=pm(i4,m4);

0061 E92003      84 mr = mr+mx0*my0(su), mx0=dm(i0,m3), my0 = pm(i4,m4);

0062 6120A1      85 mr = mr+mx0*my0(su), ar=dm(i0,m1);

0063 6800A3      86 dm(i0,m3) = ar;

0064 680031       87 dm(i0,m1) = mx1;

0065 090001       88 modify(i0,m1);

                   89 {БИХ-ветвь}

0066 E80005      90 mx0=dm(i1,m1), my0 = pm(i4,m4); {zz1,a1}

0067 E9A007     91 mr = mr-mx0*my0(su),mx0=dm(i1,m3), my0=pm(i4,m4); {zz1*a1,zz2,a2}

0068 21A00F     92 mr = mr-mx0*my0(su); my0 = pm(i4,m4); {+zz2*a2,b0}

0069 500060           

006A 20580F      93 mr = mr(rnd);

006B 050000       94 if mv sat mr;

006C 6000A5      95 ar=dm(i1,m1);

006D 6800A7      96 dm(i1,m3) = ar;

006E 6800C5      97 dm(i1,m1) = mr1;

006F 090005       98 modify(i1,m1);

                   99     

0070 000000       100 kaskad2:nop;

                    101 {КИХ-ветвь}

0071 0D003C     102 mx1 = mr1;

0072 E8A101     103 mr = mx1*my0(su), mx0=dm(i0,m1), my0=pm(i4,m4);

0073 E92003      104 mr = mr+mx0*my0(su), mx0=dm(i0,m3), my0 = pm(i4,m4);

0074 6120A1      105 mr = mr+mx0*my0(su), ar=dm(i0,m1);

0075 6800A3      106 dm(i0,m3) = ar;

0076 680031       107 dm(i0,m1) = mx1;

0077 090001       108 modify(i0,m1);

                    109 {БИХ-ветвь}

0078 E80005      110 mx0=dm(i1,m1), my0 = pm(i4,m4); {zz1,a1}

0079 E98007      111 mr = mr-mx0*my0(ss),mx0=dm(i1,m3), my0=pm(i4,m4); {zz1*a1,zz2,a2}

007A 21A00F     112 mr = mr-mx0*my0(su); my0 = pm(i4,m4); {+zz2*a2,b0}

007B 500060           

007C 20580F      113 mr = mr(rnd);

007D 050000       114 if mv sat mr;

007E 6000A5      115 ar=dm(i1,m1);

007F 6800A7      116 dm(i1,m3) = ar;

0080 6800C5      117 dm(i1,m1) = mr1;

0081 090005       118 modify(i1,m1);

                    119    

0082 000000       120 kaskad3:nop;

                    121 {КИХ-ветвь}

0083 0D003C     122 mx1 = mr1;

0084 E8A101     123 mr = mx1*my0(su), mx0=dm(i0,m1), my0=pm(i4,m4);

0085 E92003      124 mr = mr+mx0*my0(su), mx0=dm(i0,m3), my0 = pm(i4,m4);

0086 6120A1      125 mr = mr+mx0*my0(su), ar=dm(i0,m1);

0087 6800A3      126 dm(i0,m3) = ar;

0088 680031       127 dm(i0,m1) = mx1;

0089 090001       128 modify(i0,m1);

                    129 {БИХ-ветвь}

008A E80005      130 mx0=dm(i1,m1), my0 = pm(i4,m4); {zz1,a1}

008B E9A007     131 mr = mr-mx0*my0(su),mx0=dm(i1,m3), my0=pm(i4,m4); {zz1*a1,zz2,a2}

008C 21A00F     132 mr = mr-mx0*my0(su); my0 = pm(i4,m4); {+zz2*a2,b0}

008D 500060           

008E 20580F      133 mr = mr(rnd);

 

Release 5.1 Assembler Version 1.34 6/6/94

C:\ADI_DSP\21XX\BIN\C:\DOCUME~1\Admin\0016~1\BIHSKR\Edit1.for Sat Jun 13 17:59:00 2020 Page 4

addr inst source line

 

008F 050000       134 if mv sat mr;

0090 6000A5      135 ar=dm(i1,m1);

0091 6800A7      136 dm(i1,m3) = ar;

0092 6800C5      137 dm(i1,m1) = mr1;

0093 090005       138 modify(i1,m1);

                    139    

0094 01801C      140 vivod:io(1) = mr1;

0095 0A001F     141 rti;

                    142    

                    143    

                    144.endmod;

Вывод

Очевидно сходство поведения сигнала на выходе фильтра с АЧХ и техническим заданием. Таким образом в полосе задержки 2079 Гц – 2121 Гц сигнал на выходе фильтра практически полностью подавляется (рисунок 29).
В полосе пропускания сигнал на выходе фильтра примерно повторяет сигнал на входе, например для частоты 1 кГц (рисунок 28). При детальном рассмотрении рисунка 30, можно заметить переусиление сигнала, которое вносит БИХ структура фильтра, обоснование этого так же есть на АЧХ фильтра (рисунок 23). Исходя из этого делаем вывод, что фильтр разработан верно.

 


 

Список используемой литературы

1. Шаврин С.С., Зуйкова Т.Н., Мусатова О.Ю. Техника микропроцессорных систем в инфокоммуникационных приложениях. Часть 1. Цифровые фильтры. Учебное пособие по курсу «Технологии микропроцессорных систем в инфокоммуникациях» для магистрантов по направлению 11.04.02 «Инфокоммуникационные технологии и системы связи» – М.: МТУСИ, 2019. –57 с.

2. Мельник С.В., Зуйкова Т.Н., Мусатова О.Ю, Шаврин С.С. “Исследование эффектов ограничения разрядной сетки при цифровой обработке сигналов” – М.: МТУСИ, 2017. –24 с.

3. Шаврин С.С., Климов Д.А. Реализация базовых операций защиты информации на сигнальных процессорах. Ч.1: Учебное пособие / МТУСИ. - Москва 2012. - 68с.

 

 

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Ордена Трудового Красного Знамени федеральное

государственное бюджетное образовательное

учреждение высшего образования

 

Московский технический университет

Связи и информатики

 ──────────────────────────────────────

Факультет СиСС

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

 

КУРСОВАЯ РАБОТА

по дисциплине «Технологии микропроцессорных систем в инфокоммуникациях»

 

на тему:

«Проектирование цифровых фильтров с конечной и бесконечной импульсной характеристикой»

Выполнил:

студент группы М61901

Скоромнов Н.Д.

Проверил:

д.т.н., доцент Шаврин С.С.

 


 

Оглавление

1. Задание на курсовой проект……………………………………………….3

1.1 Разработка КИХ-фильтра ……………………………...………………3

1.2 Разработка БИХ-фильтра………………………………………………4

2. Постановка задачи………………………………………………………….5

3. Разработка фильтра с конечной импульсной характеристикой…………6

3.1 Расчёт импульсной характеристики…………………………...………6

3.2 Разработка блок-схем……………………………...………………….12

3.3 Листинг программы…………………………………………………...14

3.4 Отладка программы…………………………………………………...18

3.5 Оценка разработанного фильтра……………………………………..20

4. Разработка фильтра с бесконечной импульсной характеристикой……26

4.1 Предварительный расчёт……………………………………………..26

4.2 Разработка блок-схем программы....…………………………………28

4.3 Листинг программы…………………………………………………...30

4.4 Оценка ИХ разработанного фильтра…………………………………35

4.5 Оценка разработанного фильтра…………………...………………...36

Список используемой литературы...……………………...………………...39

 

 

 


 

Задание на курсовой проект

Часть 1

Рис.1. АЧХ и ФЧХ КИХ-фильтра

На рис.1 изображены АЧХ (сверху) и ФЧХ (снизу) КИХ-фильтра. По которым надлежит:

- вычислить импульсную характеристику фильтра (80 отсчетов);

- разработать на языке ассемблера ADSP-2181 программу, реализующую этот фильтр;

- отладить программу с использованием соответствующего ПО;

- по характерным точкам проверить соответствие АЧХ разработанного фильтра Техническому Заданию на разработку (экспериментально);

- провести эксперимент по работе разработанного изделия в режиме согласованного фильтра.

 

Разработка БИХ-фильтра

По заданным ниже параметрам разработать БИХ-фильтр на процессоре ADSP-2181:

Фильтр – узкоподавляющий («пробка»)

Центральная частота, Гц - 2100

Ширина полосы задержки, Гц -42

Ширина полос расфильтровки, Гц - 100

Максимальная неравномерность в полосе пропускания - 0.1

Минимальное затухание в полосе задержки, дБ - 40

 

Постановка задачи

По заданным, требуемым амплитудно-частотной (АЧХ) и фазово-частотной характеристикам (ФЧХ) рассчитать и спроектировать на базе сигнального процессора ADSP-2181 фильтр с конечной импульсной характеристикой (КИХ-фильтр)79 порядка (N=80) и фильтр с бесконечной импульсной характеристикой (БИХ-фильтр). Проверить соответствие характеристик разработанных фильтров техническому заданию. Решение поставленной задачи разбивается на несколько этапов:

1. Расчёт значений импульсной характеристики КИХ-фильтра

2. Разработка алгоритма работы фильтра и отладочной программы на языке ассемблера процессора ADSP-2181

3. Отладка программы

4. Получение реакции фильтра на дельта-импульс

5. Проверка соответсвия АЧХ фильтра техническому заданию

6. Расчёт коэффициентов БИХ-фильтра

7. Разработка-блок-схем

8. Разработка программы

9. Получение реакции фильтра на дельта-импульс

10.  Проверка соответсвия АЧХ фильтра техническому заданию

 


 

Разработка фильтра с конечной импульсной характеристикой



Поделиться:


Последнее изменение этой страницы: 2021-07-18; просмотров: 175; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.230.107 (0.274 с.)