Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Расчёт импульсной характеристики
Проектирование КИХ-фильтра начинается с расчета комплексного коэффициента передачи. Для расчета комплексного коэффициента передачи следует аппроксимировать заданные АЧХ и ФЧХ: (1) (2) Используя выражения (1) и (2) построим заданные АЧХ и ФЧХ посредством среды MATLAB: Рисунок 2. АЧХ КИХ-фильтра Рисунок 3. ФЧХ КИХ-фильтра
Перейдём к дискретным значениям частоты АЧХ и ФЧХ фильтра с шагом , тогда: Рисунок 4. Дискретные значения АЧХ КИХ-фильтра Рисунок 5. Дискретные значения ФЧХ КИХ-фильтра Импульсная характеристика описывается выражением: , (3) где , который определён в диапазоне таким образом, что в диапазоне его значения определены по АЧХ и ФЧХ как: , (4) На частоте : . А в диапазоне должны быть зеркально отражены значения (6): , (5) Рассчитаем комплексный коэффициент и изобразим его графически: Рисунок 6. Комплексный коэффициент передачи Результаты расчетов действительной и мнимой комплексного коэффициента передачи представлены ниже:
Re_K= [0, 6.25E-02, -1.25E-01, -3.75E-01, -2.50E-01, 3.13E-01, 7.50E-01, 4.38E-01, -4.96E-01, -8.19E-01, -3.34E-01, 2.74E-01, 4.61E-01, 4.11E-01, 4.01E-01, 4.00E-01, 4.00E-01, 4.00E-01, 4.00E-01, 4.00E-01, 4.00E-01, 1.50E-01, -1.00E-01, -1.00E-01, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, -1.00E-01, -1.00E-01, 1.50E-01, 4.00E-01, 4.00E-01, 4.00E-01, 4.00E-01, 4.00E-01, 4.00E-01, 4.01E-01, 4.11E-01, 4.61E-01, 2.74E-01, -3.34E-01, -8.19E-01, -4.96E-01, 4.38E-01, 7.50E-01, 3.13E-01, -2.50E-01, -3.75E-01, -1.25E-01, 6.25E-02] Im_K = [0, -1.08E-01, -2.17E-01, 2.30E-16, 4.33E-01, 5.41E-01, -9.18E-16, -7.58E-01, -8.59E-01, 4.41E-15, 5.79E-01, 4.74E-01, -1.13E-15, -1.01E-15, -9.83E-16, -9.80E-16, -9.80E-16, -9.80E-16, -9.80E-16, -9.80E-16, -9.80E-16, 2.60E-01, 1.73E-01, -8.82E-16, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 0.00E+00, 8.82E-16, -1.73E-01, -2.60E-01, 9.80E-16, 9.80E-16, 9.80E-16, 9.80E-16, 9.80E-16, 9.80E-16, 9.83E-16, 1.01E-15, 1.13E-15, -4.74E-01, -5.79E-01, -4.41E-15, 8.59E-01, 7.58E-01, 9.18E-16, -5.41E-01, -4.33E-01, -2.30E-16, 2.17E-01, 1.08E-01] Теперь рассчитаем импульсную характеристику (3) с использованием массива значений полученных в (4,5): Рисунок 7. Импульсная характеристика КИХ-фильтра На рисунке 7 отражена действительная часть импульсной характеристики, значения которой масштабированы в диапазоне +32767…-32768 и переведены в целочисленный формат.
Ниже представлены значения мнимой части импульсной характеристики: Значения мнимой части не превышают , следовательно, можно сделать вывод, что импульсная характеристика рассчитана верно. Разработка блок-схем программы Рисунок 8. Блок-схема основной программы Рисунок 9. Блок-схема подпрограммы фильтрации Листинг программы 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. Импульсная характеристика фильтра (результат отладки программы)
|
|||||||
Последнее изменение этой страницы: 2021-07-18; просмотров: 143; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.69.143 (0.031 с.) |