Курсовые по ЦОС / kurs
.docТекст программы
Fs=128; % частота дискретизации
T=4; % время реализации
n=512; % длина реализации
indx=(0:n-1); % вектор целых чисел от 0 до 511
% генерация входной последовательности сигнала
A=500; % амплитуда
t1=(0:277)/Fs; % шаг дискретизации для 1 подпоследовательности
t2=(278:395)/Fs; % шаг дискретизации для 2 подпоследовательности
t3=(396:478)/Fs; % шаг дискретизации для 3 подпоследовательности
t4=(479:511)/Fs; % шаг дискретизации для 4 подпоследовательности
y1=A*sin(3*t1*2*pi); % 1 подпоследовательность (41 период)
y2=A*sin(7*t2*2*pi); % 2 подпоследовательность (41 период)
y3=A*sin(10*t3*2*pi); % 3 подпоследовательность (41 период)
y4=A*sin(25*t4*2*pi); % 4 подпоследовательность (41 период)
t=[t1 t2 t3 t4]; % шаг дискретизации
y=[y1 y2 y3 y4]; % входной сигнал
figure(1);
clf, plot(t,y);
grid on;
ylabel('Amplitude (mkV)');
xlabel('Time');
title('Input signal');
% реальный сигнал
fid=fopen('C:\Documents and Settings\Dinara\Рабочий стол\ЦОС\kursov\Signal.D05','r');
yf=fread(fid,n,'bit16',16);
fclose(fid);
figure(2);
clf,plot(t,yf);
grid on;
ylabel('Amplitude (mkV)');
xlabel('Time');
title('Real signal');
% реализация спектрального анализа с использованием БПФ
format long e;
step=indx(1:(n/2))*(1/T);
% треугольное окно
window1=triang(n);
%косинусоидальное окно
q=(1:n/4);
v1=[(n./(2*q)-1)];
v2=[n./(2*q) n-(n./(2*q))-1];
v3=[n-(n./(2*q))];
v=[v1 v2 v3];
d1=0.5*(1-cos(2*pi*v1/n));
d2=ones(1,n/2);
d3=1/2*(1-cos(2*pi*v3/n));
window2=[d1 d2 d3];
% спектр входного сигнала с использованием треугольного окна
FT=fft(window1.*y');
FT=FT(1:n/2);
figure(3);
clf, plot(step,abs(FT));
axis([0 35 0 max(abs(FT))]);
ylabel('Magnitude');
xlabel('Frequency (Hertz)');
title('Power spectrum (triangle win)');
% спектр реального сигнала с использованием треугольного окна
FT=fft(window1.*yf);
FT=FT(1:n/2);
figure(4);
clf, plot(step,abs(FT));
axis([0 35 0 max(abs(FT))]);
ylabel('Magnitude');
xlabel('Frequency (Hertz)');
title('Power spectrum of real signal (triangle win)');
% спектр входного сигнала с использованием конусоидального окна
FT=fft(window2.*y);
FT=FT(1:n/2);
figure(5);
clf, plot(step,abs(FT));
axis([0 35 0 max(abs(FT))]);
ylabel('Magnitude');
xlabel('Frequency (Hertz)');
title('Power spectrum (cos win)');
% спектр реального сигнала с использованием конусоидального окна
FT=fft(window2.*yf');
FT=FT(1:n/2);
figure(6);
clf, plot(step,abs(FT));
axis([0 35 0 max(abs(FT))]);
ylabel('Magnitude');
xlabel('Frequency (Hertz)');
title('Power spectrum of real signal (cos win)');
% проектирование и реализация ЦФ
Ws=35; % частота пропускания
Wn = (Ws/Fs)*2; % частота среза
len = 21; % длина фильтра
b = FIR1(len, Wn); % проектирование НЧ-фильтра
% с окном Хэмминга
[H,F] = freqz(b,1,n,Fs);
figure(7);
clf, plot (F,abs(H));
ylabel('Magnitude')
xlabel('Frequency (Hertz) ')
title('Filter Response')
% фильтрация входного сигнала
format long e
fily=filter(b,1,y);
figure(8);
clf, plot(t,fily);
ylabel('Amplitude (mkV)');
xlabel('Time');
title('Input signal after filtration');
% спектр отфильтрованного входного сигнала
FT=fft(window1.*fily');
FT=FT(1:n/2);
figure(9);
clf, plot(step,abs(FT));
axis([0 35 0 max(abs(FT))]);
ylabel('Magnitude');
xlabel('Frequency (Hertz)');
title('Power spectrum after filtration');
% фильтрация реального сигнала
filyf=filter(b,1,yf');
figure(10);
clf, plot(t,filyf);
ylabel('Amplitude (mkV)');
xlabel('Time');
title('Real signal after filtration');
% спектр отфильтрованного реального сигнала
FT=fft(window1.*filyf');
FT=FT(1:n/2);
figure(11);
clf, plot(step,abs(FT));
axis([0 35 0 max(abs(FT))]);
ylabel('Magnitude');
xlabel('Frequency (Hertz)');
title('Power spectrum of real signal after filtration');