Чернышов М.В. МС0701
Московский Технический Университет Связи и Информатики
КАФЕДРА МНОГОКАНАЛЬНОЙ ЭЛЕКТРОСВЯЗИ
Курсовая работа по дисциплине
Микропроцессоры
Цифровой фильтр с конечной импульсной характеристикой
Выполнил:
Чернышов М.В.
Группа:
МС0701 (ЦСП)
Москва 2011
Задание:
АЧХ: |
ФЧХ: |
||
|
x Є [0; 0,5] x Є (0,5; 1] x Є (1; 1,5]
|
|
x Є[0 ; 4] |
Задание №1. Получение отсчетов заданных АЧХ и ФЧХ.
Текст программы
Cls
Dim y As Single, f As Single, i As Integer
Open "$ACHH.DAT" For Output As #1
Open "$FCHH.DAT" For Output As #2
For I = 0 To 39
If I < 5 Then
y=0
ElseIf I < 10 Then
y = (2*i-10)/10
ElseIf I < 15 Then
y = (-2*i+30)/10
ElseI
y = 0
End If
f = (-1) * i*3.1415 / 160
Print #1, y
Print #2, f
Next i
Close
Print "DONE"
End
кГц |
АЧХ |
ФЧХ |
|
кГц* |
АЧХ* |
ФЧХ* |
0 |
0 |
0 |
|
2100 |
0 |
-.3926875 |
100 |
0 |
-1.963438E-02 |
|
2200 |
0 |
-.4123219 |
200 |
0 |
-3.926875E-02 |
|
2300 |
0 |
-.4319563 |
300 |
0 |
-5.890312E-02 |
|
2400 |
0 |
-.4515906 |
400 |
0 |
-.0785375 |
|
2500 |
0 |
-.471225 |
500 |
0 |
-9.817187E-02 |
|
2600 |
0 |
-.4908594 |
600 |
.2 |
-.1178062 |
|
2700 |
0 |
-.5104938 |
700 |
.4 |
-.1374406 |
|
2800 |
0 |
-.5301281 |
800 |
.6 |
-.157075 |
|
2900 |
0 |
-.5497625 |
900 |
.8 |
-.1767094 |
|
3000 |
0 |
-.5693969 |
1000 |
1 |
-.1963437 |
|
3100 |
0 |
-.5890312 |
1100 |
.8 |
-.2159781 |
|
3200 |
0 |
-.6086656 |
1200 |
.6 |
-.2356125 |
|
3300 |
0 |
-.6283 |
1300 |
.4 |
-.2552469 |
|
3400 |
0 |
-.6479344 |
1400 |
.2 |
-.2748812 |
|
3500 |
0 |
-.6675687 |
1500 |
0 |
-.2945156 |
|
3600 |
0 |
-.6872031 |
1600 |
0 |
-.31415 |
|
3700 |
0 |
-.7068375 |
1700 |
0 |
-.3337844 |
|
3800 |
0 |
-.7264719 |
1800 |
0 |
-.3534187 |
|
3900 |
0 |
-.7461063 |
1900 |
0 |
-.3730531 |
|
4000 |
0 |
-.7657406 |
Задание №2. Достроение АЧХ/ФЧХ в область 0-8 кГц и преобразование АЧХ/ФЧХ в K(jw).
Текст программы:
CLS
OPEN "$AChH.dat" FOR INPUT AS #1
OPEN "$FChH.dat" FOR INPUT AS #2
OPEN "$re.dat" FOR OUTPUT AS #3
OPEN "$im.dat" FOR OUTPUT AS #4
DIM y(39), z(39) AS SINGLE
DIM i as INTEGER
FOR i = 0 TO 39
Input #1, X
Input #2, a
y(i) = x * COS(a)
z(i) = x * SIN(a)
PRINT #3, y(i)
PRINT #4, z(i)
NEXT i
PRINT #3, 0
PRINT #4, 0
FOR i = 39 TO 1 STEP -1
PRINT #3, y(i)
PRINT #4, -z(i)
NEXT i
CLOSE
PRINT "Done"
END
Результаты:
№ |
Re |
Im |
|
№ |
Re |
Im |
1 |
0 |
0 |
|
41 |
0 |
0 |
2 |
0 |
0 |
|
42 |
0 |
0 |
3 |
0 |
0 |
|
43 |
0 |
0 |
4 |
0 |
0 |
|
44 |
0 |
0 |
5 |
0 |
0 |
|
45 |
0 |
0 |
6 |
0 |
0 |
|
46 |
0 |
0 |
7 |
.1986138 |
-2.350678E-02 |
|
47 |
0 |
0 |
8 |
.396228 |
-5.480332E-02 |
|
48 |
0 |
0 |
9 |
.5926135 |
-9.385794E-02 |
|
49 |
0 |
0 |
10 |
.787542 |
-.1406329 |
|
50 |
0 |
0 |
11 |
.9807864 |
-.1950846 |
|
51 |
0 |
0 |
12 |
.7814138 |
-.1714423 |
|
52 |
0 |
0 |
13 |
.583423 |
-.1400632 |
|
53 |
0 |
0 |
14 |
.3870404 |
-.1009937 |
|
54 |
0 |
0 |
15 |
.1924915 |
-5.428652E-02 |
|
55 |
0 |
0 |
16 |
0 |
0 |
|
56 |
0 |
0 |
17 |
0 |
0 |
|
57 |
0 |
0 |
18 |
0 |
0 |
|
58 |
0 |
0 |
19 |
0 |
0 |
|
59 |
0 |
0 |
20 |
0 |
0 |
|
60 |
0 |
0 |
21 |
0 |
0 |
|
61 |
0 |
0 |
22 |
0 |
0 |
|
62 |
0 |
0 |
23 |
0 |
0 |
|
63 |
0 |
0 |
24 |
0 |
0 |
|
64 |
0 |
0 |
25 |
0 |
0 |
|
65 |
0 |
0 |
26 |
0 |
0 |
|
66 |
0 |
0 |
27 |
0 |
0 |
|
67 |
.1924915 |
-2.350678E-02 |
28 |
0 |
0 |
|
68 |
.3870404 |
-5.480332E-02 |
29 |
0 |
0 |
|
69 |
.583423 |
-9.385794E-02 |
30 |
0 |
0 |
|
70 |
.7814138 |
-.1406329 |
31 |
0 |
0 |
|
71 |
.9807864 |
-.1950846 |
32 |
0 |
0 |
|
72 |
.787542 |
-.1714423 |
33 |
0 |
0 |
|
73 |
.5926135 |
-.1400632 |
34 |
0 |
0 |
|
74 |
.396228 |
-.1009937 |
35 |
0 |
0 |
|
75 |
.1986138 |
-5.428652E-02 |
36 |
0 |
0 |
|
76 |
0 |
0 |
37 |
0 |
0 |
|
77 |
0 |
0 |
38 |
0 |
0 |
|
78 |
0 |
0 |
39 |
0 |
0 |
|
79 |
0 |
0 |
40 |
0 |
0 |
|
80 |
0 |
0 |
Задание №3. Преобразование K(jw) c помощью дискретного преобразования Фурье.
Текст программы:
Open "$Re.dat" For Input As #1
Open "$Im.dat" For Input As #2
Open "$fur_re.dat" For Output As #3
Open "$fur_im.dat" For Output As #4
Dim rek(80), imk(80), reg(80), img(80)
For i = 1 To 80