Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Цифровая обработка сигналов. Методическая разработка к лабораторным занятиям для студентов-бакалавров дневного и заочного обучения
.pdf
Для того чтобы получить такое значение приведенной частоты несущей дискретного
f
0
FД4
б)
0
F
0
F
Д
f
0
f
0
FД/2
F
Д
f
0
f
a)
FД/2
б)
0
F
0
F
Д
f
0
f
0
FД/2
F
Д
f
0
f
a)
FД/2
сигнала, частота несущей аналогового сигнала
зации или ее гармоники на частоту
Рисунок П.9. Спектр сигнала до и после дискретизации при
Спектральные диаграммы, приведенные на рисунках П.10 и П.11, показывают, что если
это условие не выполняется, то сгустки спектра распределяются по оси частот неравномерно,
в результате чего возникает наложение спектров, приводящее к искажению сигнала.
.
F0 = FД / 4
должна отличаться от частоты дискрети-
Рисунок П.10 – Спектр сигнала до и после дискретизации
при F0 < FД /4
21

FД/2
б)
0
F
0
F
Д
f
0
f
0
FД/2
F
Д
f
0
f
a)
Рисунок П.11. Спектр сигнала до и после дискретизации при
0
Д
f
F
1
k
4
k 01 2, , ..
F0 > FД/4
Таким образом, второе условие выбора частоты дискретизации выражается следующим
соотношением
где
В ряде случаев только часть спектра колебания, действующего на входе дискретизатора,
принадлежит полезному сигналу.
Например, это имеет место при использовании одного аналогового фильтра для нескольких сигналов с разной шириной спектра и последующего применения разных цифро-
вых фильтров для выделения каждого сигнала. Этот случай показан на рисунке П.12.
Из рисунка видно, что в данном случае можно разрешить наложение сгустков спектра
там, где отсутствует спектр полезного сигнала, учитывая последующую селекцию сигнала
цифровым фильтром.
При этом вместо условия F
FД > ΔF + ΔFс (П.10)
> 2 ΔF достаточно выполнить условие
Д
, (П.9)
22

.
ΔF
ΔF
c
б
0
F
0
F
Д
f
0
f
0
FД/2
F
Д
f
0
f
a
FД/2
ΔF+ ΔF
c
Рисунок П.12 – Спектры сигнала до и после дискретизации при FД = ΔF+ ΔFc
23

ПРИЛОЖЕНИЕ Б к лабораторной работе №1
Программа моделирования процесса дискретизации аналоговой синусоиды и её восстанов-
ления из дискретной
001// Программа моделирования процесса дискретизации
002// аналоговой синусоиды и её восстановления из дискретной
003// Имя программы "Diskret1.sce"
004//
005// Ввод исходных данных
006//
007 X=1; //Амплитуда аналоговой синусоиды
008 F=0.5; //Частота аналоговой синусоиды
009 Fd=8; //Частота дискретизации
010 N=2^14; // Количество расчетных точек
011 imax=3000; // Количество расчетных точек, используемых
012 // при построении временных диаграмм
013 //
014 // Расчет количества расчетных точек в периоде сигнала и
015 // в интервале дискретизации
016 delta_t=1/1024; //Временной интервал между двумя
017 //соседними расчетными точками на оси времени
018 is=1/(F*delta_t); //Количество расчетных точек в периоде
сигнала
019 id=1/(Fd*delta_t); // Количество расчетных точек
020 // в интервале дискретизации
021 //Начальная установка (обнуление массивов)
022 x=zeros(1:N);
023 u=zeros(1:N);
024 xd=zeros(1:N);
025 sv=zeros(1:N);
026 xv=zeros(1:N);
027 for i=1:N
028 //Формирование аналоговой синусоиды
029 x(i)=X*sin(2*%pi*i/is);
030 //Формирование последовательности единичных отсчетов
031 if (i/id)-floor(i/id)==0 then
032 u(i)=1;
033 else u(i)=0;
034 end
035 //Дискретизация аналоговой синусоиды
036 xd(i)=x(i)*u(i);
037 end;
038 //Определение спектра аналоговой синусоиды
039 s=fft(x);
040 //Определение спектра дискретной синусоиды
041 sd=fft(xd);
042 //Восстановление аналоговой синусоиды из дискретной
043 k1=floor(0.5*N/id);
044 for k=1:N
045 if k<k1 then
046 sv(k)=sd(k);
047 else
24

048 sv(k)=0;
049 end
050 end
051 xv=ifft(sv);
052 //Формирование временных и спектральных диаграмм
053 x0=zeros(1:imax);
054 u0=zeros(1:imax);
055 xd0=zeros(1:imax);
056 xv0=zeros(1:imax);
057 for i0=1:imax
058 x0(i0)=x(i0);
059 u0(i0)=u(i0);
060 xd0(i0)=xd(i0);
061 xv0(i0)=xv(i0);
062 end
063 kmax=5*k1;
064 k=1:kmax;
065 f=zeros(1:kmax);
066 s0=zeros(1:kmax);
067 sv0=zeros(1:kmax);
068 sd0=zeros(1:kmax);
069 f=k/(delta_t*N);
070 for k=1:kmax
071 s0(k)=s(k)*2/N;
072 sd0(k)=sd(k)*2/N;
073 end
074 clf()
075 subplot(3,2,1);
076 i0=[1:imax];
077 t=delta_t*i0;
078 plot2d(t,x0,style=[color("blue")])
079 xtitle('Аналоговая синусоида')
080 xgrid
081 subplot(3,2,2)
082 plot2d3(f,abs(s0),style=[color("blue")])
083 xgrid
084 xtitle('Спектр аналоговой синусоиды')
085 subplot(3,2,3)
086 plot2d3(t,u0)
087 xtitle('Последовательность единичных отсчетов')
088 subplot(3,2,4)
089 plot2d3(t,xd0)
090 xgrid
091 xtitle('Дискретная синусоида')
092 subplot(3,2,5)
093 plot2d(f,abs(sd0),style=[color("red")])
094 xgrid
095 xtitle('Спектр дискретной синусоиды')
096 subplot(3,2,6)
097 plot2d(t,xv0,style=[color("red")])
098 xgrid
099 xtitle('Восстановленная аналоговая синусоида')
25

ПРИЛОЖЕНИЕ В
к лабораторной работе №1
Программа моделирования процесса дискретизации случайной последовательности элементарных посылок и её восстановления из дискретной
001 // Моделирование процесса дискретизации случайной
002 // последовательности прямоугольных импульсов
003 // и восстановления аналогового сигнала из дискретного
004 // Имя программы - "Diskret2".
005 //Ввод исходных данных
006 //
007 T0=2; //Длительность элементарной посылки
008 Xmax=1; //Максимальный уровень сигнала
009 Xmin=0;//Минимальный уровень сигнала
010 Fd=4;//Частота дискретизации
011 N=2^16; //Количество расчетных точек
012 imax=8000; // Количество расчетных точек, используемых
013 //при построении временных диаграмм на экране монитора
014 delta_t=1/1024; // Интервал между соседними расчетными
015 // точками на оси времени
016 is=floor(T0/delta_t); //Количество расчетных точек
017 //в длительности элементарной посылки сигнала
018 id=floor(1/(Fd*delta_t)); //Количество расчетных точек в
019 //интервале дискретизации
020 //Начальная установка (Обнуление массивов)
021 x=zeros(1:N);
022 u=zeros(1:N);
023 xd=zeros(1:N);
024 sd=zeros(1:N);
025 s=zeros(1:N)
026 x0=zeros(1:1);
027 x0=Xmax;
028 //Формирование аналогового сигнала в виде случайной
029 //последовательности прямоугольных импульсов
030 for i=1:N
031 if (i/is)-floor(i/is)==0 then
032 I(i)=1;
033 else I(i)=0;
034 end
035 r=rand();
036 if (I(i)==1)&(r<0.5)
037 x0=Xmin;
038 elseif (I(i)==1)&(r >=0.5)
039 x0=Xmax;
040 end
041 x(i)=x0;
042 end
043 //Формирование последовательности единичных отсчетов
044 for i=1:N
045 if (i/id)-floor(i/id)==0 then
046 u(i)=1;
047 else u(i)=0;
26

048 end
049 end
050 //Дискретизация аналогового сигнала
051 for i=1:N
052 xd(i)=x(i)*u(i);
053 end
054 //Определение спектра аналогового сигнала
055 s=fft(x);
056 //Определение спектра дискретного сигнала
057 sd=fft(xd);
058 //Восстановление аналогового сигнала из дискретного
059 k1=floor(0.5*N/id);
060 sv=zeros(1:N);
061 for k=1:N
062 if k<k1 then
063 sv(k)=sd(k);
064 else
065 sv(k)=0;
066 end
067 end
068 xv=zeros(1:N);
069 xv=ifft(sv);
070 //Формирование временных и спектральных диаграмм
071 i0=[1:imax];
072 x1=zeros(1:imax);
073 u0=zeros(1:imax);
074 xd0=zeros(1:imax);
075 xv0=zeros(1:imax);
076 for i0=1:imax
077 x1(i0)=x(i0);
078 u0(i0)=u(i0);
079 xd0(i0)=xd(i0);
080 xv0(i0)=xv(i0);
081 end
082 kmax=5*k1;
083 k=1:kmax;
084 f=zeros(1:kmax);
085 s0=zeros(1:kmax);
086 sv0=zeros(1:kmax);
087 sd0=zeros(1:kmax)
088 for k0=1:kmax
089 f(k0)=k0/(delta_t*N)
090 s0(k0)=abs(s(k0))*2/N
091 sd0(k)=abs(sd(k))*2/N
092 end
093 clf()
094 subplot(3,2,1);
095 i0=[1:imax];
096 t=delta_t*i0;
097 plot2d4(t,x1,style=[color("blue")])
098 xtitle('Аналоговый сигнал на входе дискретизатора')
099 xgrid
27

100 subplot(3,2,2)
101 plot2d3(f,s0,style=[color("blue")])
102 xgrid
103 xtitle('Спектр аналогового сигнала')
104 subplot(3,2,3)
105 plot2d3(t,u0)
106 xtitle('Последовательность единичных отсчетов')
107 subplot(3,2,4)
108 plot2d3(t,xd0)
109 xgrid
110 xtitle('Дискретный сигнал')
111 subplot(3,2,5)
112 plot2d3(f,sd0,style=[color("red")])
113 xgrid
114 xtitle('Спектр дискретного сигнала')
115 subplot(3,2,6)
116 plot2d(t,xv0,style=[color("red")])
117 xgrid
118 xtitle('Восстановленный аналоговый сигнал')
28

ПРИЛОЖЕНИЕ Г
к лабораторной работе №1
Программа моделирования процесса дискретизации модулированного сигнала и восстановления аналогового сигнала из дискретного
001 // Программа"Diskret3". Моделирование процесса
002 // дискретизации модулированного сигнала и восстановления
003 // аналогового сигнала из дискретного
004 // Ввод исходных данных для моделирования
005 T0=0.33;//Длительность элементарной посылки сигнала
006 Xmin=0;// Минимальный уровень модулирующего сигнала
007 Xmax=1; // Максимальный уровень модулирующего сигнала
008 f0=13.5;// Частота несущей
009 Fd=18; // Частота дискретизации
010 N=2^14;// Общее количество расчетных точек
011 imax=3000; // Количество расчетных точек, используемых при
012 // построении временных диаграмм
013 //
014 delta_t=1/1024; // Временной интервал на оси времени между
015 // соседними расчетными точками
016 id=floor(1/(delta_t*Fd)); // Количество расчетных точек
017 // в интервале дискретизации
018 is=floor(T0/(delta_t)); // Количество расчетных точек в элементарной
019 //посылке модулирующего сигнала
020 // Начальная установка (обнуление массивов)
021 I=zeros(1:N);
022 xs=zeros(1:N);
023 u=zeros(1:N);
024 xd=zeros(1:N);
025 x0=zeros(1:1);
026 x0=Xmax;
027 for i=1:N
028 //Формирование аналогового сигнала в виде случайной
029 //последовательности элементарных посылок
030 if (i/is)-floor(i/is)==0 then
031 I(i)=1;
032 else I(i)=0;
033 end
034 r=rand();
035 if (I(i)==1)&(r<0.5)
036 x0=Xmin;
037 elseif (I(i)==1)&(r>=0.5)
038 x0=Xmax;
039 end
040 x(i)=x0;
041 //Формирование модулированного сигнала
042 xs(i)=x(i)*sin(2*%pi*i*f0*delta_t);
043 end
044 //Формирование последовательности единичных отсчетов
045 for i=1:N
046 if (i/id)-floor(i/id)==0 then
047 u(i)=1;
29

048 else u(i)=0;
049 end
050 end
051 //Дискретизация аналогового сигнала
052 for i=1:N
053 xd(i)=xs(i)*u(i);
054 end
055 //Определение спектра аналогового сигнала
056 s=fft(xs);
057 //Определение спектра дискретного сигнала
058 sd=fft(xd);
059 //Восстановление аналогового сигнала из дискретного
060 k1=floor(0.5*N/id);
061 sv=zeros(1:N);
062 for k=1:N
063 if k<k1 then
064 sv(k)=sd(k);
065 else
066 sv(k)=0;
067 end
068 end
069 xv=zeros(1:N);
070 xv=ifft(sv);
071 //Формирование временных и спектральных диаграмм
072 i0=[1:imax];
073 xs0=zeros(1:imax);
074 u0=zeros(1:imax);
075 xd0=zeros(1:imax);
076 xv0=zeros(1:imax);
077 for i0=1:imax
078 xs0(i0)=xs(i0);
079 u0(i0)=u(i0);
080 xd0(i0)=xd(i0);
081 xv0(i0)=xv(i0);
082 end
083 kmax=5*k1;
084 k=1:kmax;
085 f=zeros(1:kmax);
086 s0=zeros(1:kmax);
087 sv0=zeros(1:kmax);
088 sd0=zeros(1:kmax);
089 f=k/(delta_t*N);
090 for k=1:kmax
091 s0(k)=s(k)*2/N;
092 sd0(k)=sd(k)*2/N;
093 end
094 clf();
095 subplot(3,2,1);
096 i0=[1:imax];
097 t=delta_t*i0;
098 plot2d(t,xs0,style=[color("blue")])
099 xtitle('Аналоговый сигнал на входе дискретизатора')
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
