Лаба1 ЦОС 2014 (Лаб1)

Посмотреть архив целиком

Задание 1.

Используя функцию построения графиков в пакете MATLAB, проиллюстрируйте утверждение 2 раздела 1.4.

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

Команды MATLAB:

plot ([0:0.01:1], sin (2*pi*1*[0:0.01:1]));

hold on

plot ([0:1/3:1], sin (2*pi*1*[0:1/3:1]), 'o');

plot ([0:0.01:1], sin (2*pi*4*[0:0.01:1]));

plot ([0:0.01:1], sin (2*pi*(-2)*[0:0.01:1]));

Теперь покажем что для каждой из синусоид при частоте дискретизации fs=3 получаются одни и те же отсчеты:

  1. sin () = ()

  2. sin () = () = () = ()

  3. sin () = () = ()

Мы видим что все 3 выражения равны, следовательно при одинаковой частоте дискретизации получаются одинаковые отсчеты.

Задание 2.

Создайте сигнал «шум» + «синусоида» и отобразите его во временной области. Мощность шума должна быть такой, чтобы синусоиду единичной амплитуды различить было невозможно (для этого вполне достаточно значений, возвращаемых функцией randn по умолчанию).

Выполните дискретное преобразование Фурье (ДПФ) полученного сигнала. На графике ДПФ синусоида заданной частоты должна быть видна. Определите настоящую частоту этой синусоиды, считая известной частоту дискретизации.

Команды MATLAB:

N=100; - число отсчетов

f=30; - частотасигнала

fs=50; частота дискретизации

x=randn(1,N+1); - шум

F=sin(2*pi*f*[0:1/fs:N/fs]); - сигнал

plot(x+F); - график во временной области

plot(abs(fft(x+F))); - график в частотной области

График во временной области









График в частотной области

Теперь произведем проверку правильности построений графиков. На графике в частотной области можно увидеть 2 пика, соответствующие k1 = 40 и k2 = 60. Теперь просчитаем f:

30 Гц соответствует заданной ранее частоте, поэтому график ДПФ верен.

Задание 3



Задайте частоты f1, f2 и fs ( fs > 2 * max (f1,f2) ). Создайте сигнал, равный сумме двух синусоид частот f1 и f2 и произведите дискретизацию этого сигнала с частотой fs.

Нужно в соответствии с заданными частотами f1, f2 и fs подобрать такое минимальное количество отсчетов N, чтобы пики на графике ДПФ, соответствующие f1 и f2, были хорошо различимы. При этом можете просматривать соответствующий график во временной области.

Шаблон, который полезен при выполнении задания, следующий:

diskr=sin([0:1/fs:N/fs]*2*pi*f1)+ sin([0:1/fs:N/fs]*2*pi*f2); (1)

plot ([0:N],diskr);

plot(abs(fft(diskr)));

Задаем частоты f1 = 10, f2 = 30 и fs = 80.





Команды MATLAB:

f1=10;

f2=30;

fs=80;

N=2;

diskr=sin([0:1/fs:N/fs]*2*pi*f1)+ sin([0:1/fs:N/fs]*2*pi*f2);

plot ([0:N],diskr);

plot(abs(fft(diskr)));

При N = 2:



При N=4:













При N=8:



















При N=16:

















При N=32:



















При N=64:



















При N=128:



















При N=256:

Теперь произведем проверку правильности построений графиков. На графике в частотной области при N=256 можно увидеть 4 пика, соответствующие k1 = 30, k2 = 96, k3 = 160, k4 = 225. Теперь просчитаем f:

Таким образом на графике ДПФ верно отображены частоты, что мы задали изначально.

Задание 4



Задана синусоида частоты f и количество отсчетов N. Меняя частоту дискретизации fs, добейтесь того, чтобы дискретное преобразование Фурье показывало верный результат. Покажите, что при «пересечении» частоты 2*f результат меняется на прямо противоположный (если был правильный, то становится неправильным и наоборот)

Задаем частоту f=30 Гц и число отсчетов N=256. Теперь возьмем два значения частоты дискретизации: одно из них будет удовлетворять условию теоремы Котельникова fs = 80, а другое нет: fs=40.

При fs = 80:

При fs = 40: