5) Используя функцию chirp(), сформировать сигнал с линейно изменяющейся частотой (метод ‘linear’) длительностью 10 с, частотой отсчетов 8192 Гц, начальным значением частоты 1000 Гц, значением частоты 4000 Гц через 3 с. С помощью команды sound() прослушать звучание сигнала, при этом определить с точностью до секунды моменты времени, в которые тон сигнала понижается или повышается. Аналитически вычислите моменты времени, в которые тон звука начинает понижаться или повышаться. Сравните их с экспериментальными результатами. Используя процедуру specgram, построить спектрограмму сигнала. Объяснить на основе теоремы отсчетов и спектрограммы частотно-временной характер звукового сигнала.
Далее представлен М-файл с помощью которого было прослушано звучание сигнала и построена спектрограмма сигнала.
t=0:1/8192:10;
y=chirp(t,1000,3,4000);
specgram(y,[],8192);
sound(y);
Рис.11. Спектрограмма сигнала
Согласно линейному закону изменения частоты:
, где .
В данном примере , , => . Тое есть с каждым приращением времени на 1 сек. частота должна увеличиться на 1000 Гц. Однако в результате эксперимента получается расхождение. Это объясняется тем что не учтена частота дискретизации. Спектрограмма показывает зависимость мгновенного амплитудного спектра сигнала от времени. Тое есть max частота показанная на спектрограмме должна равняться , а далее изменение частоты происходит по формуле: , где (т.е. время когда значение частоты достигло 0 или 4000Гц), , , => до тех пор пока значение не станет равным нулю. Потом закон изменения подчиняется снова формуле:
, где , , , .
Получается, что тон сигнала повышается на интервале от 0 до 3.096 сек., далее понижается от 3.096 до 7.192 сек. и потом тон повышается от 7.192 до 10 сек.
Из всего выше сказанного можно сделать вывод:
Так как весь исходный спектр свернулся в полосу частот от 0 Гц до частоты Найквиста (то есть произошло удаление всех ложных частот, т.е. частот выше частоты Найквиста), то расширение спектра происходит дублированием спектра из полосы от 0 Гц до частоты Найквиста. В конечном итоге, спектр дискретизированного сигнала представляет собой несколько копий спектров, полученных в результате отображения относительно оси t и сдвигом по этой же оси на 4.096 сек..
6) С помощью процедур Приложения 4 провести моделирование восстановления непрерывного сигнала по его отсчетам с использованием трех интерполяционных полиномов. Сделать необходимые комментарии и выводы об особенностях восстановления сигналов различными методами и их сравнительное сопоставление.
Восстановление непрерывных сигналов по отсчетам с помощью идеального ФНЧ
Восстановление аналогового сигнала с помощью интерполяционных полиномов нулевого и первого порядков
Нулевой порядок :
Первый порядок:
- интерполирование вперед
- интерполирование назад
Далее представлены М-файлы (основанные на Приложении 4) с помощью которого было смоделировано восстановление непрерывного сигнала по его отсчетам и построены графики.
% Программа демонстрации восстановления сигнала
% интерполяционным полиномом sin(x)/x
% вариант интерполяции с помощью идеального ФНЧ
t=-3:0.01:7; % задание интервала времени
n=-3:7; % номера отсчетов сигнала
s=[0 0 2.5 6.4 3 4.2 1 -2.5 0 -1 0];% дискретный сигнал
d=[n' s']; % параметры для функции pulstran
y=pulstran(t,d,'sinc');
% график дискретного сигнала
plot(n, s,'o',t,y)
hold on
% построение графиков отдельных sinc импульсов
for k=1:length(s), plot(t, s(k)*sinc(t-n(k)), ':'), end
grid
hold off
Рис.12. Графическое изображение восстановление дискретного сигнала
s=[0 0 2.5 6.4 3 4.2 1 -2.5 0 -1 0] интерполяционным полиномом sin(x)/x
% Программа демонстрации восстановления сигнала
% с помощью интерполяционного полинома нулевого порядка
%
t=-3:0.01:7; % задание интервала времени
n=-3:7; % номера отсчетов сигнала
s=[0 0 2.5 6.4 3 4.2 1 -2.5 0 -1 0]; % дискретный сигнал
d=[n' s']; % параметры для функции pulstran
% сигнал,восстановленный полиномом нулевого порядка
y=pulstran(t,d,'rectpuls');
plot(n, s,'o', t, y) % графики сигналов
hold on
% сигнал,восстановленный интерполятором sinc
y1=pulstran(t,d,'sinc');
plot(t, y1,'-.m')
% построение графиков отдельных прямоугольных импульсов
for k=1:length(s),plot(t,s(k)*rectpuls(t-n(k)), ':'), end
hold off
Рис.13. Графическое изображение восстановление дискретного сигнала
s=[0 0 2.5 6.4 3 4.2 1 -2.5 0 -1 0] с использованием интерполяционного полинома
нулевого порядка
% Программа демонстрации восстановления сигнала
% с помощью интерполяционного полинома первого порядка
%
t=-3:0.01:7; % задание интервала времени
n=-3:7; % номера отсчетов сигнала
% дискретный сигнал
s=[0 0 2.5 6.4 3 4.2 1 -2.5 0 -1 0];
d=[n' s']; % параметры для функции pulstran
tau=2; % длительность треугольного сигнала
% сигнал,восстановленный полиномом первого порядка
y=pulstran(t,d,'tripuls',tau);
plot(n, s,'o', t, y) % график восстановленного сигнала
hold on
%сигнал,восстановленный интерполятором sinc
y1=pulstran(t,d,'sinc');
plot(t, y1,'-.m')
hold off
Рис.14. Графическое изображение восстановление дискретного сигнала
s=[0 0 2.5 6.4 3 4.2 1 -2.5 0 -1 0] с использованием интерполяционного полинома
первого порядка
% Программа демонстрации восстановления сигнала
% с помощью интерполяционного полинома нулевого порядка и ФНЧ,
% используемого для сглаживания восстановленного сигнала
t=-3:0.01:7; % задание интервала времени
n=-3:7; % номера отсчетов сигнала
s=[0 0 2.5 6.4 3 4.2 1 -2.5 0 -1 0]; % дискретный сигнал
d=[n' s']; % параметры для функции pulstran
% сигнал,восстановленный полиномом нулевого порядка
y=pulstran(t,d,'rectpuls');
% фильтрация восстановленного сигнала
[b,a]=butter(6,2*pi*0.5,'s'); % получение характеристик фильтра
% Баттерворта
lsim(b,a,y,t); % фильтрация и построение графика после фильтрации
hold on; axis([-3,8,-4,8])
plot(n, s,'o', t, y) % график восстановленного сигнала
hold on
% сигнал,восстановленный интерполятором sinc
y1=pulstran(t,d,'sinc');
plot(t, y1,'-.m')
% построение графиков отдельных прямоугольных импульсов
for k=1:length(s),plot(t,s(k)*rectpuls(t-n(k)), ':'), end
hold off
Рис.15. Графическое изображение восстановление дискретного сигнала
s=[0 0 2.5 6.4 3 4.2 1 -2.5 0 -1 0] с использованием интерполяционного полинома
нулевого порядка и ФНЧ
Наиболее эффективным оказался метод с использованием интерполяционного полинома sin(x)/x. График после интерполятора оказался более приближенный к реальному.
Но этот метод мало применим на практике, из-за больших объемов вычисления по формуле интерполяционного ряда Котельникова-Шеннона:
Методы восстановления сигнала с использованием интерполяционного полинома первого и второго порядка чаще всего применяются на практике. Используя метод интерполяционного полинома нулевого порядка на выходе будет сигнал имеет ступенчатый вид, а используя метод интерполяционного полинома первого порядка – более гладкий. На практике чаще используется метод интерполяционного полинома нулевого порядка, т.к. в другом методе нужно вычислять еще и производную.
При пропускании восстановленного сигнала методом интерполяционного полинома первого порядка через ФНЧ, заметно по графику «отставание» сигнала от исходного.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.