Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Цифровая обработка сигналов. Методическая разработка к лабораторным занятиям для студентов-бакалавров дневного и заочного обучения

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Для того чтобы получить такое значение приведенной частоты несущей дискретного
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]