Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРИЛОЖЕНИЕ 1 Лабораторный практ.doc
Скачиваний:
13
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

Порядок выполнения работы

  1. Зададим исходные данные: частоту среза fc НЧ фильтра, минимальную fwmin и максимальная fwmax частоты шума; fd=4fwmax -частоту дискретизации fd; T=1/fd - величину дискрета T; N=500 - число дискретов сигналов N.

  2. Сформируем псевдобелый шум x(n) в полосе пропускания НЧ фильтра.

  3. Сформируем высокочастотный псевдобелый шум v(n), подавляемый НЧ фильтром.

  4. Сформируем: полезный сигнал + шум и обучающее множество.

  5. Сформируем нейронную сеть.

  6. Обучим нейронную сеть.

  7. Для тестирования сети зададим полезный сигнал - полином 2-го порядка.

  8. Сформируем аддитивную смесь полезного полиномиального сигнала и шума.

  9. Проведем моделирование работы сети.

  10. Выведем результаты на экран.

В качестве примера была синтезирована нейронная сеть с количеством элементов задержки равным 20. В качестве обучающего множества входных сигналов использовалась одна дискретная последовательность длиной N=500 отсчетов, представляющая собой полезный сигнал - псевдо-белый шум в ограниченном диапазоне частот от 0 до 30 герц, на который аддитивно была наложена высокочастотная помеха. Полезный сигнал был получен с помощью ряда Фурье, коэффициенты которого выбирались случайным образом в соответствии с нормальным законом распределения.

На Рис.12 представлены две кривые - полезный сигнал (красный) и полезный сигнал, искаженный высокочастотной помехой (синий).

Рис.12.

Далее нейронная сеть обучалась, причем на вход сети подавался полезный сигнал и высокочастотная помеха. В качестве эталонного сигнала был взят полезный сигнал.

Качество работы сети проверялось путем подачи на вход сети полиномиального сигнала, искаженного высокочастотным шумом. На Рис.13 приведены полезный полиномиальный (красный) и зашумленный сигнал (синий).

Рис.13.

На Рис.14 приведены результаты работы цифрового фильтра, реализованного с помощью нейронной сети. На этом рисунке представлены две кривые – искаженный полезный сигнал, поступающий на вход сети (синий) и сигнал на ее выходе (красный). Для оценки качества работы фильтра была рассчитана относительная ошибка в соответствии с выражением

,

где и - соответственно реальный и идеальный сигналы на выходе нейронной сети.

Рис.14.

Необходимо отметить, что если на входе фильтра ошибка составила 17,2%, то на его выходе ошибка уменьшилась до 7,5%.

Программа моделирования нч фильтра на основе нейронной сети

fc=30; % Задание исходных данных: частоты среза fc НЧ фильтра

fwmin=50; % Минимальная fwmin и максимальная fwmax частоты шума,

fwmax=250;

fd=4*fwmax; % Частота дискретизации fd

T=1/fd; % Величина дискрета T

N=500; % Число дискретов сигналов N

for k=1:fc % Формирование псевдобелого сигнала x(n) в полосе пропускания НЧ фильтра

A=randn(1,1);

B=randn(1,1);

for n=1:N

y(k,n)=A*cos(2*pi*k*n*T)+B*sin(2*pi*k*n*T));

end

end

for n=1:N

x1(n)=0;

end

for n=1:N

for k=1:fc

x1(n)=x1(n)+y(k,n);

end

end

K1=10; % Задание нормирующего коэффициента из условия σ (x) =1.

for n=1:N

x(n)=x1(n)/K1;

end

for k=fwmin:fwmax % Формирование высокочастотного псевдобелого шума v(n), подавляемого НЧ фильтром.

C=randn(1,1);

D=randn(1,1);

for n=1:N

z(k,n)=C*cos(2*pi*k*n*T)+D*sin(2*pi*k*n*T));

end

end

for n=1:N

v1(n)=0;

end

for n=1:N

for k=fwmin:fwmax

v1(n)=v1(n)+z(k,n);

end

end

K2=40; % Задание нормирующего коэффициента из условия σ (v) =0.5.

for n=1:N

v(n)=v1(n)/K2;

end

for n=1:N % Формирование полезного сигнала + шум.

f(n)=x(n)+v(n);

end

P1=con2seq(f); % Формирование обучающего множества

T1=con2seq(x);

net=newlin([-2 2],1,[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20],0.001); % Формирование нейронной сети

net=train(net,P1,T1); % Обучение нейронной сети

a=0.005; b=-0.25; c=0.2 % Задание значений коэффициентов полинома

K=1000 %Нормирующий коэффициент выбирается из условия 1≤s(n)≤2

for n=1:N

s(n)=(a*n^2-b*n+c)/K; % Полезный сигнал - полином 2-го порядка

end

for n=1:N

s1(n)=s(n)+v(n); % Полезный сигнал + шум

end

plot(s1), grid % График полезного сигнала и шума

P2=con2seq(s1); % % Формирование входного множества сети

w=sim(net,P2); % Моделирование нейронной сети

hold on

plot(cat(2,w{:}),'r'),grid % Сигнал на выходе нейросети (красный)

plot(s1,'g'), grid % Сигнал на входе нейросети (зеленый)

Заметим, что на практике задачу синтеза цифрового нерекурсивного фильтра целесообразнее решать не с помощью нейронной сети, а так, как это было показано выше в разделе синтез нерекурсивных фильтров. В противном случае, для минимизации ошибки на выходе фильтра, потребуется очень большое количество элементов задержки и весовых коэффициентов сети.

Таблица 1 индивидуальных заданий студентам.

№ вар

1

2

3

4

5

6

7

8

9

10

fc

10

15

20

30

25

20

15

25

10

15

fwmin

20

25

30

40

45

50

25

40

30

25

fwmax

200

250

300

400

450

500

250

400

300

250

N

400

500

300

400

450

500

300

600

400

500

r-колич. элем. задерж.

20

15

25

15

10

25

15

10

20

30

a

0,006

0.002

0.001

0.003

0.001

0.002

0.006

0.009

0.001

0.002

b

-0.25

-0.2

-0.25

-0.35

-0.1

-0.2

-0.35

-0.1

0.25

0.3

c

0.1

0.2

0.3

0.4

0.5

0.4

0.3

0.2

0.1

0.5