Кодирование сигналов

Страницы работы

Содержание работы

Новосибирский Государственный Технический Университет

Факультет Автоматики и Вычислительной Техники

Кафедра  ССОД

Дисциплина  «Информационные сети»

Лабораторная работа № 1

КОДИРОВАНИЕ СИГНАЛОВ

Выполнил:                                                                                                    Преподаватель:

Спитченко В. М.                                                                                          проф. Моторин С.В.

Группа: АИ-72                                                                                            

Новосибирск

2010

1.  Исходный сигнал

Введем некоторые данные об исходном сигнале:

1)  частота сигнала

рад/c

2)  период сигнала

 c

3)  длительность импульса

c

Исходная последовательность битов:

1000 1101 0111 0100 1010 1010 1100 0110

Рис.1. Исходный сигнал NRZ.

Генерирование кода AMI:

function x = AmiCod(v)

len = length(v);

x = zeros(1, len);

odd = 0;

for i = 1:len

    if (v(i) == 1)

        if (odd == 0)

            x(i) = 1;

            odd = 1;

        else

            x(i) = -1;

            odd = 0;

        end

    else

        x(i) = 0;

    end

end

Рис.2. AMI

Генерирование Манчестерского кода:

function x = AmiCod(v)

len = length(v);

x = zeros(1, len);

odd = 0;

for i = 1:len

    if (v(i) == 1)

        if (odd == 0)

            x(i) = 1;

            odd = 1;

        else

            x(i) = -1;

            odd = 0;

        end

    else

        x(i) = 0;

    end

end

Рис.2. Манчестерский код.

Генерирование кода 2B1Q:

function x = B2Q1Cod(v)

len = length(v);

x = zeros(1, len/2);

i = 3;

k = 1;

while i <= len + 2

    if (v(i-2) == 0)

        if (v(i-1) == 0)

            x(k) = 2.1;

        else

            x(k) = 0.7;

        end

    else

        if (v(i-1) == 0)

            x(k) = -0.7;

        else

            x(k) = -2.1;

        end

    end

    i = i + 2;

    k = k + 1;

end

Рис.3. 2B1Q

2. Восстановление сигнала по 3, 5, 7 гармоникам

t1=0:0.01:31;% меандр

d=0:2:31;

figure(1)

meandr=pulstran(t1,d,'rectpuls',1);

w0 = pi*10^6; T=2*pi/w0;

t = 0:T/1000:16*T;

c0 = 1/2;

x = c0*ones(1,length(t));% постоянная   составляющая

for n=1:3,%восстановление по 3 гармоникам

    cn = 1/pi/n*sin(pi*n/2);

    c_n=conj(cn);

    x = x + cn*exp(j*n*w0*t) + c_n*exp(-j*n*w0*t);

end

subplot(311);

plot(t1*10^(-6),meandr,'k', t,x);

grid; axis ([0 0.5*10^(-5) -0.5 1.5])

x1 = c0*ones(1,length(t));

for n1=1:5,%восстановление по 5 гармоникам

    cn1 = 1/pi/n1*sin(pi*n1/2);

    c_n1=conj(cn1);

    x1 = x1 + cn1*exp(j*n1*w0*t) + c_n1*exp(-j*n1*w0*t);

end

subplot(312);

plot(t1*10^(-6),meandr,'k', t,x1, 'c');

grid; axis ([0 0.5*10^(-5) -0.5 1.5])

x2 = c0*ones(1,length(t));

for n2=1:7,%восстановление по 7 гармоникам

    cn2 = 1/pi/n2*sin(pi*n2/2);

    c_n2=conj(cn2);

    x2 = x2 + cn2*exp(j*n2*w0*t) + c_n2*exp(-j*n2*w0*t);

end

subplot(313);

plot(t1*10^(-6),meandr,'k', t,x2, 'red');

grid; axis ([0 0.5*10^(-5) -0.5 1.5])

Рис.4. Восстановление сигнала 1)по трем гармоникам

                                                     2) по пяти гармоникам

                                                     3) по семи гармоникам

3.  Скремблирование

Скремблирование заключается в побитном вычислении результирующего кода на основании битов исходного кода и полученных в предыдущих тактах битов результирующего кода.  В данном случае скремблер работает на основе выражения:

Bi=AÅI Bi-3 ÅBi-5

ii=1:32;

y=[0 1 1 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1];

for i=1:3

    scr(i)=y(i);

end

for i=4:5

    scr(i)=xor (y(i),scr(i-3));

end

for i=6:32

    scr1(i)=xor(y(i),scr(i-3));

    scr(i)=xor(scr1(i),scr(i-5));

end

figure(1)

subplot(311)

stairs(ii,y);

axis([0 32 -1 2]);

title('Исходный сигнал');% исходный сигнал

subplot(312)

stairs(ii,scr);

axis([0 32 -1 2]);  %скремблированный сигнал

title('Скремблированный сигнал');

%восстановление скремблированного сигнала

for i=1:3

    Y(i)=scr(i);

end

for i=4:5

    Y(i)=xor (scr(i),scr(i-3));

end

for i=6:32

    Y1(i)=xor(scr(i),scr(i-3));

    Y(i)=xor(Y1(i),scr(i-5));

end

subplot(313)

stairs(ii,Y);

axis([0 32 -1 2]);  %восстановленный сигнал

title('Восстановленный сигнал');

Рис.5.Скремблирование сигнала.

2. Получение спектров сигнала в различных кодах

Нахождение спектров.

% спектр меандра

t=0:0.01:31;

d=0:2:31;

meandr=pulstran(t,d,'rectpuls',1);

T=32*10^(-6);%длительность сигнала

Ts=T/128;% период отсчетов

Fmax=1/Ts;% Максимальная частота

df=1/T;%частотное разрешение

f1=-(Fmax-1)/2:df:(Fmax-1)/2;% частотная шкала

X1=fft(meandr,128);%вычисление ДПФ

X1_sh=fftshift(X1);%сдвиг ДПФ

figure(1);

subplot(311);

stem(f1,abs(X1_sh));% спектр меандра

set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),

title('Спектр меандра');

%получение спектра AMI кода

T_m1=32*10^(-6);%длительность сигнала в манчестерском коде

Ts_m1=T_m1/128;

Fmax_m1=1/Ts_m1;

df_m1=1/T_m1;

f1_m1=-(Fmax_m1-1)/2:df_m1:(Fmax_m1-1)/2;% частотная шкала

X1_m1=fft(m1, 128);

spec_AMI =fftshift(X1_m1);

subplot(313);

stem(f1_m1,abs(spec_AMI));% спектр сигнала AMI

set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),

title('Спектр сигнала в AMI коде');

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

T_M=32*10^(-6);%длительность сигнала в манчестерском коде

Ts_M=T_M/128;%

Fmax_M=1/Ts_M;

df_M=1/T_M;

f1_M=-(Fmax_M-1)/2:df_M:(Fmax_M-1)/2;% частотная шкала

X1_M=fft(M, 128);

spec_Manch=fftshift(X1_M);

subplot(312);

stem(f1_M,abs(spec_Manch));% спектр сигнала в манчестере

set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),

title('Манчестерский код');

%получение спектра 2B1Q кода

T_mn=16*10^(-6);%длительность сигнала

Ts_mn=T_mn/128;% период отсчетов

Fmax_mn=1/Ts_mn;

df_mn=1/T_mn;

f1_mn=-(Fmax_mn-1)/2:df_mn:(Fmax_mn-1)/2; % частотная шкала

X1_mn=fft(mn, 128);

spec_2B1Q=fftshift(X1_mn);

subplot(313);

stem(f1_mn,abs(spec_2B1Q));% спектр 2B1Q кода

set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),

ylabel('2B1Q');

Полученные амплитудные спектры, для исходного сигнала и сигналов, закодированных разными способами:

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
155 Kb
Скачали:
0