75613

ПРОГРАММИРОВАНИЕ КЛЮЧЕВЫХ ОПЕРАЦИЙ ЦОС В MATLAB

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Основные арифметические операции в MATLAB: сложение, вычитание, умножение , деление и возведение в степень. Операции умножения, деления и возведения в степень рассчитаны на работу с матрицами, поэтому при поэлементных операциях они записываются

Русский

2015-01-15

51.5 KB

10 чел.

ОС. Лекция 7.

ПРОГРАММИРОВАНИЕ КЛЮЧЕВЫХ ОПЕРАЦИЙ ЦОС           В MATLAB

Наиболее совершенным средством для реализации цифровой обработки данных в режиме off line является система MATLAB. В среде MATLAB есть также все необходимые программные средства для генерации модельных сигналов и управления аппаратурой.

Основные арифметические операции в MATLAB: сложение, вычитание, умножение , деление и возведение в степень. Операции умножения, деления и возведения в степень рассчитаны на работу с матрицами, поэтому при поэлементных операциях они записываются как .*, ./ и .^ (т.е. перед знаком операции ставится точка).

Основные операторы: присваивания, цикла и условия. Синтаксис основных операций – такой же, как в С/С++. Признак комментария знак % перед строкой.

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

Модельный синусоидальный сигнал x(k) амплитудой А, с количеством отсчетов N, количеством периодов KP может быть создан с помощью следующего фрагмента программы:

for k=1:N

x(k) = A*sin(2*pi*KP*k/N);

end

Понятие частоты у модельного сигнала отсутствует, длительность периода во времени также не определена. Длительность периода и частота становятся определенными только если задать шаг дискретности измерений во времени dt. В этом случае общее время измерения Tизм = N*dt, период сигнала T = N*dt/KP, частота f = KP/(N*dt).

Для создания массива нормально распределенного шума q с СКО = 1, содержащего N значений служит функция randn:

noise=randn(N)

для генерации «белого» Гауссова шума- функция wgn:

                                                    noise=wgn(N,1,А)

где N,1 – размерность массива шума,

А – мощность шума (Вт), А = 20lgK, К-масштабный коэффициент

Гауссов (нормально распределенный) шум. Плотность вероятности этого шума определяется выражением

где дисперсия шума, m-его среднее значение.

Гауссовы процессы обладают характерным свойством: любой такой процесс полностью определяется своими статистическими характеристиками 1-го и 2-го порядка. Этим объясняется выбор гауссовых процессов в качестве гипотезы при расчетах, содержащих погрешности оценок и требующих вычисления моментов более высоких порядков. Кроме того, согласно центральной предельной теореме, сумма произвольныз случайных процессов стремится к гауссову процессу при возрастании числа слагаемых. Сходимость оказывается настолько быстрой, что если число слагаемых больше 5 или 6, то результирующий процесс очень близок к гауссову.

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

Базовые операции цифровой обработки реализуются с помощью следующих функций:

  1.  Линейная свертка (конволюция) выполняется с помощью функции conv, например:

X(n)=conv(x,h);

где x – массив обрабатываемого сигнала, содержащий N значений; h – массив импульсного отклика объекта, например, фильтра, содержащий М значений, M<N, X(n) – результат выполнения свертки, например, массив выходного сигнала фильтра.

2. Корреляция выполняется с помощью функции xcorr, например: W=xcorr(x,y);

где  x, y – числовые массивы x и y, содержащие по N значений сигнала, X – числовой массив функции взаимной корреляции, содержащий 2*N значений.

Автокорреляция выполняется с помощью этой же функции, аргументом являются два одинаковые массива – x или y.

3. Фильтрация и функциональные преобразования выполняются с помощью нескольких функций. Для выполнения частотной фильтрации необходимо вычислить частотную характеристику или импульсный отклик фильтра и частотный спектр сигнала.

3.1. Частотный спектр Х(n) сигнала х(t)      вычисляется с помощью функции быстрого преобразования Фурье fast fourie transform (БПФ, fft):

Х(n) =fft(x,N);

  1.  Импульсный отклик вычисляется с помощью обратного преобразования Фурье (ОБПФ, ifft) частотной характеристики фильтра, например:

h(t)=ifft(H(n))

  1.  Частотная характеристика фильтра в дискретизированном виде (в виде числового массива) вычисляется по аналогии с частотной характеристикой в непрерывной форме, например, для линейного фильтра:

          где i – номер элемента числового массива частотной характеристики,

               NC -   полоса пропускания фильтра по уровню 0,7 амплитуды

               выражена в количестве отчетов спектра БПФ, пропускаемых

               фильтром.

Фильтр может быть реализован с помощью следующего программного кода:

                                           for i=1:N

                                                 H(i)=1/(1+j*i/NC);

                                          end

  1.  Для того, чтобы вычислить выходной сигнал фильтра, нужно выполнить операцию свертки массива частотного спектра X(n) входного сигнала с частотной характеристикой фильтра H(n) с помощью функции обратного преобразования Фурье:

                                                    Z(n)= Х(n).*H(n)  

z(t)=ifft(X(n).*H(n));

         или операции свертки массива входного сигнала с импульсным

         откликом фильтра, например:

                                                  z(t) = conv(x(t),h(t)).

Приведенные две формы вычисления выходного сигнала фильтра основаны на теореме Планшереля [Ж.Макс Методы и техника обработки сигналов при физических измерениях. Т.1. М.:Мир, 1983, 305С.]. Теорема Планшереля утверждает, что преобразование Фурье свертки двух функций, равно произведению изображений (в частотной области (В.С.)) функций, составляющих свертку, и наоборот. Т.е. справедливо соотношение:

                                          x(t)*h(t)         X(n)H(n)

Здесь знак * обозначает операцию свертки. На языке функций MATLAB соотношение, основанное на теореме Планшереля, запишется так :

fft(conv(x(t),h(t)) =  X(n).*H(n)

Здесь знак * обозначает операцию умножения, а операция свертки записывается с помощью функции conv.

3.5.   Для реализации оптимального фильтра Колмогорова-Винера требуется вычисление энергетического спектра (плотности мощности) сигнала и шума. Для этого предусмотрена функция conj умножения массива комплексных чисел на массив комплексно сопряженных чисел, например:

S=X(n).*conj(X(n))/N;

где X(n) – массив частотного спектра, полученный с помощью функции fft (БПФ);

N – количество элементов массива частотного спектра сигнала или шума;

S – массив частотного спектра мощности сигнала или шума.

  1.  Для реализации фильтров Баттерворта, Чебышева и др. предусмотрены также более простые средства. Например, фильтр Баттерворта может быть реализован с помощью следующего программного кода:

                     n=4;%порядок фильтра

                     [b a]=butter(n, 0.5);%0.5-относительная частота среза

                      y=filter(b,a,x);

Ниже приведена программа фильтрации сигналов с помощью низкочастотного фильтра.

%Низкочастотный фильтр

A=20; %амплитуда сигнала

Q=5; %амплитуда шума

KP1=12;% - количество периодов первого сигнала

N=1024;%количество точек расчета

NC=12; %NC - полоса пропускания фильтра по уровню 0,7 %амплитуды,выраженная в количестве отчетов спектра БПФ, %пропускаемых фильтром

% остальные отсчеты (в частотном спектре!) будут %ослабляться по амплитуде            

for k=1:N % генерация сигнала и шума

s(k) = A*sin(2*pi*KP1*k/N);

q(k)=Q*(randn(N)); %шум

x(k)=s(k)+q(k); % суммирование сигнала и шума

end

Y=fft(x,N)/N; %БПФ сигнала с шумом

for i=1:N    

H(i)=1/((1+j*i/NC)); %передаточная функция простого фильтра

%в частотной области

end

i=1:400;

i=1:N;

X1=fft(x,N); %частотный спектр сигнала с шумом

Z=ifft(X1.*H);   %свертка зашумленного сигнала с частотной хар-кой фильтра

 

Построение и оформление графиков в MATLAB.

 i=1:N;

y=A*sin(6.28*KP*i/N); %создание N значений KP периодов модельного sin %сигнала,

figure %создание окна графического вывода

%plot(i,y(1:50));%вывод графика y, кол-во точек – 50.

%plot(i,y) ;% вывод графика y (все N точек)

%plot (i,2*y(1:N),’r-’);%отображение графика y линией красного цвета

%semilogx(i,abs(y(1:200))),grid; %то же, что и plot, но в логарифмическом

%  масштабе по Х

%loglog(i,abs(y(1:200))); %  в логарифмическом масштабе по Х и Y

grid on; %отображение линий координатной сетки

%title(‘сигнал до фильтра’);%заголовок графика

xlabel(‘номер отсчета’); % подпись по оси Х

ylabel(‘амплитуда’); % подпись по оси Y

legend(‘до фильтра’);%подпись легенды

axis tight; %диапазон Х и Y по осям точно соответствует Xmax и Ymax %(автомасштабирование)

hold on; % «удержание» окна вывода для следующего графика

hold off; %отмена «удержания»

close all; %закрытие всех открытых окон графического вывода

PAGE  5


 

А также другие работы, которые могут Вас заинтересовать

10199. Сократ, Платон и Аристотель 705.5 KB
  Сократ Платон и Аристотель Соответствующий контраст между позицией софистов и тем что Сократ вытолкнувший классический период греческой мысли предложил явный объективный идеализм и позицию косвенного реализма впрочем и аналогичные воззрения Платона и Аристотеля...
10200. Вычисление арифметических выражений. Структура следования 50 KB
  Тема: Вычисление арифметических выражений Структура следования Цель работы: освоить линейную алгоритмическую структуру а также работу команд в данной структуре. Образец решения задач. Задача № 1. Найти и выдать на печать значение выражения: Анализ постановки за
10201. Психолого-педагогическое сопровождение застенчивых детей старшего дошкольного возраста в группе ДОУ 307.5 KB
  Застенчивые люди испытывают большие трудности в установлении межличностных контактов; пассивны в деятельности и жизнедеятельности в целом; чрезмерно озабочены оценкой себя другими людьми; более зависимы от других, ранимы, внушаемы, поддаются давлению со стороны окружения
10202. Организация циклов. Алгоритмическая структура циклов 50.5 KB
  Лабораторная работа № 3 Тема: Организация циклов Цель работы: освоить алгоритмическую структуру цикл а также работу команд в данной структуре. Образец решения задач. Задача № 1. Напишите программу печати таблицы перевода расстояний из километров в метры для значен
10203. Работа с простой переменной. Алгоритмы целочисленной арифметики 58 KB
  Лабораторная работа № 4 Тема: Работа с простой переменной. Алгоритмы целочисленной арифметики Цель работы: освоить работу с простой переменной и алгоритмами их обработки при решении задач целочисленной арифметики. Типовые алгоритмы обработки простой переменной Р
10204. Подпрограммы. Процедуры и функции 35 KB
  Лабораторная работа № 5 Тема: Подпрограммы. Процедуры и функции Цель работы: отработать навыки использования подпрограмм процедур и функций при написании программного кода. Образцы решения задачи. Задача № 1. Определить количество и сумму цифр в числе. Анализ по...
10205. РАЗВИТИЕ ВНИМАНИЯ СТАРШИХ ДОШКОЛЬНИКОВ В ИГРОВОЙ ДЕЯТЕЛЬНОСТИ 527.5 KB
  В дошкольном возрасте эти изменения касаются всех видов и свойств внимания. В целом, ребенок становится более сосредоточенным, у него появляется способность распределять внимание между различными предметами и переключаться с одного сложного объекта на другой.
10206. Организация перевозок скоропортящихся грузов на направлении 1.91 MB
  В курсовой работе необходимо определить особенности и условия перевозок скоропортящихся грузов на направлении, рассчитать годовую потребность для погрузки, количество «холодных поездов», произвести теплотехнический расчет, разработать технологию обслуживания рефрижераторного подвижного состава, схему размещения пунктов экипировки и технологического обслуживания
10207. Использование модулей при написании программного кода 69.5 KB
  Лабораторная работа № 8 Тема: Модули Цель работы: отработать навыки использования модулей при написании программного кода. Образец решения задачи. Задача № 1. Вставьте в двумерный массив строку из нулей после строки с номером t. Анализ постановки задачи В задаче ...