Помогите, пожалуйста, в решении следующего вопроса, а именно помогите провести линейную интерполяцию в следующем коде:
Код
%% Инициализация
clear all; close all; clc;
format longE;
%% Инициализация массивов:
% 1. Массив №1:
Massiv1=[3 3 1 1 2 1 1 2 1 1 0 0 0 1 1 2 1 1 2 1 1 3 3]; %<-- отправленный;
% 2. Массив №2:
%{
В передаваемой последовательности определим те символы, по которым в
дальнейшем будет произведена оценка искажений, внесенных каналом. В данном
случае они не будут равны значению "1", т.е. символы, используемые в
качестве пилот-сигналов будут располагаться на следующих позициях:
--- |1|2|5|8|16|19|22|23| ---
Тогда запишем массив, содержащий эти позиции пилот-сигналов:
%}
PilotMassiv_INDEX=[1 2 5 8 16 19 22 23]; %<-- индексы пилотов;
% 3. Массив №3:
Massiv2=[3 2 1 1.4 1 1.3 1.2 2 1 1 0 0 0 1 1.1 2.2 1.5 1 2 1 1 3.3 2.5]; %<-- принятый;
%% Оценка по пилотам:
% 1. Вычисление оценки:
PilotEstimation=Massiv1(PilotMassiv_INDEX)./Massiv2(PilotMassiv_INDEX);
% 2. Интерполяция:
Weights=1;%interp1();
%% Выравнивание принятого массива:
Massiv=Massiv2*Weights;
%% Вывод сообщения при успешном завершении программы:
Message=msgbox('Работа программы успешно завершена',...
'Системное сообщение','none');
pause(1);
close(Message);
clear all; close all; clc;
format longE;
%% Инициализация массивов:
% 1. Массив №1:
Massiv1=[3 3 1 1 2 1 1 2 1 1 0 0 0 1 1 2 1 1 2 1 1 3 3]; %<-- отправленный;
% 2. Массив №2:
%{
В передаваемой последовательности определим те символы, по которым в
дальнейшем будет произведена оценка искажений, внесенных каналом. В данном
случае они не будут равны значению "1", т.е. символы, используемые в
качестве пилот-сигналов будут располагаться на следующих позициях:
--- |1|2|5|8|16|19|22|23| ---
Тогда запишем массив, содержащий эти позиции пилот-сигналов:
%}
PilotMassiv_INDEX=[1 2 5 8 16 19 22 23]; %<-- индексы пилотов;
% 3. Массив №3:
Massiv2=[3 2 1 1.4 1 1.3 1.2 2 1 1 0 0 0 1 1.1 2.2 1.5 1 2 1 1 3.3 2.5]; %<-- принятый;
%% Оценка по пилотам:
% 1. Вычисление оценки:
PilotEstimation=Massiv1(PilotMassiv_INDEX)./Massiv2(PilotMassiv_INDEX);
% 2. Интерполяция:
Weights=1;%interp1();
%% Выравнивание принятого массива:
Massiv=Massiv2*Weights;
%% Вывод сообщения при успешном завершении программы:
Message=msgbox('Работа программы успешно завершена',...
'Системное сообщение','none');
pause(1);
close(Message);
Параметр "Weights" установил пока равным "1", чтобы просто программа работала. По идее он должен быть равным проинтерполированным значениям "PilotEstimation". Как правильно провести эту интерполяцию (линейная)?
Застрял на вроде бы не сложном вопросе. Прошу помочь.
Заранее спасибо.