- •Часть 1. Синтез и фильтрация м-последовательностей
- •Построить взаимнокорреляционную функцию – вкф, т.Е. М2 – сигнал, а м1 – опорная функция. Изобразить полученную автокорреляционную функцию на общем поле графиков.
- •Из Mсум отфильтровать м1, т.Е. Mсум – сигнал, а м1 – опорная функция. Изобразить полученный результат на общем поле графиков.
- •Из Mсум отфильтровать м2, т.Е. Mсум – сигнал, а м2 – опорная функция. Изобразить полученный результат на общем поле графиков.
- •Из m3 отфильтровать м1, т.Е. M3 – сигнал, а м1 – опорная функция. Изобразить полученный результат на общем поле графиков.
- •Часть 2. Синтез и фильтрация кодов Уолша-Адамара
- •Синтезировать коды w1 и w2 с помощью функции Wfun. Значения data и r взять из таблицы 2 в соответствии с номером по списку.
- •Вычислить быстрое преобразование Уолша-Адамара для суммы кодов Wсум. Доказать, что полученный результат соответствует исходным закодированным числам.
- •Вычислить быстрое преобразование Уолша-Адамара для суммы кодов Wшум. Изобразить на графике полученный результат. Доказать, что полученный результат соответствует исходным закодированным числам.
Построить взаимнокорреляционную функцию – вкф, т.Е. М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) в общем окне
Из 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 из Мсум
Из 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 из Мсум
Повторить пункты 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 из Мсум');
Исследовать М-последовательности на шумоподавление (пункты 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 ('Шум');% график шума
Сформировать последовательность М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-последовательности