Основы построения процессоров цифровой обработки сигналов

Автор работы: Пользователь скрыл имя, 03 Декабря 2013 в 14:45, курсовая работа

Описание работы

Процессор цифровой обработки сигналов (ПЦОС) - это специализированный программируемый микропроцессор, предназначенный для манипулирования в реальном масштабе времени потоком цифровых данных.
Первые ЦПОС, появившиеся в начале 80-х годов XX века, представлялись потребителям сугубо специализированными. В настоящее время они используются в очень многих конструктивных решениях: автомобилях. ЭВМ, музыкальных инструментах, видеотехнике, медицинской аппаратуре. Этот список может быть бесконечным, причем сфера использования ЦПОС непрерывно расширяется.
ПЦОС являются также мощными ускорителями для персональных компьютеров (мультимедийные приложения, трёхмерная графика и др.).

Содержание работы

ВВЕДЕНИЕ 3
Глава 1. Реализация цифровой обработки сигналов 5
Глава 2. Общие принципы построения ЦПОС и особенности их архитектуры 8 2.1 Архитектура фон Неймана и гарвардская архитектура 9
2.2 Структура ЦПОС 11
2.3 ЦПОС с фиксированной и плавающей точкой 14
2.4 Основные типы ЦПОС 15
Глава 3. Применение цифровой обработки сигналов 16
3.1 Шумоподавление для звука 16
3.2 Передискретизация 18
3.3 Антиалиасинг изображений 20
3.4 Псевдотонирование изображений 22
3.5 Выравнивание освещенности изображений 24
3.6 Другие применения 26
ЗАКЛЮЧЕНИЕ 27
ЛИТЕРАТУРА 28

Файлы: 1 файл

Основы построения ПЦОС.docx

— 170.86 Кб (Скачать файл)

• Адаптивное сглаживание  оценок спектра по времени и частоте. Наиболее качественный, но и трудоемкий метод.

Наиболее распространенный способ подавления «музыкального шума»  – использует сглаживание спектра  по времени. Для этого к STFT-коэффициентам  исходного сигнала применяется  рекурсивная фильтрация по времени. Более качественного подавления можно достичь, применяя к спектрограмме  адаптивные двумерные алгоритмы  фильтрации, такие как билатеральный  фильтр или алгоритм нелокального усреднения, используемые в шумоподавлении для изображений.

3.2 Передискретизация

Ресамплинг (передискретизация, resampling) – это изменение частоты дискретизации цифрового сигнала. Применительно к цифровым изображениям ресамплинг означает изменение размеров изображения. Существует множество различных алгоритмов ресамплинга изображений. Например, для увеличения изображения в 2 раза можно просто продублировать каждую из его строк и каждый из его столбцов (а для уменьшения – выкинуть). Такой метод называется методом ближайшего соседа (nearest neighbor). Можно промежуточные столбцы и строки получить линейной интерполяцией значений соседних столбцов и строк. Такой метод называется билинейной интерполяцией (bilinear interpolation). Можно каждую точку нового изображения получить как взвешенную сумму большего числа точек исходного изображения (бикубическая и другие виды интерполяции).

Наиболее качественный ресамплинг получается при использовании алгоритмов, учитывающих необходимость работы не только с временной, но и с частотной  областью изображения. Сейчас мы рассмотрим алгоритм ресамплинга, который основан  на идее максимального сохранения частотной  информации изображения. Алгоритм построен по принципу интерполяция / фильтрация / прореживание (interpolation / filtering / decimation).

Работу алгоритма будем  рассматривать на одномерных сигналах, так как двумерное изображение  можно сначала растянуть или  сжать по горизонтали (по строкам) а  потом – по вертикали (по столбцам). Таким образом, ресамплинг двумерного изображения сводится к ресамплингу  одномерного сигнала.

Пусть нам нужно «растянуть»  одномерный сигнал от длины n точек до длины m точек, т.е. в nm раз. Для выполнения этой операции необходимо выполнить 3 шага:

Первый шаг – интерполяция нулями, увеличивающая длину сигнала  в m раз. Нужно умножить все отсчеты исходного сигнала на m, а потом после каждого отсчета сигнала нужно вставить m-1 нулевое значение. При этом спектр сигнала изменяется следующим образом. Та часть спектра, которая изначально содержалась в цифровом сигнале, остается без изменения (именно этого мы добиваемся). Но выше старой половины частоты дискретизации возникают помехи (отраженные копии спектра), от которых необходимо избавиться с помощью фильтрации.

Второй шаг – это  отфильтровывание этих помех с помощью  низкочастотного фильтра (НЧ) фильтра. Теперь мы получили сигнал, который в m раз длиннее исходного, но сохранил его частотную информацию и не приобрел посторонней частотной информации. Если бы задачей было удлинение сигнала в m раз, то на этом шаге можно было бы остановиться. Но задача требует теперь уменьшить длину сигнала в n раз.

Третий шаг - уменьшение длины сигнала в n раз. Для этого нужно выполнить 2 шага. Первый шаг – это антиалиасинговая фильтрация. Так как частота дискретизации уменьшается в n раз, то из спектра сигнала, согласно теореме Котельникова, удастся сохранить только его низкочастотную часть. Все частоты выше половины будущей частоты дискретизации нужно удалить с помощью антиалиасингового фильтра с частотой среза равной n от текущей половины частоты дискретизации. Второй шаг – это прореживание полученного сигнала в n раз. Для этого достаточно выбрать из сигнала каждый n-й отсчет, а остальные – отбросить. Заметим, что две НЧ-фильтрации, применяемые в этом алгоритме друг за другом, можно (и нужно) заменить одной. Для этого частоту среза единого НЧ -фильтра нужно выбрать равной минимуму из частот среза двух отдельных НЧ-фильтров. Еще одно существенное улучшение алгоритма – это поиск общих делителей у чисел m и n. Например, очевидно, что для того, чтобы сигнал из 300 точек сжать до 200 точек, достаточно положить в алгоритме m=2 и n=3.

Приведенный алгоритм требует очень большого объема вычислений, т.к. промежуточный размер одномерного сигнала при ресамплинге может быть порядка сотен тысяч. Существует способ существенно повысить быстродействие алгоритма и сократить расход памяти. Этот способ называется многофазной фильтрацией (polyphase filtering). Он основан на том, что в длинном промежуточном сигнале совсем необязательно вычислять все точки. Ведь большая часть из них все равно будет отброшена при прореживании. Многофазная фильтрация позволяет непосредственно выразить отсчеты результирующего сигнала через отсчеты исходного сигнала и антиалиасингового фильтра.

Здесь не рассматриваются такие детали алгоритма, как коррекция границ изображения, выбор фазы сигнала при интерполяции и прореживании и построение хорошего антиалиасингового фильтра. Для ресамплинга изображений требуется уделить особое внимание как частотной, так и пространственной характеристике фильтра. Если оптимизировать фильтр только в частотной области, то это приведет к большим пульсациям в ядре фильтра. А при ресамплинге изображений пульсации в ядре фильтра приводят к пульсациям яркости вблизи резких перепадов яркости в изображении (эффект Гиббса, Gibbs phenomenon)

3.3 Антиалиасинг изображений

Избежать алиасинга при  генерации изображений – важная задача компьютерной графики. Алиасинг в изображениях приводит к зубчатости краев фигур, муару, плохой читаемости текста и графиков. Одним из основных способов предотвращения алиасинга является так называемый суперсамплинг (super-sampling). Этот прием заключается в генерации изображения с большим разрешением и ресамплингу этого изображения до нужного размера. Рассмотрим пример. Пусть нам нужно сгенерировать трехмерное изображение шахматной доски с разрешением 200x150 пикселей. Если сделать это непосредственно (например, трассировкой лучей через каждую точку экрана), то результат может быть существенно искажен алиасингом (рис. 5. а). Применим метод суперсамплинга. Сгенерируем нужное нам изображение с четырехкратным размером 800x600 пикселей, а затем уменьшим его до размера 200x150. Заметим, что качество получаемого таким образом изображения существенно лучше (рис. 5. б) и зависит от качества алгоритма ресамплинга и от степени суперсамплинга (во сколько раз большее изображение мы сгенерировали). Желательно применять алгоритм ресамплинга, обеспечивающий хороший антиалиасинг.

Рис. 5. (а). Изображение сгенерированное без антиалиасинга.

Рис. 5.(б). Изображение, сгенерированное с антиалиасингом.




 

Рассмотренный алгоритм широко применяется в компьютерной графике, несмотря на большие вычислительные затраты. Выбирая степень суперсамплинга, можно варьировать производительность алгоритма. Очевидно, что сложность  алгоритма квадратично зависит  от степени суперсамплинга. Обычно используются степени суперсамплинга от двух до четырех.

3.4 Псевдотонирование изображений

Псевдотонирование (half-toning) – это создание иллюзии полноцветности изображения с помощью небольшого реального числа цветов. Пример псевдотонирования – фотографии в газетах, где любые оттенки серого передаются с помощью чередования мелких черных и белых точек.

Пусть имеется изображение в оттенках серого, интенсивность точек которого может принимать произвольные значения от 0 до 1. Рассмотрим некоторые алгоритмы приведения такого изображения к монохромному, яркость точек которого может принимать 2 значения: 0 или 1.

Первый самый простой  алгоритм – это усечение (порог). Все пиксели с яркостью больше 0.5 получают яркость 1, все остальные  – яркость 0. Такой алгоритм обычно дает наихудшие результаты.

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

Один из таких методов  – упорядоченное псевдотонирование. В этом методе исходное изображение разбивается на небольшие блоки одинакового размера (например, 3x3). Затем в каждом блоке находится средняя яркость изображения. В соответствии с этой средней яркостью выбирается количество белых пикселей в соответствующем блоке получаемого монохромного изображения. Обычно эти белые пиксели упорядочиваются в соответствии с некоторым регулярным шаблоном.

Существует класс алгоритмов, которые достигают этого в 2 стадии. Сначала к изображению добавляется случайный шум необходимой амплитуды, а затем применяется порог. Такие алгоритмы называют диттерингом (dithering).

Шум представляет собой некий  достаточно случайный сигнал, не зависящий  от изображения. Например, белый шум  – это просто последовательность случайных чисел с математическим ожиданием 0. Спектр такого шума приблизительно равен константе на всех частотах (в пределах половины частоты дискретизации). Последовательные отсчеты такого шума не коррелируют между собой.

Существуют другие виды шума. Например, у розового шума энергия  обратно пропорциональна частоте (в определенном рассматриваемом  диапазоне частот). Другими словами, амплитуда его гармоник падает на 3 дБ при удвоении частоты. У голубого шума энергия наоборот растет с частотой. Существуют и другие виды шума, однако определения для них могут  быть различны в разных областях.

Будем называть ошибкой квантования  изображение, равное разности исходного  и псевдотонированного изображений.

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

Просто диттеринг голубым шумом не приводит к желаемому результату, т.к. ошибка квантования при этом имеет спектр, содержащий значительное количество низкочастотных и среднечастотных компонент. Для избавления от них нужно применить рекурсивный фильтр. Этот метод псевдотонирования называется диффузией ошибки (error diffusion). Его идея в том, что ошибка квантования, возникшая при квантовании данного пикселя, распространяется с обратным знаком на соседние пиксели и таким образом как бы компенсируется.

3.5 Выравнивание освещенности изображений

Часто некоторые участки  на изображении бывают слишком темными, чтобы на них можно было что-то разглядеть.

Если прибавить яркости  ко всему изображению, то изначально светлые участки могут оказаться  совсем засвеченными. Чтобы улучшить вид изображения в таких случаях, применяется метод выравнивания освещенности.

Этот метод не является линейным, т.е. не реализуется линейной системой. Рассмотрим модель типичную освещенности для фотографии. Фотографируемый пейзаж обычно освещен по-разному в разных точках. Причем обычно освещенность меняется в пространстве достаточно медленно.

Мы хотим, чтобы все  детали на фотографии были освещены более  однородно, но при этом оставались достаточно контрастными друг относительно друга.

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

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

Например, применив  ВЧ (высоко частотный) фильтр, мы бы «избавились от перепадов освещенности» (НЧ-сигнала), а оставили «само изображение». Но поскольку эти сигналы не складываются, а перемножаются, то избавиться от неравномерностей освещенности простой фильтрацией не удастся.

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

Логарифм от произведения равен сумме логарифмов сомножителей. Если учесть, что логарифм от НЧ-сигнала  остается НЧ-сигналом, а логарифм от ВЧ-сигнала остается ВЧ-сигналом, то мы свели задачу разделения произведения сигналов к задаче разделения суммы  НЧ- и ВЧ-сигналов. Очевидно, эту задачу можно решить с помощью ВЧ-фильтра, который удалит из суммы сигналов низкие частоты. После этого останется  только взять от полученного сигнала  экспоненту, чтобы вернуть его  к исходному масштабу амплитуд.

ВЧ-фильтр можно реализовать  следующим образом. Сначала к  изображению применяется операция размытия (НЧ-фильтр), а потом из исходного  изображения вычитается размытое.

Информация о работе Основы построения процессоров цифровой обработки сигналов