Отчет по лабораторной работе №1 «Основы теории цифровой обработки сигналов» дата Оценка (max 5)
Вид материала | Отчет |
СодержаниеКраткий конспект теоретической части Что такое цифровое представление сигнала Теорема Котельникова |
- Рабочая программа дисциплины "Алгоритмы и средства цифровой обработки сигналов" для, 61.24kb.
- Ю. В. Смирнов московский инженерно-физический институт (государственный университет), 13.81kb.
- «Обработка изображений» Общая трудоемкость изучения дисциплины составляет, 15.75kb.
- Учебная программа дисциплины «Методы цифровой обработки сигналов и изображений» (СД., 220.56kb.
- Программа учебной дисциплины «Теория сигналов» Специальности 071500, 013900 (СД. 05), 82.24kb.
- Н. Г. Чернышевского кафедра радиофизики и нелинейной динамики рабочая программа, 145.34kb.
- Вопросы к экзамену по дисциплине "Теория и проектирование алгоритмов цифровой обработки, 33.28kb.
- Теория и методы цифровой обработки сигналов, 179.56kb.
- Рабочая программа Системы цифровой обработки сигналов наименование дисциплины по дисциплине, 220.58kb.
- Учебно-методическое пособие "Широкополосные сигналы" составлено в соответствии с программой, 317.01kb.
Отчет по лабораторной работе № 1 «Основы теории цифровой обработки сигналов» | |||
дата | Оценка (max 5) | Бонус за сложность | подпись |
Цель работы:
Изучение видов сигналов, принципов их задания и моделирования в пакете Matlab.
Задачи работы
-на примерах заданных функций разработать их модели в пакете Матлаб.
Краткий конспект теоретической части
Что такое цифровая обработка сигналов ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Что такое цифровое представление сигнала
______________________________________________________________________________________________________________________________________________________________________________________________________ Что такое частота дискретизации
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Теорема Котельникова
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
1. Общая характеристика пакета Signal Processing [1]
Signal Processing Toolbox - мощный пакет по анализу, моделированию и проектированию устройств обработки всевозможных сигналов, обеспечению их фильтрации и множества преобразований.
Пакет Signal Processing обеспечивает чрезвычайно обширные возможности по созданию программ обработки сигналов для современных научных и технических приложений. В пакете используется разнообразная техника фильтрации и новейшие алгоритмы спектрального анализа. Пакет содержит модули для разработки новых алгоритмов обработки сигналов, разработки линейных систем и анализа временных рядов. Пакет будет полезен, в частности, в таких областях, как обработка аудио- и видеоинформации, телекоммуникации, геофизика, задачи управления в реальном режиме времени, экономика, финансы и медицина.
Назначение пакета:
- Моделирование сигналов и линейных систем;
- Проектирование, анализ и реализация цифровых и аналоговых фильтров;
- Быстрое преобразование Фурье, дискретное косинусное и другие преобразования;
- Оценка спектров и статистическая обработка сигналов;
- Параметрическая обработка временных рядов;
- Генерация сигналов различной формы;
- Оконное отображение.
Пакет Signal Processing - идеальная оболочка для анализа и обработки сигналов. В нем используются проверенные практикой алгоритмы, выбранные по критериям максимальной эффективности и надежности. Пакет содержит широкий спектр алгоритмов для представления сигналов и линейных моделей. Этот набор позволяет пользователю достаточно гибко подходить к созданию сценария обработки сигналов. Пакет включает алгоритмы для преобразования модели из одного представления в другое.
Пакет Signal Processing включает полный набор методов для создания цифровых фильтров с разнообразными характеристиками. Он позволяет быстро разрабатывать фильтры высоких и низких частот, полосовые пропускающие и задерживающие фильтры, многополосные фильтры, в том числе фильтры Чебышева, Юла-Уолкера, эллиптические и другие фильтры.
Графический интерфейс позволяет проектировать фильтры, задавая требования к ним в режиме переноса объектов мышью. В пакет включены следующие новые методы проектирования фильтров:
- Обобщенный метод Чебышева для создания фильтров с нелинейной фазовой характеристикой, комплексными коэффициентами или произвольным откликом. Алгоритм разработан Макленаном и Карамом в 1995 году;
- Метод наименьших квадратов с ограничениями позволяет пользователю явно контролировать максимальную ошибку (сглаживание);
- Метод расчета минимального порядка фильтра с окном Кайзера;
- Обобщенный метод Баттерворта для проектирования низкочастотных фильтров с максимально однородными полосами пропускания и затухания.
Основанный на оптимальном алгоритме быстрого преобразования Фурье, пакет Signal Processing обладает непревзойденными характеристиками для частотного анализа и спектральных оценок. Пакет включает функции для вычисления дискретного преобразования Фурье, дискретного косинусного преобразования, преобразования Гильберта и других преобразований, часто применяемых для анализа, кодирования и фильтрации. В пакете реализованы такие методы спектрального анализа, как метод Вельха, метод максимальной энтропии и другие.
Пакет Signal Processing является основой для решения многих других задач. Например, комбинируя его с пакетом Image Processing, можно обрабатывать и анализировать двухмерные сигналы и изображения. В паре с пакетом System Identification пакет Signal Processing позволяет выполнять параметрическое моделирование систем во временной области. В сочетании с пакетами Neural Network и Fuzzy Logic может быть создано множество средств для обработки данных или выделения классификационных характеристик. Средство генерации сигналов позволяет создавать импульсные сигналы различной формы.
2. Генерация сигналов в пакете Signal Processing
Сигналом будем называть данные, упорядоченные относительно некоторого аргумента (например, времени, частоты, пространственной координаты). Если в качестве аргумента выбрано время, то эквивалентными понятиями будут временной процесс, временная реализация.
Для генерации сигналов используются функции среды Matlab, в том числе функции пакета Signal Processing.
В пакете Signal Processing реализованы следующие функции генерации сигналов, представленные в таблице 1.
Таблица 1 – Функции генерации сигналов пакета Signal Processing
Функция | Действие |
ссылка скрыта | Генерирует косинусоиду с переменной частотой |
ссылка скрыта | Вычисляет функцию Дирихле |
ссылка скрыта | Генерирует синусоиду, модулированную функцией Гаусса |
ссылка скрыта | Генерирует моноимпульс Гаусса |
ссылка скрыта | Генерирует импульсы |
ссылка скрыта | Генерирует апериодические прямоугольные импульсы |
ссылка скрыта | Генерирует пилообразные колебания |
ссылка скрыта | Функция sinc |
ссылка скрыта | Генерирует прямоугольные импулься |
ссылка скрыта | Генерирует апериодические треугольные импульсы |
ссылка скрыта | Управляемый источник напряжений |
Подробное описание функций и их параметров можно получить из справочной системы Matlab или используя команду help <имя функции>.
Задание 1. Разработать скрипт для пакета Matlab, генерирующий синусоидальный сигнал с заданной частотой f=_____ Гц и различными частотами дискретизации fд=______ Гц, ______ Гц и ______ Гц. Длительность сигнала ______ с.
Т.к. работа среды Matlab ориентирована на матричное представление сигналов, то зададим сначала три вектора времени t, которые будет соответствовать различным частотам снятия данных (частотам дискретизации):
fs1=3; %fs - sampling frequency – частота дискретизации fs2=5; fs3=10; T=20; % T – длительность сигнала t1=0:1/fs1:T; t2=0:1/fs2:T; t3=0:1/fs3:T; |
Для генерации синусоидального сигнала (вычисления функции sin в заданных вектором ti точках используется функция Matlab – sin. Уточним, требуемые данной функцией, аргументы:
>> help sin SIN Sine of argument in radians. SIN(X) is the sine of the elements of X. See also asin, sind. Overloaded methods: codistributed/sin Reference page in Help browser doc sin |
Задать векторы сигналов:
y1=sin(2*pi*1*t1); y2=sin(2*pi*1*t2); y3=sin(2*pi*1*t3); |
Построить графики описанных сигналов:
plot(t1,y1,'-ro',t2,y2,'-g>',t3,y3,'-b') grid on % Отображение сетки xlabel('Time'); % Подпись оси X ylabel('Amplitude'); % Подпись оси Y title('SIGNAL'); % Заголовок графика |
|
Выводы
|
|
|
|
|
|
|
Задание 2. Разработать функцию Matlab, генерирующую сигнал длительностью _____ с, снятый с шагом 1/f и представляющий собой
F= | Ваш вариант задания: |
Функция объявляется зарезервированным словом function, после которого следует выражение
[выходное_значение_функции] = имя_функции[(аргументы_функции)]
function A = my_test(f) %вы не поверите – это функция! t=0:1/f:10; t1=0:1/f:3; A(1:length(t1))=sin(7*pi*t1); t2=(3+1/f):1/f:6; A(length(t1)+1:length(t1)+length(t2))=2+sin(7*pi*t2); t3=(6+1/f):1/f:10; A((length(t1)+length(t2)+1):(length(t1)+length(t2)+ length(t3)))=sin(2*pi*t3); plot(t,A); grid on; end |
Слово function в первой строке определяет, что данный файл содержит файл-функцию. Первая строка является заголовком функции, в которой размещается имя функции и списка входных и выходных аргументов. В примере имя функции my_test, один входной аргумент f и один выходной — A. После заголовка следуют комментарии, а затем — тело функции, где и вычисляется ее значение. Важно, что вычисленное значение записывается в переменную A. Не забудьте поставить точку с запятой для предотвращения вывода лишней информации на экран. Теперь сохраните файл в рабочем каталоге. Обратите внимание, что выбор пункта Save или Save as меню File приводит к появлению диалогового окна сохранения файла, в поле File name которого уже содержится название centering. Не изменяйте его, сохраните файл функцию в файле с предложенным именем!
Теперь созданную функцию можно использовать так же, как и встроенные sin, cos и другие. Вызов собственных функций может осуществляться из файл-программы и из другой файл-функции:
>> my_test(128);
Результат выполнения функции вклеить ниже:
|
Выводы
|
|
|
|
|
|
|
3. Получение данных из внешних источников [3]
Преобразование аналогового сигнала в цифровой и обратно – это процессы, которые выполняются аппаратными средствами. Matlab же, будучи программным пакетом, может лишь взаимодействовать с соответствующим оборудованием. Кроме того, в Matlab предусмотрены средства для воспроизведения и записи звука, а также для работы со звуковыми файлами формата WAV.
3.1. Чтение данных из WAV-фалов
Для считывания WAV-файлов в Matlab имеется функция waveread. В простейшем случае она может быть использована следующим образом:
y = wavread (‘filename’); |
Здесь filename – имя звукового файла (расширение .wav указывать необязательно).
В результате выполнения функции в переменную y будет перемещено всё содержимое указанного файла. Строки матрицу y соответствуют отсчётам сигнала, столбцы – каналам, которых в WAV-файле может быть несколько.
В звуковом файле отсчёты сигнала представлены целыми числами, лежащими в диапазоне -128..+127 (8 бит на отсчёт), либо
-32768…+32767 (16 бит на отсчёт). Управлять нормировкой считываемых отсчётов можно с помощью дополнительного строкового параметра ‘fmt’, добавляемого в конце списка входных параметров функции waveread. При принятом по умолчанию варианте ‘double’ значения отсчётов приводятся в диапазоне -1..+1, а при значении ‘native’ функция возвращает целые числа в том виде, в котором они хранятся в WAV-файле.
Помимо собственно отсчётов, в WAV-файле хранится служебная информация о частоте дискретизации, количество бит на отсчёт и т.п. Узнать частоту дискретизации можно, используя при вызове функции второй выходной параметр:
[y,Fs] = wavread (‘filename’); |
С другими возможностями функции ознакомьтесь в справке к программе.
Задание 3. Разработать скрипт Matlab, позволяющий считать данные из WAV-файла и вывести их в графическом виде.
[y,Fs]=wavread('D:\tada.wav'); subplot(2,1,1); %функция вывода нескольких графиков plot(y(:,1)) %Канал 1 grid on; subplot(2,1,2); plot(y(:,2)) %Канал 2 grid on; |
Ниже представить результат выполнения скрипта:
|
Выводы
|
|
|
|
|
|
|
3.2. Запись данных в WAV-фал
Чтобы записать вектор (или матрицу) на диск в виде WAV-файла, используется функция wavwrite:
wavwrite (y,Fs,N,‘filename’); |
Здесь:
- y – записываемые данные (вектор для монофонической записи, двухстолбцовая матрица – для создания стереофайла);
- Fs – частота дискретизации в герцах;
- N – число бит на отсчёт (8 или 16);
- ‘filename’ – имя создаваемого файла.
Выходных параметров у данной функции нет. Параметры N и Fs можно опускать, при этом используются значения по умолчанию – N=16 и Fs=8000.
Задание 4. Разработать скрипт Matlab, производящий операцию над сигналом WAV-файла и записывающий изменения в новый файл согласно своему варианту.
Исходный код представить ниже:
[y,Fs,b]=wavread('D:\tada.wav'); subplot(2,1,1); %функция вывода нескольких графиков plot(y(:,1)) grid on; subplot(2,1,2); plot(y(:,2)) grid on; y2=y*2; %удваиваем амплитуду figure; %показать график в новом окне plot(y2) grid on; wavwrite(y2,Fs,b,'D:\tada-new.wav') |
Данный пример удваивает амплитуду (громкость) исходного файла и записывает изменения в файл с именем ‘tada-new.wav’.
Результаты выполнения скрипта представить на следующей странице.
Исходный сигнал: |
Полученный сигнал: |
Выводы
|
|
|
|
3.3. Воспроизведение звука
Начиная с версии Matlab 5.0 в системе несколько расширены средства для работы со звуком. Ниже приведено описание основных команд для воспроизведения звуковых сигналов:
sound(y,Fs) — воспроизводит сигнал из вектора y с частотой дискретизации Fs с помощью колонок, подключенных к звуковой карте компьютера. Компоненты y могут принимать значения в следующих пределах -1.0 ≤ у ≤ 1.0. Для воспроизведения стереозвука на допускающих это компьютерных платформах y должен быть матрицей размера М x 2;
sound(y) — функционирует аналогично, принимая частоту дискретизации по умолчанию равной 8192 Гц;
sound(y,Fs,bits) — функционирует аналогично с заданием разрядности звуковой карты: bits=8 или bits=16.
Запишите ваши итоговые выводы:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Контрольные вопросы
- В чем заключается цифровая обработка сигналов?
- Что такое дискретный сигнал?
- Что такое частота дискретизации?
- Принципы построения устройств ЦОС.
- Теорема Котельникова.
Литература
- Абраменова И.В., Дьяконов В.П., Круглов В.В. Matlab 5.3.1 с пакетами расширений. Под ред. проф. В.П. Дьяконова. – М.: Нолидж, 2001. – 880с.
- Дьяконов В. Matlab. Обработка сигналов и изображений. Специальный справочник. – СПб.: Питер, 2002. – 608 с.
- Сергиенко А.Б. - Цифровая обработка сигналов: учеб. Пособие. – 3-е изд. – СПб.: БХВ-Петербург, 2011. – 768с.: ил. – (Учебная литература для вузов)
- Материалы сайта ссылка скрыта