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

3. Генерация входной последовательности сигнала

3.1 Полигармонический сигнал и случайный шум.

Реализуем генерацию полигармонического сигнала средствами программы MatLab и построим график полученного сигнала:

Fs = 128; % частота дискретизации

n = 512; % длина реализации

a = 125; % общая амплитуда равна 500 мкВ

t = (0:n-1)/Fs; % шаг дискретизации

indx = (0:n-1); % вектор целых чисел от 0 до 511

ya=a*cos(3*t*2*pi);

yb=a*cos(7*t*2*pi);

yc=a*cos(10*t*2*pi);

yd=a*cos(25*t*2*pi);

y1 = ya + yb + yc + yd+20;

y1 = y1' ; % транспонируем вектор

clf, plot(t,y1);

grid on;

Xlabel('в р е м я (с е к)');

ylabel('Амплитуда (мкВ)');

title('Полигармонический сигнал');

    1. Реальный сигнал

Введем реальный сигнал из файла. Так как сигнал в файле записан с частотой 256Гц, что в два раза превышает используемую нами частоту, то значения считываются из файла через одно. Амплитуда сигнала +/-50мкВ соответствует +/-400 единицам кода);

fid = fopen('d:\dsp\Signal1.dig','r');

y2 = fread(fid,n,'bit16',16);

fclose(fid);

clf, plot(t,y2);

grid on;

Xlabel('в р е м я (сек)');

ylabel('А м п л и т у д а (мкВ)');

title('Реальный сигнал');

4. Реализация спектрального анализа с использованием БПФ

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

Для окна Бартлетта:

format long e

window = bartlett(n);

Fy1 = fft(window.*y1);

Fy1 = Fy1(1:n/2);

step = indx(1:(n/2))/256*(Fs/2);

clf, plot(step,abs(Fy1));

grid on;

ylabel('Мощность');

xlabel('Частота (Гц)');

title('Спектр');

На графике четко видны фундаментальные частоты нашего полигармонического сигнала. Сигнал легко различим и не имеет помех.

Проведем спектральный анализ реального сигнала.

Код реализующий данный анализ приведен ниже :

format long e

Fy2 = fft(window.*y2);

Fy2 = Fy2(1:n/2);

clf, plot(step,abs(Fy2));

grid on;

ylabel('Мощность');

xlabel('Частота (Гц)');

title('Спектр');

Из графика трудно определить что это за сигнал. Можно предположить фундаментальная частота находится в районе 10 Гц. Сигнал сильно зашумлен.

Для окна Чебышева:

format long e

r=50;

window = chebwin(n,r);

Fy1 = fft(window.*y1);

Fy1 = Fy1(1:n/2);

step = indx(1:(n/2))/256*(Fs/2);

clf, plot(step,abs(Fy1));

grid on;

ylabel('Мощность');

xlabel('Частота (Гц)');

title('Спектр');

format long e

Fy2 = fft(window.*y2);

Fy2 = Fy2(1:n/2);

clf, plot(step,abs(Fy2));

grid on;

ylabel('Мощность');

xlabel('Частота (Гц)');

title('Спектр');

5. Проектирование и реализация ЦФ

Код для реализации фильтра низких частот по приведенной в теории методике показан ниже.

Wp = 0; % частота среза, Гц

Ws = 35; % частота полосы задержки, Гц

Rp = 3; % затухание в полосе пропускания, dB

Rs = 20; % затухание в полосе задержки, dB

[b,a] = butter(4,(Ws/Fs)*2);

[H,w] = freqz(b,a,n,Fs);

clf,plot (w,abs(H));

grid on;

axis ([0 90 0 1]);

ylabel('Амплитуда');

xlabel('Частота (Гц)');

title('АЧХ');

Из графика видно, что низкочастотный фильтр реализован.

Теперь проведем фильтрацию заданных сигналов.

y3 = filter(b,a,y1);

y4 = filter(b,a,y2);

clf,plot(t,y3);

grid on;

xlabel('В р е м я (с е к)');

ylabel('А м п л и т у д а');

title('Полигарм. сигнал после фильтрации');

На графике представлен полигармонический сигнал после фильтрации.

Чтобы определить частотный спектр отфильтрованного сигнала снова проведен спектральный анализ.

Fy3 = fft(window.*y3);

Fy3 = Fy3(1:n/2);

clf, plot(step,abs(Fy3));

grid on;

ylabel('Величина');

xlabel('Частота (Гц)');

title('Спектр отфильтрованного сигнала.');

Проведем те же действия с реальным сигналом.

clf,plot(t,y4);

grid on;

xlabel('В р е м я (с е к)');

ylabel('А м п л и т у д а');

title('Реальный сигнал после фильтрации');

На верхнем графике представлен реальный сигнал после фильтрации, на нижнем графике его спектр.

Fy4 = fft(window.*y4);

Fy4 = Fy4(1:n/2);

clf, plot(step,abs(Fy4));

grid on;

ylabel('Величина');

xlabel('Частота (Гц)');

title('Спектр отфильтрованного сигнала.');

6. Вывод

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

По графику АЧХ фильтра можно определить, что низкочастотный фильтр реализован, на низких частотах амплитуда гораздо больше, нем на высоких.

Если провести перпендикуляр на ось частот графика АЧХ в точке соответствующей 0,707 амплитуды, то мы как раз попадем на заданную частоту среза нашего фильтра. Это подтверждает, что реализован именно заданный фильтр.

Соседние файлы в папке Курсовая работа
  • #
    01.05.2014187.9 Кб40CURS.DOC
  • #
    01.05.20142.65 Кб31CURS.M
  • #
    01.05.20143.27 Кб29Curs_my.m
  • #
    01.05.20143.33 Кб29Curs_my1.m
  • #
    01.05.2014447.49 Кб37kurs.doc
  • #
    01.05.20143.8 Кб30kurs.m