|
1. Двоичная система с частотным разделением каналов
Диапазон , - частота Найквиста, делится на поддиапазонов шириной . Каждому поддиапазону соответствует полосовой фильтр с центральной частотой , , - частоты среза, . Каждый фильтр описывается весовой функцией . Двоичные сигналы задаются как синусоиды с (поднесущей) частотой и прямоугольной огибающей длительностью : si=rectpuls(t-T/2,T).*sin(2*pi*fi*t). Сообщение - сигнал
, . (1)
Дискретизация во времени приводит непрерывные сигналы к векторам , сигнал - к вектору , весовые функции – векторам .
Декодирование сигнала базируется на реакциях фильтров, вычисляемых в каждом канале дискретной свёрткой
(2)
Например, при и кГц полосы пропускания каналов можно назначить равными кГц:
d=1 % отношение сигнал - шум
Fs=600e+003 % частота дискретизации 600 кГц
Fn=Fs/2 % частота Найквиста
n=64 % число отсчётов
dt=1/Fs % интервал дискретизации, dt=1/600000
df=1/n/dt
f=0:df:(n-1)*df % ось частоты от 0 до 63/64*Fs
T=(n-1)*dt % длительность сигнала, T=63*dt
t=0:dt:T; % ось времени
% частоты поднесущих, Гц
f1=13500;f2=45000;f3=81000;f4=120000;f5=159000;f6=198000;f7=237000;
f8=276000
Y=[-1 -1 -1 -1 -1 -1 1 1] % сообщение [0 0 0 0 0 0 1 1]
% сигнал (рис. 1)
s=(-rectpuls(t-T/2,T).*sin(2*pi*f1*t)-rectpuls(t-T/2,T).*sin(2*pi*f2*t)-rectpuls(t-T/2,T).*sin(2*pi*f3*t)-rectpuls(t-T/2,T).*sin(2*pi*f4*t)-...
rectpuls(t-T/2,T).*sin(2*pi*f5*t)-rectpuls(t-T/2,T).*sin(2*pi*f6*t)+rectpuls(t-T/2,T).*sin(2*pi*f7*t)+rectpuls(t-T/2,T).*sin(2*pi*f8*t))/4*d;
plot(t,s)
pause
Сигнал одного из сообщений – на рис. 1. Сумма (1) делится на 4, чтобы амплитуда максимальных выбросов сигнала соответствовала значению отношения сигнал – шум.
Рис. 1. Сигнал сообщения [0 0 0 0 0 0 1 1]
Рис. 2. Спектр сигнала сообщения
Спектр сигнала (рис. 2, 3))
[H,w]=freqz(s); % 512 значений на оси от 0 до pi
ff=w*Fn/pi; % 512 значений на оси от 0 до Fn в Гц
GS=abs(H); % спектр сигнала
plot(ff,GS)
pause
имеет явно выраженный полосовой характер.
H=fft(s,n); % спектральная функция сигнала
G=abs(H) % спектр сигнала
plot(f,G)
pause
Рис. 3. Спектр сигнала, рассчитанный БПФ
Каналы задаются фрагментом
% характеристики каналов
[b,a]=cheby1(5,0.3,[0.0001 0.09]); % первый канал, F1=0.3кГц, F2=27кГц
h1=impz(b,a,n,Fs); % весовая функция
hh1=h1';
[HH,f]=freqz(b,a,n,'whole',Fs); % передаточная функция
GH1=abs(HH); % АЧХ
[b,a]=cheby1(5,0.3,[0.1 0.20]); % второй канал, F1=30кГц, F2=60кГц
h2=impz(b,a,n,Fs);
hh2=h2';
[HH,f]=freqz(b,a,n,'whole',Fs);
GH2=abs(HH);
[b,a]=cheby1(5,0.3,[0.22 0.32]); % третий канал, F1=66кГц, F2=96кГц
h3=impz(b,a,n,Fs);
hh3=h3';
[HH,f]=freqz(b,a,n,'whole',Fs);
GH3=abs(HH);
[b,a]=cheby1(5,0.3,[0.35 0.45]); % четвёртый канал, F1=105кГц, F2=135кГц
h4=impz(b,a,n,Fs);
hh4=h4';
[HH,f]=freqz(b,a,n,'whole',Fs);
GH4=abs(HH);
[b,a]=cheby1(5,0.3,[0.48 0.58]); % пятый канал, F1=144кГц, F2=174кГц
h5=impz(b,a,n,Fs);
hh5=h5';
[HH,f]=freqz(b,a,n,'whole',Fs);
GH5=abs(HH);
[b,a]=cheby1(5,0.3,[0.61 0.71]); % шестой канал, F1=183кГц, F2=213кГц
h6=impz(b,a,n,Fs);
hh6=h6';
[HH,f]=freqz(b,a,n,'whole',Fs);
GH6=abs(HH);
[b,a]=cheby1(5,0.3,[0.74 0.84]); % седьмой канал, F1=222кГц, F2=252кГц
h7=impz(b,a,n,Fs);
hh7=h7';
[HH,f]=freqz(b,a,n,'whole',Fs);
GH7=abs(HH);
[b,a]=cheby1(5,0.3,[0.87 0.97]); % восьмой канал, F1=261кГц, F2=291кГц
h8=impz(b,a,n,Fs);
hh8=h8';
[HH,f]=freqz(b,a,n,'whole',Fs);
GH8=abs(HH);
plot(f,GH1,f,GH2,f,GH3,f,GH4,f,GH5,f,GH6,f,GH7,f,GH8)
pause
zzz=zeros(1,n)
plot(t,h1,t,h5,t,zzz)
pause
АЧХ каналов, соответствующие спектрам сигналов (рис. 2, 3) – на рис. 4. Примеры весовых функций – на рис. 5. Весовые функции – затухающие гармонические функции с частотой, равной поднесущей частоте канала .
Рис. 4. АЧХ каналов
Рис. 5. Весовые функции первого и пятого каналов
АЧХ каналов в идеальном случае не должны пересекаться, то есть весовые функции каналов, а также сигналы на их выходах в идеале ортогональны – непересекающиеся в частотной и временной областях (на полубесконечном интервале времени от 0 до ). В данном случае фрагмент
h=[hh1; hh2; hh3; hh4; hh5; hh6; hh7; hh8]
eh=h*h'
pause
даёт матрицу, близкую к диагональной:
eh = 0.0845 -0.0058 -0.0001 -0.0000 0.0000 -0.0000 -0.0000 0.0000
-0.0058 0.1014 0.0008 0.0000 0.0000 -0.0000 -0.0000 0.0000
-0.0001 0.0008 0.1023 0.0005 -0.0000 -0.0000 -0.0000 0.0000
-0.0000 0.0000 0.0005 0.1025 0.0005 -0.0000 -0.0000 -0.0000
0.0000 0.0000 -0.0000 0.0005 0.1025 0.0005 -0.0000 -0.0000
-0.0000 -0.0000 -0.0000 -0.0000 0.0005 0.1024 0.0005 -0.0000
-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0005 0.1020 0.0005
0.0000 0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0005 0.0990
Сигналы на выходах каналов, рассчитанные свёрткой (2)
y1=filter(hh1,1,s);
y2=filter(hh2,1,s);
y3=filter(hh3,1,s);
y4=filter(hh4,1,s);
y5=filter(hh5,1,s);
y6=filter(hh6,1,s);
y7=filter(hh7,1,s);
y8=filter(hh8,1,s);
yy=[y1;y2;y3;y4;y5;y6;y7;y8];
ey=yy*yy'
plot(t,y1,t,y5) % рис. 6
pause
близки к ортогональным:
ey = 1.4143 0.0589 0.0453 0.0108 -0.0140 -0.0213 0.0111 -0.0160
0.0589 1.1767 -0.0669 -0.0099 0.0209 0.0274 -0.0134 0.0202
0.0453 -0.0669 1.1192 0.0432 0.0222 0.0076 0.0006 0.0055
0.0108 -0.0099 0.0432 1.1007 0.0577 0.0441 -0.0169 0.0271
-0.0140 0.0209 0.0222 0.0577 1.1422 0.0677 -0.0312 0.0284
-0.0213 0.0274 0.0076 0.0441 0.0677 1.2633 -0.0317 -0.0022
0.0111 -0.0134 0.0006 -0.0169 -0.0312 -0.0317 1.2256 0.0930
-0.0160 0.0202 0.0055 0.0271 0.0284 -0.0022 0.0930 1.3260
Отличия матриц и от диагональных объясняются неидеальностью АЧХ каналов (рис. 4).
Рис. 6. Выходные сигналы первого и пятого каналов
Сравнением рис. 6 и рис. 5 можно заметить, что выходной сигнал воспроизводит весовую функцию с искажениями: частоты совпадают, но наблюдаются задержки сигналов, достигающие половины периода. Это свойство определяет способ декодирования: выходные сигналы умножаются на функции или :
y1=filter(hh1,1,s).*cos(2*pi*f1*t);
y5=filter(hh5,1,s).*sin(2*pi*f5*t);
plot(t,y1,t,y5)
pause
Рис. 7. Выходные сигналы каналов
Рис. 7 показывает, что результаты умножения – практически однополярные функции. Следовательно, для декодирования следует их проинтегрировать (дискретные функции просуммировать) и определить знак результата:
N=10000
z=0
for j=1:N
ss=d*s+randn(1,n); % сигнал + шум
% декодирование
y1=-sign(sum(filter(hh1,1,ss).*cos(2*pi*f1*t)));
y2=sign(sum(filter(hh2,1,ss).*sin(2*pi*f2*t)));
y3=sign(sum(filter(hh3,1,ss).*sin(2*pi*f3*t)));
y4=sign(sum(filter(hh4,1,ss).*sin(2*pi*f4*t)));
y5=sign(sum(filter(hh5,1,ss).*sin(2*pi*f5*t)));
y6=sign(sum(filter(hh6,1,ss).*sin(2*pi*f6*t)));
y7=sign(sum(filter(hh7,1,ss).*sin(2*pi*f7*t)));
y8=sign(sum(filter(hh8,1,ss).*cos(2*pi*f8*t)));
y=[y1;y2;y3;y4;y5;y6;y7;y8];
z=z+fix(Y*y/8);
end
P=z/N % вероятность правильного декодирования сообщения
Зависимость вероятности правильного декодирования сообщения [0 0 0 0 0 0 1 1]
от отношения сигнал – шум – в табл. 1 и на рис. 8.
1.00 | 1.20 | 1.35 | 1.50 | 1.70 | 1.85 | 2.00 | 2.30 | 2.50 | 3.00 | |
0.324 | 0.468 | 0.569 | 0.670 | 0.784 | 0.842 | 0.891 | 0.957 | 0.974 | 0.995 |
Рис. 8. Вероятность правильного декодирования сообщения
Правило декодирования сигнала - го разряда формально записывается
, ,
- вектор сигнала на выходе - го канала, - вектор значений функции или . Вектор подбирается в процессе настройки декодирования.
2. Двоичная система с разделением по форме сигналов
Диапазон , - частота Найквиста, делится на поддиапазонов шириной . Каждому поддиапазону соответствует полосовой фильтр с весовой функцией , . Двоичные сигналы задаются как , плюс – единица - го разряда, минус – ноль. Передаётся сигнал
, .
Дискретизация во времени приводит непрерывные сигналы к векторам , сигнал - к вектору .
Пусть сигнал маскируется белым шумом . Тогда декодирование сигнала сводится к вычислению произведения
, (1)
- матрица вектор – столбцов, . Знак
-
- результат передачи.
2.1. Шум отсутствует
m=8 % число каналов
Fs=400e+003 % частота дискретизации 400 кГц
Fn=Fs/2 % частота Найквиста
n=64 % число отсчётов
dt=1/Fs % интервал дискретизации во времени ()
t=0:dt:(n-1)*dt; % ось времени
f1=0.001 % нижняя частота среза (f1=0.001Fn=200 Гц)
f2=0.125 % верхняя частота среза (f2=0.125Fn=25 кГц)
[b,a]=cheby1(5,0.5,[f1,f2]) % полосовой фильтр первого канала
h1(1,:)=impz(b,a,n,Fs/2); % весовая функция
H=fft(h1) % БПФ
G1=abs(H); % АЧХ
df=Fs/n % интервал дискретизации по частоте (6250 Гц)
f=0:df:(n-1)*df; % ось частоты
subplot(2,1,1),stem(t,h1)
subplot(2,1,2),plot(f,G1) % рис.1
pause
f1=0.125 % нижняя частота среза (f1=25 кГц)
f2=0.250 % верхняя частота среза (f2=50 кГц)
[b,a]=cheby1(5,0.5,[f1,f2]) % полосовой фильтр второго канала
h2(1,:)=impz(b,a,n,Fs/2); % весовая функция
H=fft(h2)
G2=abs(H);
df=Fs/n
f=0:df:(n-1)*df;
subplot(2,1,1),stem(t,h2)
pause
f1=0.875 % нижняя частота среза (f1=175 кГц)
f2=0.999 % верхняя частота среза (f2= 199.8 кГц)
[b,a]=cheby1(5,0.5,[f1,f2]) % полосовой фильтр четвёртого канала
h3(1,:)=impz(b,a,n,Fs/2);
H=fft(h3);
G3=abs(H);
df=Fs/n
f=0:df:(n-1)*df;
subplot(2,1,1),stem(t,h3)
subplot(2,1,2),plot(f,G1,f,G3) % рис.3
Рис. 1. АЧХ первого канала
Рис. 2. АЧХ первого и второго каналов
Рис. 3. АЧХ первого и восьмого каналов
Число отсчётов достаточно для воспроизведения весовых функций на интервале с, что соответствует скорости передачи кбайт/с.
Пример работы формулы (1):
s=h1+h2
y=s*h3'
y=s*h2'
y=s*h1'
y = 3.1064e-005
y = 0.1100
y = 0.1069
Видно, что энергия сигналов – весовых функций разная, поэтому их следует нормировать.
Все восемь каналов:
% восемь весовых функций
f1=0.001;f2=0.125 % частоты среза первого канала
[b,a]=cheby1(5,0.5,[f1,f2])
hh=impz(b,a,n,Fn);
k=1/sqrt(hh'*hh)
h(1,:)=k*hh(:,1) % нормированная весовая функция первого канала
f1=0.875;f2=0.999 % частоты среза восьмого канала
[b,a]=cheby1(5,0.5,[f1,f2])
h(8,:)=impz(b,a,n,Fn);
k=1/sqrt(h(8,:)*h(8,:)')
h(8,:)=k*h(8,:) % нормированная весовая функция восьмого канала
for i=2:7
f1=0.125*(i-1);
f2=0.125*i;
[b,a]=cheby1(5,0.5,[f1,f2])
hh=impz(b,a,n,Fn);
k=1/sqrt(hh'*hh);
hh=k*hh;
h(i,:)=hh';
end
s=h % нормированные сигналы - матрица (8 X 64)
e=s*h' % матрица произведений
pause
Матрица
e = 1.0000 -0.1115 0.0002 0.0003 0.0004 0.0004 0.0003 -0.0001
-0.1115 1.0000 -0.1296 -0.0022 -0.0017 -0.0014 -0.0013 0.0003
0.0002 -0.1296 1.0000 -0.1308 -0.0023 -0.0017 -0.0014 0.0004
0.0003 -0.0022 -0.1308 1.0000 -0.1311 -0.0023 -0.0017 0.0004
0.0004 -0.0017 -0.0023 -0.1311 1.0000 -0.1308 -0.0022 0.0003
0.0004 -0.0014 -0.0017 -0.0023 -0.1308 1.0000 -0.1296 0.0002
0.0003 -0.0013 -0.0014 -0.0017 -0.0022 -0.1296 1.0000 -0.1115
-0.0001 0.0003 0.0004 0.0004 0.0003 0.0002 -0.1115 1.0000
близка к единичной, т. е. весовые функции образуют почти ортонормированную систему. Таким образом, если АЧХ каналов не пересекаются, весовые функции ортогональны. Другими словами, идеальной системе с частотным разделением соответствует идеальная система с разделением по форме сигналов. Например, четыре полосовых фильтра Чебышева с кГц имеют слабо пересекающиеся АЧХ (рис. 4) и весовые функции (рис. 5).
Рис. 4. АЧХ
Рис. 5. Весовые функции
Им соответствует единичная матрица
e = 1.0000 -0.0000 0.0000 -0.0000
-0.0000 1.0000 -0.0000 -0.0000
0.0000 -0.0000 1.0000 0.0000
-0.0000 -0.0000 0.0000 1.0000
Множество полосовых фильтров порождает ортонормированную на полубесконечном интервале систему весовых функций.
Формирование и декодирование сообщений:
H1=sum(s)-2*s(1,:)-2*s(3,:) % сообщение [0 1 0 1 1 1 1 1]
H2=-sum(s) % сообщение [0 0 0 0 0 0 0 0]
y1=H1*h' % формула (1)
y2=H2*h' % формула (1)
A1=sign(y1) % декодирование
A2=sign(y2) % декодирование
z=zeros(1,n);
subplot(2,1,1),plot(t,H1,t,z) % рис. 6
hold on
stem(t,H1)
subplot(2,1,2),plot(t,H2,t,z) % рис. 6
hold on
stem(t,H2)
pause
Рис. 6 показывает, что суммирование нормированных сигналов приводит к формированию сообщений с разной энергией. Действительно, формула (1) даёт результат
y1 = -1.1105 1.2348 -1.2657 0.9936 0.7365 0.7375 0.7548 0.8895
y2 = -0.8900 -0.7527 -0.7348 -0.7326 -0.7326 -0.7348 -0.7527 -0.8900,
декодирующийся, тем не менее, правильно:
A1 = -1 1 -1 1 1 1 1 1
A2 = -1 -1 -1 -1 -1 -1 -1 -1.
Рис. 6. Сообщения
2.2. Сообщения маскируются белым шумом
for i=1:8
k(i)=1/sqrt(s(i,:)*s(i,:)');
s(i,:)=k(i)*s(i,:); % нормировка сигналов
end
e=s*h'
pause
H0=[-1 -1 1 -1 1 1 -1 1] % сообщение
d=1.5 % отношение сигнал - шум
ss=d*(-s(1,:)-s(2,:)+s(3,:)-s(4,:)+s(5,:)+s(6,:)-s(7,:)+s(8,:)) % сообщение
ax=1 % размах шума (дисперсия = ax^2)
N=10000
p=0
for i=1:N
x=ax*randn(1,n); % белый шум
S=ss+x;
sy=sign(S*h'); % декодирование
y=sy.*H0;
p=p+sum(y);
end
P=abs(p)/N/8 % вероятность правильного декодирования
На рис. 7: 1 – ,
2 - ,
3 - .
Рис. 7. Вероятность правильного декодирования сообщений
Дата добавления: 2015-08-29; просмотров: 32 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
«Словарь чувств, эмоциональных состояний» | | | Г.П.Могилевская. Дети и деньги 1 страница |