Материал: курсач ОиФС НК (черновик)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

1 Исследование параметров случайного процесса

Определение случайного процесса, статистические характеристики случайного процесса.

    1. Расчет числовых характеристик

Оценка для математического ожидания дискретного сигнала

x=load('Data2.txt');

m=mean(x);

Оценка дисперсии рассчитывается по выражению

D=var(x);

Среднее квадратическое отклонение σ

s=(D)^(1/2);

Энергия сигнала по временной области

for i=1:305736

E=E+(x(i))^2

End

Длительность сигнала Т

f=44100;

b=1/f;

n=305736;

T=b*(n-1);

time=0:b:T

H=m+s;

L=m-s;

plot(time, x);

hold on;

plot([time(1) time(end)],[m m],'g',[time(1) time(end)],[H H], 'r',[time(1) time(end)],[L L],'r');

legend('Исходный сигнал','оценка m_x','оценка \sigma');

hold off;

В таблице 1.1 приведены результаты расчета параметров исходного сигнала по выражениям

Таблица 1.1 – Числовые параметры исходного сигнала

Параметр сигнала

Значение

Оценка математического ожидания

-0.0035

Оценка дисперсии

0.0115

Оценка СКО

0.1073

Энергия сигнала Е

3.5205e+003

Длительность сигнала Т, с

6.9328

Рисунок 1.1– График исходного сигнала

    1. Спектральный анализ сигнала

Амплитудный спектр сигнала

Фазовый спектр сигнала

Y=fft(x);

f=1/T*(0:n/2-1);% ось частот

Y=2*abs(Y(1:n/2))/n; % Модуль |Y|

plot(f,Y);

xlim([0*10^3 6*10^3]);

Рисунок 1.2 – График амплитудного спектра

По графику 1.2 определяем точное значение максимума для выделенных частот и значения максимумов. Полученные значения занесли в таблицу 1.2.

Таблица 1.2 – Таблица гармоник полезного сигнала

Значение, Гц

Амплитуда |Y|

1568

0,01039

2105

0,01228

2 Выбор метода предварительной обработки сигнала

As=50;

Ap=0.6;

dfp=60;

dfs=110;

fc1=1568;

fc2=2105;

flp1=fc1-dfp;

fhp1=fc1+dfp;

fls1=flp1-dfs;

fhs1=fhp1+dfs;

flp2=fc2-dfp;

fhp2=fc2+dfp;

fls2=flp2-dfs;

fhs2=fhp2+dfs;

dp=10^(Ap/20)-1;

ds=10^(-As/20);

Таблица 2.1 – Частоты фильтра

Частота, Гц

Полоса пропускания, Гц

Полоса подавления, Гц

flp

fhp

fls

fhs

f1

1508

1628

1398

1738

F2

2045

2165

1935

2275

Таблица 2.2– Значения отклонений в полосе пропускания и подавления

dp

ds

0.0715

0.0032

2.2 Вычисление коэффициентов фильтра

F=[1398 1508 1628 1738 1935 2045 2165 2275];

A=[0 1 0 1 0];

D=[0.0032 0.0715 0.0032 0.0715 0.0032];

[n, F0, A0, W]=firpmord(F, A, D, 44100);

b_filt=firpm(n, F0, A0, W);

%Построение график АЧХ фильтра:

freqz(b_filt, 1, 1024, 44100);

%Сохранение коэффициентов фильтра:

save('b_filt.mat','b_filt');

%Построение характеристики фильтра в среде матлаб:

in = load('b_filt.mat');

b_filt = in. b_filt;

Af = [0 0 1 1 0 0 0 1 1 0 0];

F = [fls1 flp1 flp1 fhp1 fhp1 fhs1 flp2 flp2 fhp2 fhp2 fhs2];

nf = 1024; % количество точек аппроксимации

[h, w] = freqz(b_filt, 1, nf);

plot(F, Af, 'color', 'r');

hold on;

f = 0:(44100/2)/nf: 44100/2-1;

plot(f, abs(h), 'color', 'b');

hold off;

legend('Идеальный', 'Результат расчета');

% Фильтрация сигнала в среде Matlab:

data = load('Data2.txt'); % считывание исходного сигнала из файла

s_in = data;

k = load('b_filt.mat'); % весовые коэффициенты фильтра хранятся в векторе b_filt

s_out =filtfilt(b_filt, 1, s_in); % фильтрация исходного сигнала

subplot(2,1,1), plot(time, data), grid;

hold on

subplot(2,1,1), plot(time, s_out,'r'), grid;

hold off

Y = fft(s_out);

c=305736

f=1/T*(0:c/2-1);

Y=2*abs(Y(1:c/2))/c;

subplot(2,1,2), plot(f, Y), grid;

Значение, Гц

Амплитуда |Y|

f1

1568

0.01266

f2

2105

0.01497

clear;

clc;

data=load('E:\шукурова\Test-data\fx1836.mat');

fx=data.fx;

fd=data.fd;

k=load('E:\шукурова\b_filt.mat'); % весовые коэффициенты фильтра хранятся в векторе b_filt

N = length(fx); % количество отсчетов исходного сигнала

T = length(fx)/fd; % длительность сигнала, с

s_out = fftfilt(k.b_filt, fx); % фильтрация исходного сигнала

Y = fft(s_out); % Преобразование Фурье

f = 1/T * (0:N/2-1); % Ось частот

Y = 2 * abs(Y(1:N/2)) / N; % Модуль |Y|

df = fd/N; %шаг по оси частот

m1 = max(Y(330*T:400*T));

m2 = max(Y(2000*T:2150*T));

m3 = max(Y(2600*T:2750*T));

M = [m1 m2 m3];

EthL = [0.007 0.011 0.007];

Ethh = [0.0088 0.0143 0.0088];

count = 0;

for i = 1:3

if(M(i)>EthL(i)&& M(i)<Ethh(i))

count = count + 1;

disp (i);

end;

end;

if count ==3

disp ('+');

else

disp ('-');

end;

disp (M);

Источник: https://studfile.net/preview/16692683/