Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
83
Добавлен:
01.05.2014
Размер:
192 Кб
Скачать

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

c lf, 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('Спектр');

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