Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы бакалавры.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
2.11 Mб
Скачать

6. Содержание отчета

Отчет должен содержать:

1. Табличное представление амплитудных спектров генерируемых колебаний.

2. Выводы по каждому пункту работы.

7. Методические указания по выполнению работы

Лабораторная работа выполняется в программной среде SCILAB. Откройте эту программу (Пуск-Программы-scilab-4.1.2- scilab-4.1.2). Появится основное окно приложения.

Щелчком левой кнопки мыши откройте редактор (Editor). Появится окно для редактирования.

Первая часть работы (исследование пилообразных, прямоугольных и треугольных колебаний) выполняется по программе «Генератор1». Текст программы приведён в Приложении Б к лабораторной работе №4.

Из редактора откройте файл “Генератор1”. Появится текст программы.

В строках 4-11 вводятся данные для моделирования генераторов. В строках 13-25 формируется функция pila(A,P,zN,nmax), где константа A=2*P*fo*Sign, fo =1/i0 – нормированная частота-отношение абсолютного значения частоты к частоте дискретизации; zN-начальное значение отсчета пилообразного колебания, определяющее её начальную фазу.

В строках 32-39 осуществляется вызов этой функции и формируется её график.

В строках 41-52 сначала формируется массив отсчетов пилообразного колебания zs, содержащий количество элементов, равное количеству отсчетов пилы в её периоде i0, а затем методом дискретного преобразования Фурье находится массив отсчётов спектра пилы в относительном масштабе Szo. Строится график спектра.

Строки 54-61 формируют массив отсчётов относительных гармоник (с нулевой по пятую) пилообразного колебания в процентах AmpZ .

В строках 63-74 моделируется последовательность прямоугольных импульсов и выводится график этой последовательности.

В строках 75-85 сначала формируется массив Is, содержащий i0 отсчётов прямоугольного колебания, а затем методом дискретного преобразования Фурье находится его спектр в относительном масштабе Sio и выводится его график.

Строки с 86 по 93 формируют массив отсчётов относительных гармоник (с нулевой по пятую) прямоугольного колебания в процентах AmpI .

В строках 96-100 моделируется треугольное колебание и выводится его график, а в строках 101-119 находится массив отсчетов спектра в относительном масштабе Sto и его первые гармоники (с нулевой по пятую) в процентах AmpT.

Результатом работы программы являются временные и спектральные диаграммы, представленные на рисунке 1.

1. Введите исходные данные для формирования пилообразного колебания из таблицы 1. Введите Sign =1и запустите программу (Execute-Load into Scilab). Пронаблюдайте временную диаграмму и спектр пилообразного колебания.

В окне «scilab-4.1.2(0)» введите AmpZ и нажмите клавишу Enter. Появится массив отсчётов спектра в процентах, начиная с нулевого и кончая пятым. Занесите их в таблицу 2.

Таблица 2

Спектр пилообразного колебания

Номер

гармоники

0

1

2

3

4

5

Относительный

уровень гармоники

в %

Рисунок 1 - Временные и спектральные диаграммы

пилообразного, прямоугольного и треугольного колебаний

Повторите эксперимент при периоде пилообразного колебания в 2 раза большем по сравнению с указанным в таблице. Пронаблюдайте изменение временной и спектральной диаграмм.

В отчёт запишите вывод о характере изменения спектра сигнала при увеличении количества отсчётов в его периоде.

Повторите эксперимент при значениях параметров, приведённых в таблице, и при параметре Sign= -1.

В отчёт запишите вывод о влиянии константы Sign на форму пилообразного колебания.

2. Для моделирования последовательности прямоугольных импульсов введите nmax, i0 и P из таблицы 1, Sign = 1 и рассчитайте значение константы c0 при скважности импульсов Q =2 и Q=3 по формуле

.

Введите в программу с0, рассчитанное при Q =2. Установите максимальное значение отсчёта прямоугольного колебания I1=1, минимальное значение отсчёта I2=-1.

Пронаблюдайте временную и спектральную диаграммы последовательности прямоугольных импульсов.

В окне «scilab-4.1.2(0)» введите AmpI и нажмите клавишу Enter. Появится массив отсчётов спектра в процентах с нулевого по пятый. Занесите их в таблицу 3.

Таблица 3

Спектр последовательности прямоугольных импульсов

Гармоника

спектра

Значение амплитуды гармоники в %

I1=1, I2=-1, Q=2

I1=1, I2=0, Q=2

I1=1, I2=-1, Q=3

AmpI(0)

AmpI(1)

AmpI(2)

AmpI(3)

AmpI(4)

AmpI(5)

Повторите эксперимент при других значениях I1, I2, Q, указанных в таблице 3.

Сделайте вывод о влиянии формы (однополярные или двухполярные) и скважности импульсов на амплитудный спектр

3. Выполните моделирование генератора треугольных колебаний. Данные для моделирования возьмите из таблицы 1.

Определите амплитудный спектр этого колебания с нулевой по пятую гармонику включительно. Для этого в окне окне «scilab-4.1.2(0)» введите AmpT и нажмите клавишу Enter. Полученный массив отсчетов спектра внесите в таблицу 4.

Таблица 4

Спектр треугольных колебаний

Номер

гармоники

0

1

2

3

4

5

Относительный

уровень гармоники в %

Пункты задания №4 и №5 выполняются по программе «Генератор 2». Текст программы приведён в Приложении В к лабораторной работе №4.

В командах 3-9 осуществляется ввод исходных данных для моделирования генераторов. Команды 12-23 формируют функцию pila(A,P,zN,nmax) реализации пилообразных колебаний, на основе которых строятся трапецеидальное и синусоидальное колебания. Команды 24-35 задают функцию пилообразного колебания pilaS(A,P,zN,nmax), сдвинутого на четверть периода относительно пилы, создаваемой функцией pila(A,P,zN,nmax). Команды 36-42 формируют функцию polinom3(T) - полином третьей степени, а команды 43-50 – полином polinom5(T) – полином пятой степени, преобразующие треугольное колебание в синусоидальное. В строках 51-55 рассчитываются дополнительные константы и задаются начальные условия. В строках 56-73 формируется трапецеидальное колебание и выводится его временная диаграмма, а в строках 75-94 рассчитывается его спектр. Сформированный массив AmpTp задаёт относительный уровень гармоник трапецеидального колебания в процентах.

Команды 95-173 реализуют косинусно-синусный генератор, выдают косинусную и синусную компоненты выходных колебаний генератора в виде графиков и определяют спектр этих колебаний. Массивы Amp3 и Amp5 задают относительный уровень гармоник синусоидального колебания при использовании полиномов третьей и пятой степени соответственно.

Результатом работы программы являются временные и спектральные диаграммы, представленные на рисунке 2.

4. Для формирования трапецеидального колебания введите значения P, i0, nmax из таблицы 1. Введите B = 3 и Sign = 1. Сохраните и выполните программу. Пронаблюдайте временные и спектральные диаграммы.

В окне «scilab-4.1.2(0)» введите AmpTp и нажмите клавишу Enter. Появится массив отсчётов спектра в процентах, начиная с нулевого и кончая пятым. Занесите их в таблицу 5.

Таблица 5

Спектр трапецеидального колебания

Номер

гармоники

0

1

2

3

4

5

Относительный

уровень гармоники в %

Повторите эксперимент при B = 10. Запишите вывод о влиянии константы B на форму и спектра трапецеидального колебания.

.

Рисунок 2 - Временные и спектральные диаграммы трапецеидального и синусоидальных колебаний

5. Для реализации косинусно-синусного генератора введите исходные данные из таблицы 1.

Выполните программу. Пронаблюдайте временные и спектральные диаграммы.

В окне «scilab-4.1.2(0)» введите Amp3 и нажмите клавишу Enter. Появится массив отсчётов спектра в процентах, начиная с нулевого и кончая пятым. Занесите их в таблицу 6.

Таблица 6

Спектр колебания на выходе генератора

Номер

гармоники

0

1

2

3

4

5

Относительный

уровень гармоники

в %

при полиноме

3-й степени

Относительный

уровень гармоники

в %

при полиноме

5-й степени

Затем определите массив отсчетов спектра при использовании полинома 5-й степени Amp5.

Приложение А к лабораторной работе №4

Цифровые генераторы

1. Генераторы пилообразных, прямоугольных, треугольных и трапецеидальных колебаний

На рисунке 1 точками показаны отсчеты пилообразного колебания, которое при A>0 формируется следующим образом:

Записанное соотношение справедливо в дискретные моменты времени. Если рассматривать не дискретные моменты времени, а порядковые номера отсчетов, то это соотношение можно записать так

Рисунок 1 – Пилообразное колебание

Из рисунка видно, что в периоде пилообразного колебания содержится интервалов дискретизации, следовательно, период T и частота F пилообразного колебания равны

Частота пилы прямо пропорциональна частоте дискретизации и отношению констант .

Рисунок 2 показывает, как из пилообразного колебания z получается последовательность прямоугольных импульсов I с периодом, равным периоду пилы, длительностью , максимальным уровнем I1, минимальным уровнем I2

Рисунок 2 – Формирование последовательности прямоугольных

импульсов из пилообразного колебания

Из подобия заштрихованного треугольника и треугольника - положительного полупериода пилы следует что

Откуда длительность импульса равна

Таким образом, изменяя константу С0, можно регулировать длительность импульса.

Из пилы формируется треугольное колебание (рисунок 3) в соответствии со следующим соотношением

Рисунок 3 – Формирование треугольных колебаний

Это двухполярное треугольное колебание может быть использовано в качестве грубой аппроксимации синусоиды. Степень соответствия его синусоиде можно оценить по уровню высших гармоник. Оно содержит только нечетные гармоники, причем коэффициент третьей гармоники равен кГ3 = 10%, а коэффициент пятой гармоники кГ5 = 4%.

Из треугольного колебания формируется трапецеидальное колебание (рисунок 5) согласно соотношению

где B > 1.

При B = 3 трапеция является хорошей аппроксимацией синусоиды: коэффициент третьей гармоники равен нулю, коэффициент пятой гармоники кГ5 = 4%.

Рисунок 5 – Формирование трапецеидального колебания

2. Косинусно-синусные генераторы

2.1 Косинусно-синусный генератор с полиномиальной аппроксимацией отсчетов выходных колебаний

Для формирования двух квадратурных компоненет на выходе генератора используются два пилообразных колебания, сдвинутых друг относительно друга на четверть периода (рисунок 6). Исходным является одно из пилообразных колебаний (в рассматриваемом случае zc). Второе получается из него следующим образом

Из двух пилообразных колебаний формируются два треугольных описанным выше способом

Для формирования из треугольных колебаний синусоидальных используется функциональное преобразование F(Y), представляющее собой полином третьей или пятой степени:

где D = 0.70738,

где D1= 0.745966, D3 = - 0.305500, D5 = 0.138149.

Генерируемые колебания определяются по приведенным соотношениям

Рисунок 6 – Формирование косинусной и синусной компонент из двух

пилообразных колебаний

При использовании полинома третьей степени коэффициент третьей гармоники равен кГ3 = 0.5%, коэффициент пятой гармоники кГ5 = 0.1%.

При использовании полинома пятой степени кГ3 =0.005%, кГ5 = 0.005%.

Для дальнейшего уменьшения коэффициентов гармоник используются полиномы более высокого порядка [3].

2.2 Косинусно-синусный генератор с табличной организацией отсчетов выходных колебаний

Функция sin(πz) при преобразует пилообразное колебание в синусоидальное (рисунок 7). Реализуется такой генератор путем записи табличных значений этой функции в ПЗУ. Аргумент функции задает адрес ячейки, в которой хранится значение функции. Шаг изменения аргумента равен , где m-количество разрядов адреса ПЗУ.

Косинусную компоненту можно получить двумя способами:

  • c помощью функции cos(π z) и той же пилы, которая используется для формирования синусной компоненты;

  • c использованием только одной функции и двух пилообразных колебаний, сдвинутых друг относительно друга на четверть периода.

Рисунок 7 – Формирование синусоидального колебания

с использованием заданной таблично функции sin(πz)

Приложение Б

к лабораторной работе №4

Моделирование и исследование генераторов пилообразных,

прямоугольных и треугольных колебаний

1 // Программа "Цифровые генераторы. Часть1"

2 //

3 // Ввод исходных данных

4 i0=32;// Количество отсчетов

5 // в периоде генерируемых колебаний

6 P=1; // Константа, определяющая размах

7 // пилообразного колебания

8 Sign=1; // Константа, определяющая характер

9 // линейного участка пилы

10 // Sign=1 - возрастающий, Sign=-1 - убывающий

11 C0=0; // Константа, определяющая длительность

12 // прямоугольного импульса

13 I1=1; // Максимальное значение отсчета

14 // прямоугольного колебания

15 I2=-1; // Минимальное значение отсчета

16 // прямоугольного колебания

17 nmax=200; // Максимальный номер отсчета

18 // формируемого колебания

19 //

20 // Задание функции, используемой в программе

21 function z=pila(A,P,zN,nmax)

22 z(1)=zN;

23 for n=2:nmax,

24 if (z(n-1)+A>=P)&(A>0)

25 z(n)=z(n-1)+A-2*P;

26 elseif (z(n-1)+A<-P)&(A<0)

27 z(n)=z(n-1)+A+2*P;

28 else

29 z(n)=z(n-1)+A;

30 end

31 end;

32 endfunction;

33 // Расчет дополнительных констант

34 // и задание начальных условий

35 //

36 fo=1/i0; // Нормированная частота генерируемого

37 // колебания

38 A=2*P*fo*Sign; // Константа, определяющая

39 // частоту пилообразного колебания

40 zN=0; // Начальное значение первого отсчета

41 // пилообразного колебания

42 //

43 // Формирование пилообразного колебания

44 xbasc()

45 n=[1:nmax];

46 z=pila(A,P,zN,nmax);

47 subplot(3,2,1)

48 plot2d3(n,z,style=[color("green")])

49 xgrid

50 xtitle('Пилообразное колебание')

51 //

52 // Определение спектра пилообразного колебания

53 zs=zeros(1:i0);

54 for i=1:i0

55 zs(i)=z(i);

56 end

57 Sz=dft(zs,-1);

58 Szo=abs(Sz)/max(abs(Sz));

59 subplot(3,2,2)

60 i=[1:i0];

61 k=i-1;

62 plot2d3(k,Szo,style=[color("green")])

63 xgrid

64 xtitle('Спектр пилообразного колебания')

65 AmpZ=zeros(1:6);

66 for m=1:6

67 if Szo(m)<0.00001 then

68 AmpZ(m)=0;

69 else

70 AmpZ(m)=Szo(m)*100;

71 end

72 end

73 //

74 // Формирование последовательности

75 // прямоугольных импульсов

76 I=zeros(1:nmax);

77 for n=1:nmax

78 if z(n)<C0 then I(n)=I1;

79 else I(n)=I2;

80 end

81 end;

82 n=[1:nmax];

83 subplot(3,2,3)

84 plot2d3(n,I,style=[color("blue")])

85 xgrid

86 xtitle('Последовательность прямоугольных импульсов')

87 // Определение спектра последовательности

88 // прямоугольных импульсов

89 Is=zeros(1:i0);

90 for i=1:i0

91 Is(i)=I(i);

92 end

93 SI=dft(Is,-1);

94 SIo=abs(SI)/max(abs(SI));

95 subplot(3,2,4)

96 plot2d3(k,SIo,style=[color("blue")])

97 xgrid

98 xtitle('Спектр прямоугольных импульсов')

99 AmpI=zeros(1:6);

100 for m=1:6

101 if SIo(m)<0.00001 then

102 AmpI(m)=0;

103 else

104 AmpI(m)=SIo(m)*100;

105 end

106 end

107 //

108 // Формирование треугольных колебаний

109 T=abs(z)-P/2;

110 subplot(3,2,5)

111 plot2d3(n,T,style=[color("red")])

112 xgrid

113 xtitle('Треугольное колебание')

114 // Определение спектра треугольных колебаний

115 Ts=zeros(1:i0);

116 for i=1:i0

117 Ts(i)=T(i);

118 end

119 ST=dft(Ts,-1);

120 STo=abs(ST)/max(abs(ST));

121 subplot(3,2,6)

122 plot2d3(k,STo,style=[color("red")])

123 xgrid

124 xtitle('Спектр треугольного колебания')

125 AmpT=zeros(1:6);

126 for m=1:6

127 if STo(m)<0.00001 then

128 AmpT(m)=0;

129 else

130 AmpT(m)=STo(m)*100;

131 end

132 end

Приложение В

к лабораторной работе №4

Моделирование и исследование генераторов трапецеидальных и

синусоидальных колебаний

1 // Программа "Цифровые генераторы. Часть 2"

2 //

3 // Ввод исходных данных

4 i0=50; // Количество отсчетов

5 // в периоде генерируемых колебаний

6 P=2; // Константа, определяющая размах

7 // пилообразного колебания

8 B=3; // Константа, определяющая крутизну

9 // скатов трапецеидального колебания

10 Sign=1; // Константа, определяющая характер

11 // линейного участка пилы

12 // Sign=1 - возрастающий, Sign=-1 - убывающий

13 nmax=200; // Максимальный номер отсчета

14 // формируемого колебания

15 //

16 // Задание функций, используемых в программе

17 function z=pila(A,P,zN,nmax)

18 z(1)=zN;

19 for n=2:nmax,

20 if (z(n-1)+A>=P)&(A>0)

21 z(n)=z(n-1)+A-2*P;

22 elseif (z(n-1)+A<-P)&(A<0)

23 z(n)=z(n-1)+A+2*P;

24 else

25 z(n)=z(n-1)+A;

26 end

27 end;

28 endfunction;

29 function z0=pilaS(A,P,zN,nmax)

30 z=pila(A,P,zN,nmax)

31 for n=1:nmax

32 if (z(n)+P/2>=P)&(A>0)

33 z0(n)=z(n)+P/2-2*P;

34 elseif (z(n)-P/2<-P)&(A<0)

35 z0(n)=z(n)-P/2+2*-P;

36 else

37 z0(n)=z(n)+(P/2)*A/abs(A);

38 end

39 end

40 endfunction;

41 function Y3=polinom3(T)

42 D=0.707380;

43 Y3=zeros(1:nmax)

44 for n=1:nmax

45 Y3(n)=4*(T(n)/P)*(D-(T(n)/P)^2);

46 end

47 endfunction;

48 function Y5=polinom5(T)

49 D1=0.745966;

50 D3=-0.305500;

51 D5=0.138149;

52 for n=1:nmax

53 Y5(n)=4*(T(n)/P)*(D1+4*(T(n)/P)^2*(D3+D5*(T(n)/P)^2));

54 end

55 endfunction;

56 // Расчет дополнительных констант

57 // и задание начальных условий

58 fo=1/i0;// Нормированная частота

59 // генерируемого колебания

60 A=2*P*fo*Sign; // Константа, определяющая

61 // частоту пилообразного колебания

62 zN=0; // Начальное значение первого отсчета

63 // пилообразного колебания

64 //

65 // Моделирование трапецеидального колебания Tp

66 xbasc()

67 n=[1:nmax];

68 z=pila(A,P,zN,nmax);

69 T=(abs(z)-P/2)*B;

70 for n=1:nmax

71 if T(n)>P

72 Tp(n)=P;

73 elseif T(n)<-P

74 Tp(n)=-P;

75 else Tp(n)=T(n);

76 end

77 end

78 n=[1:nmax];

79 subplot(3,2,1)

80 plot2d3(n,Tp,style=[color("green")])

81 xgrid

82 xtitle('Трапецеидальное колебание')

83 // Определение спектра трапецеидального колебания

84 zs=zeros(1:i0);

85 for i=1:i0

86 Tps(i)=Tp(i);

87 end

88 STp=dft(Tps,-1);

89 STpo=abs(STp)/max(abs(STp));

90 subplot(3,2,2)

91 i=[1:i0];

92 k=i-1;

93 plot2d3(k,STpo,style=[color("green")])

94 xgrid

95 xtitle('Спектр трапецеидального колебания')

96 AmpTp=zeros(1:8);

97 for m=1:8

98 if STpo(m)<0.00001 then

99 AmpTp(m)=0;

100 else

101 AmpTp(m)=STpo(m)*100;

102 end

103 end

104 // Косинусно-синусный генератор

105 // Формирование двух пилообразных колебаний zC и zS

106 zC=pila(A,P,zN,nmax);

107 zS=pilaS(A,P,zN,nmax);

108 subplot(3,2,3)

109 plot2d(n,zC,style=[color("blue")])

110 plot2d(n,zS,style=[color("red")])

111 xgrid

112 xtitle('Пилообразные колебания, сдвинутые на четверть периода')

113 // Формирование двух треугольных колебаний Tc и Ts

114 Tc=P/2-abs(zC);

115 Ts=abs(zS)-P/2;

116 subplot(3,2,4)

117 plot2d(n,Tc,style=[color("blue")])

118 plot2d(n,Ts,style=[color("red")])

119 xgrid

120 xtitle('Треугольные колебания, сдвинутые на четверть периода')

121 // Определение косинусной и синусной

122 // компонент при использовании

123 // полиномов третьей степени (C3, S3)

124 // и пятой степени (C5, S5)

125 C3=polinom3(Tc);

126 S3=polinom3(Ts);

127 C5=polinom5(Tc);

128 S5=polinom5(Ts);

129 //Построение временных диаграмм для C3 и S3

130 C=C3;

131 S=S3;

132 subplot(3,2,5)

133 plot2d(n,C,style=[color("blue")])

134 plot2d(n,S,style=[color("red")])

135 xgrid

136 xtitle('Синусная и косинусная компоненты КСГ')

137 // Определение спектра генерируемых колебаний

138 // при использованииполинома третьей степени

139 for i=1:i0

140 Cs(i)=C(i);

141 end

142 SCs=dft(Cs,-1);

143 SCso=abs(SCs)/max(abs(SCs));

144 subplot(3,2,6)

145 i=[1:i0];

146 k=i-1;

147 plot2d3(k,SCso,style=[color("blue")])

148 xgrid

149 xtitle('Спектр выходных колебаний КСГ')

150 Amp3=zeros(1:6);

151 for m=1:6

152 if SCso(m)<0.00001 then

153 Amp3(m)=0;

154 else

155 Amp3(m)=SCso(m)*100;

156 end

157 end

158 // Построение временных диаграмм для C5 и S5

159 C=C5;

160 S=S5;

161 subplot(3,2,5)

162 plot2d(n,C,style=[color("blue")])

163 plot2d(n,S,style=[color("red")])

164 xgrid

165 // Определение спектра генерируемых колебаний

166 // при использовании полинома пятой степени

167 for i=1:i0

168 Cs(i)=C(i);

169 end

170 SCs=dft(Cs,-1);

171 SCso=abs(SCs)/max(abs(SCs));

172 subplot(3,2,6)

173 i=[1:i0];

174 k=i-1;

175 plot2d3(k,SCso,style=[color("blue")])

176 xgrid

177 Amp5=zeros(1:6);

178 for m=1:6

179 if SCso(m)<0.00001 then

180 Amp5(m)=0;

181 else

182 Amp5(m)=SCso(m)*100;

183 end

184 end

77