Цитата(Fat Robot @ Jun 12 2013, 13:47)

А что Вы уже сделали самостоятельно? И что у Вас не получается?
Программирую я , признаться, очень паршиво.
Писал подобную программу(скорее,пробовал),более того, на одном курсовике она прокатила.
Сейчас пересмотрел, решил переписать снова,.
Был бы признателен за алгоритмы формирования M-последовательности, или советы разбирающихся.
Нашел в сети такой алгоритм:
CODE
clear
clc
close all
fs=200e6; %Частота дискретизации
ts=1/fs; %Время дискретизации
%--------------------------------------------------------
Esig=1; %Амплитуда сигнала
Td=1e-6; %Длительность дискрета
Faz0=0*pi/180; %Начальная фаза сигнала
tr=0; %Время задержки сигнала
%------------------------------Код Баркера---------------------------------
PSK=[0;0;0;0;0;1;1;0;0;1;0;1;0];
Npsk=length(PSK);
Faz=pi*PSK;
%--------------------------------------------------------------------------
% --------------------------М-последовательность----------------------------
GP1=[1 1 0 1 0 0 1 1]; %Порождающий полином
%
NumReg=length(GP1)-1; %Число регистров формирователя
InSt=zeros(1,NumReg); %Вектор инициализации начального состояния регистра
InSt(end)=1;
Npsk=2^NumReg-1; %Длина последовательности
%
% Создание PN sequence generator object
h=seqgen.pn('GenPoly',GP1,'InitialStates',InSt,'CurrentStates',InSt,'Shift',0,'NumBitsOut',Npsk);
%
PSK=generate(h); %Вектор закона фазовой модуляции
Faz=pi*PSK;
% --------------------------------------------------------------------------
T0=Td*Npsk; %Длительность сигнала
BWpsk=1/Td; %Ширина спектра КФМ
f0=2e6; %Несущая частота сигнала
%--------------------------------------------------------
TwoPiF0=2*pi*f0;
%---------Массивы для непрерывного КФМ сигнала-----------
Npl=5000; %Количество отсчетов непрерывного сигнала
dt=T0/Npl;
timePl=(0:Npl-1).'*dt;
%Импульс с фазовой модуляцией
SigPl=Esig*exp(1j*(TwoPiF0*timePl+Faz0+Faz(floor(timePl/Td)+1)));
tPl=timePl+tr;
%--------------------------------------------------------
Nsig=2^12; %Количество отсчетов сигнала
df=fs/Nsig; %Разрешение анализатора ДПФ по частоте
n=(0:Nsig-1).';
timeD=n*ts; %Время оцифровки сигнала
Sig0=zeros(Nsig,1); %Нулевой массив комплексного сигнала
timeD2=timeD-tr;
nSig=find(0<=timeD2&timeD2<T0); %Оцифровка внутри импульса
timeSig=timeD2(nSig); %Время относительно начала импульса
%Оцифрованный сигнал
Sig0(nSig)=Esig*exp(1j*(TwoPiF0*timeSig+Faz0+Faz(floor(timeSig/Td)+1)));
figure(1)
SetAxis=[0 timeD(Nsig) -1.2*Esig 1.2*Esig];
subplot(2,1,1)
plot(timeD,real(Sig0),'.',tPl,real(SigPl))
axis(SetAxis)
grid on
xlabel('Время, с', 'FontName', 'Arial Cyr')
ylabel('Амплитуда, В', 'FontName', 'Arial Cyr')
title('Реальная составляющая импульса', 'FontName', 'Arial Cyr')
hold on
SetAxis=[0 timeD(Nsig) -1.2*Esig 1.2*Esig];
subplot(2,1,2)
plot(timeD,imag(Sig0),'.',tPl,imag(SigPl))
axis(SetAxis)
grid on
xlabel('Время, с', 'FontName', 'Arial Cyr')
ylabel('Амплитуда, В', 'FontName', 'Arial Cyr')
title('Мнимая составляющая импульса', 'FontName', 'Arial Cyr')
Но не понимаю в коде нескольких моментов-
во-первых, для чего сигнал представлен в комплексном виде?
Если я правильно понимаю алгоритм формирования,то нам нужно генерировать м-последовательность, каждому символу информационной посылки поставить в соответствие период этой послед-сти, промодулировать получившейся последовательностью фазу синусоиды и сложить ее с меандровым колебанием.
я прав,или..?