Скачиваний:
54
Добавлен:
01.05.2014
Размер:
447.49 Кб
Скачать

Текст программы

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');

Соседние файлы в папке Курсовые по ЦОС