Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР 1 вариант 4 (ЦОС) отчёт - Синтез и фильтрация ШПС-сигналов типа М-последовательностей, кодов Уолша-Адамара.docx
Скачиваний:
62
Добавлен:
13.02.2021
Размер:
680.34 Кб
Скачать
  1. Построить взаимнокорреляционную функцию – вкф, т.Е. М2 – сигнал, а м1 – опорная функция. Изобразить полученную автокорреляционную функцию на общем поле графиков.

function f = Lab1_1()

close all; % закрытие ранее открытых окон

clear all; % очистка переменных и кэш-памяти

A = [1 0 0 0 0 0 0 1 0 0] % фаза

C1 =[0 0 1 0 0 0 0 0 0 1] % характеристический многочлен последовательности M1

C2 =[0 0 1 0 0 0 1 0 1 1] % характеристический многочлен последовательности M2

***

M1 = MFun(A,C1); % функция формирования последовательности М1

M2 = MFun(A,C2); % функция формирования последовательности М2

***

VKF21 = my_sf(M2,M1); % функция ВКФ (М2 - сигнал, М1 - опорная функция)

***

figure;

subplot(2,4,1); plot(AKF1); grid on; title ('АКФ для последовательности М1');%Построение АКФ - М1

subplot(2,4,2); plot(VKF21);grid on; title ('ВКФ (М2 - сигнал, М1 - опорная ф-ия)'); % построение ВКФ - М2/М1

Рисунок 6. График ВКФ для (М2 М1) в общем окне

  1. Из Mсум отфильтровать м1, т.Е. Mсум – сигнал, а м1 – опорная функция. Изобразить полученный результат на общем поле графиков.

function f = my_sf(S,R)

i = 1;

Cr = [];

Sx = [zeros(1,length(R)-1) S zeros(1,length(R)-1)];

while(i < length(S)+length(R))

Sy = [Sx(i:i+length(R)-1)];

Q = Sy.*R;

Cr = [ sum(Q) Cr];

i= i+1;

end

f = Cr;

end

Filter = my_sf(MN,M1); %согласованный фильтр для фильтрации М-последовательностей(отфильтрация М1 из М-суммарной)

Filter2 = my_sf(MN,M2); %согласованный фильтр для фильтрации М-последовательностей(отфильтрация М2 из М-суммарной)

***

figure;

subplot(2,2,1); plot(AKF1); grid on; title ('АКФ для последовательности М1');%Построение АКФ - М1

subplot(2,2,2); plot(VKF21);grid on; title ('ВКФ (М2 - сигнал, М1 - опорная ф-ия)'); % построение ВКФ - М2/М1

subplot (2,2,3); plot (Filter); grid on; title ('Фильтрация М1 из Мсум'); %график Фильтрация М1 из Мсум

  1. Из Mсум отфильтровать м2, т.Е. Mсум – сигнал, а м2 – опорная функция. Изобразить полученный результат на общем поле графиков.

function f = my_sf(S,R)

i = 1;

Cr = [];

Sx = [zeros(1,length(R)-1) S zeros(1,length(R)-1)];

while(i < length(S)+length(R))

Sy = [Sx(i:i+length(R)-1)];

Q = Sy.*R;

Cr = [ sum(Q) Cr];

i= i+1;

end

f = Cr;

end

Filter = my_sf(MN,M1); %согласованный фильтр для фильтрации М-последовательностей(отфильтрация М1 из М-суммарной)

Filter2 = my_sf(MN,M2); %согласованный фильтр для фильтрации М-последовательностей(отфильтрация М2 из М-суммарной)

***

figure;

subplot(2,2,1); plot(AKF1); grid on; title ('АКФ для последовательности М1');%Построение АКФ - М1

subplot(2,2,2); plot(VKF21);grid on; title ('ВКФ (М2 - сигнал, М1 - опорная ф-ия)'); % построение ВКФ - М2/М1

subplot (2,2,3); plot (Filter); grid on; title ('Фильтрация М1 из Мсум'); %график Фильтрация М1 из Мсум

subplot (2,2,4); plot (Filter2); grid on; title ('Фильтрация М2 из Мсум'); %график Фильтрация М2 из Мсум

  1. Повторить пункты 5-8 с использованием встроенной в MATLAB функции xcorr(A, B), где А – это сигнал, а В – опорная функция. Добиться идентичного результата работы функции mySf. Результаты полученные с помощью функции xcorr изобразить на общем поле графиков.

function f = Lab1_1()

close all; % закрытие ранее открытых окон

clear all; % очистка переменных и кэш-памяти

A = [1 0 0 0 0 0 0 1 0 0] % фаза

C1 =[0 0 1 0 0 0 0 0 0 1] % характеристический многочлен последовательности M1

C2 =[0 0 1 0 0 0 1 0 1 1] % характеристический многочлен последовательности M2

Zl = (83+5*4); % Расчёт сдвига

M1 = MFun(A,C1); % функция формирования последовательности М1

M2 = MFun(A,C2); % функция формирования последовательности М2

Zr = zeros(1,Zl);

M1i = [M1,Zr]; % Последовательность М1 далее нули

M2i = [Zr,M2]; % Последовательность М2 со сдвигом

MN = M1i - M2i; % М-последовательность суммарная

AKF1 = my_sf(M1,M1); % функция АКФ для последовательности М1 (М1 сигнал и опорная функция)

AKF2 = my_sf(M2,M2); % функция АКФ для последовательности М2 (М2 сигнал и опорная функция)

%VKF12 = my_sf(M1,M2); % функция ВКФ (М1 - сигнал, М2 - опорная функция)

VKF21 = my_sf(M2,M1); % функция ВКФ (М2 - сигнал, М1 - опорная функция)

Filter = my_sf(MN,M1); %согласованный фильтр для фильтрации М-последовательностей(отфильтрация М1 из М-суммарной)

Filter2 = my_sf(MN,M2); %согласованный фильтр для фильтрации М-последовательностей(отфильтрация М2 из М-суммарной)

figure; % первая иллюстрация

subplot(1,4,1); plot(M1);grid on; title ('Последовательность М1'); %построение графика последовательности M1

subplot(1,4,2); plot(M2); grid on; title ('Последовательность М2'); %построение графика последовательности М2

subplot(1,4,3:4); plot(MN); grid on; title ('Суммарная М-последовательность');%построение графика М-суммарной

AKF1_x=xcorr(M1, M1); % добавление xcorr для АКФ (М1, М1)

VKF21_x=xcorr (M2, M1); % добавление xcorr для ВКФ (М2, М1)

Filter_x=xcorr(MN,M1); % добавление xcorr для фильтрации М1 из Мсум

Filter2_x=xcorr(MN,M2); % добавление xcorr для фильтрации М2 из Мсум

figure; % вторая иллюстрация

subplot(4,2,1); plot(AKF1); grid on; title ('АКФ для последовательности М1');%Построение АКФ - М1

subplot(4,2,2); plot(VKF21);grid on; title ('ВКФ (М2 - сигнал, М1 - опорная ф-ия)'); % построение ВКФ - М2/М1

subplot (4,2,3); plot (Filter); grid on; title ('Фильтрация М1 из Мсум'); %график Фильтрация М1 из Мсум

subplot (4,2,4); plot (Filter2); grid on; title ('Фильтрация М2 из Мсум'); %график Фильтрация М2 из Мсум

subplot (4,2,5); plot (AKF1_x);grid on; title ('xcorr для АКФ для последовательности М1');

subplot (4,2,6); plot (VKF21_x);grid on; title ('xcorr для ВКФ (М2 - сигнал, М1 - опорная ф-ия)');

subplot (4,2,7); plot (Filter_x);grid on; title ('xcorr для Фильтрации М1 из Мсум');

subplot (4,2,8); plot (Filter2_x);grid on; title ('xcorr для Фильтрации М2 из Мсум');

  1. Исследовать М-последовательности на шумоподавление (пункты 10-13). Сформировать в MATLAB шум с помощью функции rand. В качестве амплитуды шума Aшум взять остаток от деления на 4 своего номер по списку в группе. Длина сформированного шума должна соответствовать длине М-последовательности.

NoiseAmp = 0; % Номер варианта 4 поделить на 4

Noise = NoiseAmp - 2 * NoiseAmp * rand(1,length(M1)); % формирование шума

***

figure;

subplot(4,2,1); plot(Noise);grid on; title ('Шум');% график шума

  1. Сформировать последовательность М3, сложив полученный шум с Мпоследовательностью М1: М3 = M1 + Шум. Для отображения результатов, полученных в пунктах 11-13, требуется создать новое поле графиков с помощью функций figure и subplot. Изобразить полученный результат на общем поле графиков.

NoiseAmp = 0; % Номер варианта 4 поделить на 4

Noise = NoiseAmp - 2 * NoiseAmp * rand(1,length(M1)); % формирование шума

NoisedM = Noise + M1; % формирование последовательности М3

***

figure;

subplot(4,2,1); plot(Noise);grid on; title ('Шум');% график шума

subplot(4,2,2); plot(M1);grid on; title ('Последовательность М1'); % график последовательности М1 (повтор для наглядности)

subplot(4,2,3:4); plot(NoisedM);grid on; title ('Последовательность М3'); %график М3-последовательности