Document 4867923

advertisement
Авторы курса лекций
Трухин Михаил Павлович,
доцент кафедры теоретических основ радиотехники УГТУ-УПИ,
Иванов Олег Юрьевич,
ст. преп. кафедры теоретических основ радиотехники УГТУ-УПИ
Екатеринбург 2007
Связи реальных сигналов и их моделей
Различные формы представления
одного и того же случайного процесса:
а – дискретный СП; б – непрерывный СП
а
б
Двумерная форма представления
дискретного случайного процесса
«Обрезанное» представление
нестационарного СП
Применение неравенства Чёбышева к
описанию поведения СП
Взаимные связи различных видов СП
Получение реализации нормального
белого шума в системе MATLAB:
а – осциллограмма; б – гистограмма
s = randn(1000, 1);
plot(s)
а
hist(s, 20)
б
Преобразование некоррелированного
набора данных в коррелированный набор:
а – иллюстрация связей между данными;
б – структура алгоритма
Текст М-файла вычисления
коэффициентов формирующего фильтра
по АКФ
function b=firc(r)
% Вычисление КИХ-коэффициентов
% по отсчётам АКФ
% b=firc(r)
% b - коэффициенты КИХ-фильтра
% r - правые отсчёты АКФ R(t),
% r(1)=1 соответствует R(0)
if r(1)= = 0
warning('Первый элемент не ...
должен быть равен 0');
return
else
r=r/r(1);
end
if r(1)<= max(abs(r(2:end)))
warning('КИХ-фильтр не может...
быть построен для такой АКФ');
return
end
%Формирование и решение системы
l=length(r);
c=ones(1,l) /sqrt(l);
b=ones(1,l);
b=fsolve(@syst,c,optimset(...
'Display','off',...
'MaxIter',1000, ...
'TolFun',1e-8),r);
b=b/max(b);
function s=syst(c, r)
l=length(r);
for i=1:l
x=0;
for j=1:l-i+1
x=x+c(j)*c(j+i-1);
end
s(i)=x-r(i);
end
Использование СС-фильтра в качестве
формирующего фильтра:
а – графики СП на входе и выходе ФФ;
б – сравнение заданной и модельной АКФ
4
1
3
0.8
2
0.6
1
-1
-2
ff
0.2
n(t)
0
x(t)
-3
-0.2
-4
-5
0
R ( )
R()
0.4
0
10
20
30
а
40
50
60
-0.4
0
5
10
15
б
20
25
Использование СС-фильтра в качестве
формирующего фильтра: в – текст
программной модели
N=1000;
% Отсчёты
R=[1.0000 0.2702 -0.1387...];
% Запись АКФ
k=length(R);
n=randn(N,1); % Белый шум
b=firc(R);
x=filter(b,1,n); % Выход ФФ
plot(1:60,n(1:60),...
1:60,x(1:60))
% Вычисление реальной АКФ
% в 20 точках
Rff=xcorr(x,20);
%Построение совместного графика
plot(c(21:end)/max(c))
hold on
plot(R)
hold off
Формирующий фильтр, созданный на основе
отсчётов дискретной импульсной
характеристики
3
2.5
АКФ модельная
АКФ заданная
2
АКФ "белого шума"
1.5
1
0.5
0
0
5
10
15
S1=randn(1000,1); %Белый шум
S2=filter(G,1,S1); % G - ИХ
Ry=xcorr(S2, K)/N;
Rx=xcorr(S1, K)/N;
Rc=conv(G, fliplr(G));
stem(1:K,fliplr(Rc(1:K)), 'b')
hold on
stem(1:K,Ry(K+1:2*K),'r')
bar(1:K,Rx(K+1:2*K),'g')
hold off
Формирование коррелированного
набора данных в АР-фильтре:
а – иллюстрация связей между данными;
б – структура алгоритма
Моделирование
формирующего БИХ-фильтра
N=10000;
K=20;
g=cos(2*pi*(0:K-1)/K).*...
exp(-3*(0:K-1)/K);
g1=fliplr(g);
r=conv(g,g1);
R=r(K:2*K-1)';
a=levinson(R,K-1);
n=randn(N,1);
x=filter(1, a, n);
Rx1=xcorr(x, K)/N;
Rx=Rx1(K+1:2*K);
g=[R Rx]
stem(g)
Sigma=sqrt(sum((R-Rx).^ 2))
Формирование коррелированного
набора данных в АРСС-фильтре:
а – иллюстрация связей между данными;
б – структура алгоритма
Сравнение трёх вариантов моделей
дискретных ФФ с прямоугольной АЧХ:
а – графики АЧХ; б – скрипт-файл моделирования
n1=50;
n2=50;
n3=10;
f=linspace(0,1,20);
m=[ones(1,10) zeros(1,10)];
b1=fir2(n1,f,m);
b2=remez(n2,f,m);
[b3,a3]=yulewalk(n3,f,m);
w1=freqz(b1,1);
w2=freqz(b2,1);
w3=freqz(b3,a3);
plot(linspace(0,1,512),...
[abs(w1),abs(w2), abs(w3),...
[ones(256,1);zeros(256,1)]])
Моделирование СП с равномерным
распределением и заданной АКФ:
а – М-функция модели; б – графики АКФ;
в – скрипт-файл моделирования
function y=Ravn1(N, R, a)
% y = Ravn1(N, R, a)
if nargin = = 2
a=1;
elseif a<0
a = - a;
elseif a = = 0
a = 1;
end
x = randn(N,1);
R=3*R/a^2;
Rn = 2*sin(pi/6*R);
a1 = levinson(Rn, 8);
xn = filter(1,a1,x);
y=sqrt(2)*a*...
(normcdf(xn,0,1) - 0.5);
а
10
5
Заданная АКФ
0
Модельная АКФ
-5
0
10
20
30
40
50
б
K=50; a=5;
Ry=a^2/3*cos(4*pi*(0:K-1)/K).*exp(-3*(0:K1)/K);
y = Ravn1(1000, Ry, 5); plot(1:50,Ry)
Rm=xcorr(y,50)/length(y); hold on,
plot(1:50,Rm(51:100)),hold off
в
Результаты моделирования
показательного СП:
а – энергетический спектр; б – АКФ
1
1.2
0.9
1
0.8
0.7
0.8
Wy()=1/(1+2)
0.6
Ry()=exp(-||)
0.6
0.5
0.4
0.4
0.3
0.2
0.2
0
0.1
0
0
2
6
4
а
8
10 
-0.2
0
0.2
0.4
0.6
б
0.8
1

Результаты моделирования
показательного СП:
в – скрипт-файл моделирования
n1=50;
tau=1;
dt=0.1;
K=5;
f=linspace(0,1,20);
R=exp(-f*tau/(2*dt));
a=levinson(R,K-1)
w1=freqz(1,a);
w=linspace(0,1,512)/dt;
S=abs(w1).^2;
w1=w*2^(1/4);
S1=S/S(1);
S2=(1./(1+w1.*w1))';
figure(1)
plot(w,[S1 S2])
CKO1=std(S1-S2)
n1=randn(1000,1);
n2=randn(1000,1);
x1=filter(1,a,n1);
x2=filter(1,a,n2);
y=x1.^2+x2.^2;
Ry1=xcorr(y, mean(y), 20)...
/length(y);
Ry=Ry1(21:40);
R1=exp(-f*tau/dt)';
R2=Ry/Ry(1);
figure(2)
plot(f,[R1 R2])
CKO2=std(R1-R2)
Результаты моделирования релеевского
СП с зависимыми отсчётами:
а – АКФ; б – гистограмма
1
1200
0.9
Ry()=exp(-2/2)
0.8
f(y)=yexp(-y2/2)
1000
0.7
800
0.6
0.5
600
0.4
400
Rmod()
0.3
0.2
200
0.1
0
0
1
2
3
а
4
5

0
0
1
2
3
4
б
5
6
y
Результаты моделирования релеевского
СП с зависимыми отсчётами:
в – М-файл модели; г – скрипт-файл моделирования
function y = Relev1(N,R)
% y = Relev1(N,R)
if min(R) < 0
warning('АКФ задана неверно.');
return
end
sigma=sqrt(4*R(1)/(4-pi));
x=randn(N,2)/sigma;
R1=R/R(1);
R1=2*sqrt(2)*sqrt(sqrt(1+(4...
-pi)/pi*R1)-1);
R1=R1/R1(1);
b1=firc(R1);
xn=filter(b1,1,x);
y = sqrt(xn(:,1).^2+xn(:,2).^2);
в
K=30;
tau=linspace(0,5,K);
Ry=exp(-tau.^2/2);
y = Relev1(10000, Ry);
plot(tau,Ry)
Rm=xcorr(y-mean(y),K)/length(y);
Rm=Rm/max(Rm); hold on
plot(tau,Rm(K+1:2*K),'g')
hold off
г
Структура генератора
негауссовых ССП
Генератор
гауссового
белого шума
x
Формирующий
фильтр
ФФ(b, a)
n
Нелинейный
преобразователь
y = f(n)
y
а – М-функция вычисления АКФ ry ;
б – иллюстрация совпадения
расчётной и экспериментальной АКФ ry
function ry = DwInt(rn)
% ry = DwInt(rn)
l=length(rn);
for i=1:l
if rn(i)==1
rn(i)=0.99;
end
ry(i)=dblquad(@IntEq,-3,
3,-3,3,[ ],[ ],rn(i))/(...
2*pi*sqrt(1-rn(i)*rn(i)));
end
Результаты моделирования
в примере 5.8:
а – график ; б – сравнение АКФ релеевского СП
а
б
Структурная схема двумерного
формирующего фильтра (а) и примеры
модулей коэффициентов передачи (б)
|K(f)| 1
0.8
K11, K22
0.6
K12, K21
0.4
0.2
0
0
f
0.2
0.4
0.6
0.8
1
Результаты моделирования
двумерного нормального СП:
а - входная реализация x(t);
б – выходная реализация без связей y2(t)
3
0.5
y1
y2
x1
x2
2
1
0
0
-1
-0.5
-2
-3
0
20
40
60
а
80
100
-1
0
20
40
60
б
80
100
Результаты моделирования
двумерного нормального СП:
в - выходная реализация со связями y1(t);
г –совместный график реализаций y1(t) и y2(t)
0.5
0.5
y1
y2
0
0
-0.5
-0.5
-1
0
20
40
60
в
80
100
-1
0
20
40
60
г
80
100
Результаты моделирования
двумерного нормального СП:
д – М-файл и скрипт-файл моделирования
function y=ff2dim(A11,B11,A12,B12,A21,B21,A22,B22, x)
% y=ff2dim(A11,B11,A12,B12,A21,B21,A22,B22, x)
y1=filter(B11,A11,x(:,1))+filter(B12,A12,x(:,2));
y2=filter(B21,A21,x(:,1))+filter(B22,A22,x(:,2));
y=[y1 y2];
x=randn(100,2);
A11=[1]; B=[0.0001 0.0050 0.0292 0.0830 0.1452];
B11=[B 0.1733 fliplr(B)];
A12=[2]; B=[-0.0017 -0.0027 0.0081 0.0552 -0.2228]; B12=[B 0.3257 fliplr(B)];
A21=[2];
B21=B12;
A22=[1];
B22=B11;
y1=ff2dim(A11,B11,A12,B12,A21,B21,A22,B22, x);
B12=[0]; B21=[0];
y2=ff2dim(A11,B11,A12,B12,A21,B21,A22,B22, x);
д
Результаты моделирования
в примере 5.7:
а – графики треугольного распределения;
б – М-файл ФПВ f(x)
1
F(x)
f(x)
0.8
0.6
0.4
0.2
0
-1.5
x
-1
-0.5
а
0
0.5
1
1.5
function y = Treugf(x,g)
% y = Treugf(x,g)
G=g(2)-g(1); G2=2/G;
for i=1:length(x)
x1=x(i);
if x1 < g(1)
y(i)=0;
elseif x1 < 0
y(i)=G2*(1-x1/g(1));
elseif x1 < g(2)
y(i)=G2*(1-x1/g(2));
else
y(i)=0;
end
end
б
Результаты моделирования
в примере 5.7:
в – гистограмма реализации;
г – М-файл генератора чисел с треугольным
распределением
function y2=Per12(y1)
% y2=Per12(y1)
% g(1) = -1
% g(2) = 1
r=2*(rand(1)-0.5);
if r < 0
y2=y1+sqrt(-r)-1;
else
y2=y1+1-sqrt(r);
end
1000
N=10000
900
800
700
600
500
400
300
200
100
0
-1
-0.5
0
в
0.5
1
г
Результаты моделирования
в примере 5.7:
д – две реализации марковского процесса;
е – М-функция моделирования
40
% Начальное значение
y(1)=2*(rand(1)-0.5);
% Переход к следующему
% значению СП
for t=2:10000
y(t)=Per12(y(t-1));
30
y1(t)
20
10
0
-10
end
-20
y2(t)
-30
-40
0
t
2000
4000
д
6000
8000
10000
е
Стационарный процесс,
удовлетворяющий условию марковости
3
rand
randn
2
1
0
-1
-2
-3
0
20
end
Конец СП
Начало СП
40
9960
9980
y1(1)=rand(1);
y2(1)=randn(1);
for t=2:10000
y1(t)=-sign(y1(t...
-1))*rand(1);
y2(t)=-sign(y2(t...
-1))*randn(1);
10000
Результаты моделирования
в примере 5.8:
а – график реализации;
б – гистограмма вероятностей состояний цепи
а
б
Результаты моделирования
в примере 5.8:
в – М-файл модели марковской цепи
function Y=Markow(W, n, y0, W0)
% Y=Markow(W, n, y0, W0)
% y0 - начальное состояние
% W - матрица переходов
% n - количество шагов
% W0 - вектор перехода от y0
l = size(W,2);
if nargin < = 3
W0 = ones(1,l)/l;
elseif nargin < = 2
y0 = 1;
elseif nargin == 1
n = 10;
end
Y(1) = y0; Y(2) = stept(W0);
for i = 3:n
Y(i) = stept(W(Y(i-1),:));
end
function s = stept(Pr)
% Pr - вектор вероятностей
l = length(Pr);
x = rand(1);
h = 0;
for i = 1:l
h = h+Pr(i);
if x < h
s = i;
break
end
end
Моделирование процесса с
независимыми приращениями:
а – четыре реализации при;
б – скипт-файл моделирования
а
function y = unimark(n,y0,g)
% y1 - выход
% y0 - вход
% g=[gmin gmax] - границы
if nargin = = 1
g=[-1 1];
y0=rand(1);
elseif nargin = = 2
g=[-1 1];
end
G=g(2)-g(1);
y(1)=y0;
for i=2:n
r=rand(1);
y(i)=y(i-1)+g(1)+G*r;
end
б
Простейшая модель сообщения:
а – схемная реализация;
б – энергетический спектр непрерывной модели
а
б
Простейшая модель сообщения:
в – М-функция дискретной модели;
г – результаты моделирования
function x=Model1(alpha, n)
% x=Model1(alpha, n)
l=length(n);
a1=1-alpha;
x=zeros(1,l);
for i=2:l
x(i)=a1*x(i-1)+alpha*n(i);
end
в
г
Модель речевого сообщения:
а – схемная реализация;
б – энергетический спектр непрерывной модели
а
б
Модель речевого сообщения:
в – М-функция дискретной модели;
г – результаты моделирования
function x=Model2(alpha1, . . .
alpha2,n)
% x=Model2(alpha1,alpha2,n)
l=length(n);
a1=1-alpha1;
a2=1-alpha2;
x=zeros(2,l);
for i=2:l
n1=alpha1*n(i);
x(1,i)=a1*x(1,i-1)+n1;
x(2,i)=a2*x(2,i-1)- . . .
alpha1*x(1,i-1)+n1;
end
в
г
Модель процесса в телеметрии:
а – схемная реализация;
б – энергетический спектр непрерывной модели
а
б
Модель процесса в телеметрии:
в – М-функция дискретной модели;
г – результаты моделирования
function x=Model3(alpha1, . . .
alpha2,n)
% x=Model3(alpha1,alpha2,n)
l=length(n);
a1=1-alpha1;
a2=1-alpha2;
x=zeros(2,l);
for i=2:l
x(1,i)=a1*x(1,i-1)+ . . .
alpha1*n(i);
x(2,i)=a2*x(2,i-1)- . . .
alpha1*x(1,i-1);
end
в
г
Модель узкополосного процесса:
а – схемная реализация;
б – энергетический спектр схемной и дискретной
модели
а
б
Модель узкополосного процесса:
в – М-функция дискретной модели;
г – результаты моделирования
function
x=Model4(alpha,omega,n)
% x=Model4(alpha,omega,n)
l=length(n);
om2=omega^2;
a2=1-2*alpha;
x=zeros(2,l);
for i=2:l
x(1,i)=a2*x(1,i-1)- . . .
om2*x(2,i-1)
+om2*n(i);
x(2,i)=x(2,i-1)+x(1,i);
end
в
г
Информационное обеспечение лекции
Литература по теме
1. Перегудов Ф.И. Основы системного анализа: учебник
/Ф.И. Перегудов, Ф.П. Тарасенко. 2-е изд Томск: Изд-во НТЛ,
1997. 367 с.
2. Советов Б.Я. Моделирование систем: уч. пособие
/Б.Я. Советов, С.А. Яковлев. М.: Высш. шк., 1998. 319 с.
3. Поршнев С.В. MATLAB 7. Основы работы и программирования:
учебник / С.В. Поршнев. М.: ООО «Бином-Пресс», 2006. 320 с.
4. Быков В.В. Цифровое моделирование в статистической
радиотехнике /В.В. Быков. М.: Сов. радио, 1971. 328 с.
5. Сергиенко А.Б. Цифровая обработка сигналов
/А.Б. Сергиенко. СПб.: Питер, 2002. 608 с.
6. Кельтон В. Имитационное моделирование. КлассикаCS.
/В. Кельтон, А.Лоу. СПб.: Питер; Киев:BHV, 2004. 847 с.
Download