Шаг 1. Формулируем цели и задачи курсовой работы
Курсовая работа по дисциплине «Радиотехнические цепи и сигналы» является ключевым элементом в подготовке будущего инженера. Она позволяет не просто закрепить теорию, а применить ее на практике, углубленно изучив фундаментальные аспекты курса. Тема прохождения зашумленного сигнала через фильтр нижних частот (ФНЧ) особенно важна, так как она напрямую затрагивает вопросы спектрального анализа и теории помехоустойчивости — краеугольные камни современной радиотехники.
Таким образом, главная цель данной курсовой работы — исследовать и наглядно продемонстрировать процесс фильтрации широкополосного шума из полезного информационного сигнала с помощью фильтра нижних частот.
Для достижения этой цели необходимо решить несколько конкретных задач:
- Изучить теоретические основы работы фильтров нижних частот, их основные характеристики и классификацию.
- Рассчитать параметры конкретного ФНЧ в соответствии с заданными требованиями к сигналу и шуму.
- Создать в среде MATLAB математическую модель, включающую генерацию полезного сигнала, добавление шума и реализацию спроектированного фильтра.
- Провести комплексный анализ результатов моделирования: сравнить характеристики сигнала до и после фильтрации как во временной, так и в частотной области, а также количественно оценить улучшение качества сигнала.
После того как мы определили цели и задачи, необходимо вооружиться теоретическими знаниями, которые станут фундаментом для нашей практической работы.
Шаг 2. Собираем теоретический фундамент о фильтрах нижних частот
Чтобы осмысленно подойти к проектированию и моделированию, необходимо четко понимать, что такое ФНЧ и по каким законам он работает. Это устройство, основная функция которого — пропускать сигналы с частотами ниже определенного порога и подавлять (ослаблять) сигналы с частотами выше этого порога.
Ключевые параметры ФНЧ
Эффективность и поведение любого фильтра описываются набором стандартных параметров:
- Частота среза ($f_c$): Это основная характеристика фильтра. Физически это частота, на которой мощность сигнала на выходе фильтра ослабевает ровно в два раза (-3 дБ) по сравнению с мощностью на входе.
- Коэффициент усиления/ослабления: Показывает, как изменяется амплитуда сигнала в полосе пропускания (частоты ниже $f_c$). В идеальном пассивном фильтре он равен 1 (или 0 дБ). Активные фильтры могут усиливать сигнал.
- Крутизна спада АЧХ: Характеризует, насколько резко фильтр подавляет сигналы за пределами полосы пропускания. Измеряется в децибелах на декаду (дБ/декаду) или децибелах на октаву (дБ/октаву).
Типы фильтров и их аппроксимации
Фильтры можно классифицировать по разным признакам. По элементной базе они делятся на пассивные (состоящие из резисторов, конденсаторов, катушек индуктивности, например, простые RC- и LC-цепи) и активные (включающие усилительные элементы, например, операционные усилители, которые могут компенсировать затухание и даже усиливать сигнал).
По форме амплитудно-частотной характеристики (АЧХ) фильтры различаются в зависимости от аппроксимирующей функции, лежащей в основе их расчета. Наиболее известны:
- Фильтр Баттерворта: Обеспечивает максимально гладкую АЧХ в полосе пропускания без каких-либо пульсаций. Именно этот тип мы и будем использовать в нашей работе за его предсказуемость и простоту.
- Фильтр Чебышева: Имеет более крутой спад АЧХ по сравнению с фильтром Баттерворта того же порядка, но ценой появления пульсаций в полосе пропускания (I род) или в полосе задерживания (II род).
- Фильтр Бесселя: Обладает наилучшей переходной характеристикой (минимальные искажения формы сигнала), но имеет самый пологий спад АЧХ.
Порядок фильтра
Порядок фильтра напрямую влияет на крутизну спада его АЧХ. Чем выше порядок, тем эффективнее фильтр подавляет нежелательные частоты. Например, простой RC-фильтр — это фильтр 1-го порядка, и его АЧХ имеет спад 20 дБ/декаду. Для фильтра 2-го порядка, который мы будем использовать, крутизна спада составляет уже 40 дБ/декаду, что обеспечивает значительно лучшую фильтрацию.
Теперь, когда теория ясна, мы можем перейти от общих понятий к конкретным цифрам и требованиям нашего проекта.
Шаг 3. Детализируем техническое задание для нашего проекта
Любая инженерная работа начинается с четкого технического задания (ТЗ). В рамках курсовой работы мы сформулируем его сами, чтобы на его основе провести расчеты и моделирование. Определим параметры всех участников нашего эксперимента.
- Информационный сигнал: В качестве полезного сигнала возьмем простую синусоиду (гармонический сигнал).
- Частота: 1 кГц
- Амплитуда: 1 В
- Шум: Для имитации реальных помех будем использовать аддитивный белый гауссовский шум (БГШ). «Белый» означает, что его мощность равномерно распределена по всему частотному спектру, а «гауссовский» — что его амплитуда подчиняется нормальному закону распределения.
- Задача фильтрации: Наша главная задача — пропустить полезный сигнал с частотой 1 кГц с минимально возможными искажениями и при этом максимально подавить широкополосный шум, особенно его высокочастотные компоненты.
- Требования к фильтру: На основе поставленной задачи выбираем конкретные параметры нашего ФНЧ.
- Тип: Фильтр Баттерворта (из-за гладкой АЧХ).
- Порядок: 2-й порядок (для достаточной крутизны спада в 40 дБ/декаду).
- Частота среза: 1.5 кГц. Этот выбор является компромиссом. Частота среза должна быть выше частоты полезного сигнала (1 кГц), чтобы не ослабить его, но при этом как можно ближе к ней, чтобы начать подавлять шум как можно раньше.
С четким ТЗ на руках мы готовы приступить к инженерной части — расчету нашего фильтра.
Шаг 4. Рассчитываем и проектируем наш фильтр Баттерворта
Проектирование фильтра можно вести двумя путями: расчетом физических компонентов (резисторов, конденсаторов) или созданием цифровой модели. Для простого пассивного RC-фильтра 1-го порядка можно было бы использовать известную формулу $f_c = 1 / (2\pi RC)$ и, задав, например, емкость конденсатора C, рассчитать сопротивление R.
Однако для курсовой работы, где требуется более сложный фильтр 2-го порядка и важен анализ в программной среде, гораздо эффективнее использовать встроенные возможности MATLAB. Этот подход позволяет проектировать фильтры высоких порядков, не углубляясь в сложный расчет аналоговых схем.
Ключевой функцией для проектирования фильтров Баттерворта в MATLAB является `butter`. Ее базовый синтаксис для ФНЧ выглядит так:
[b, a] = butter(n, Wn)
Разберем ее аргументы:
n
: Порядок фильтра. Согласно нашему ТЗ, мы используем n = 2.Wn
: Нормализованная частота среза. Это самый важный и часто вызывающий ошибки параметр. Частоту среза для функции `butter` нужно задавать не в герцах, а в виде безразмерной величины, нормализованной относительно частоты Найквиста.
Частота Найквиста — это половина частоты дискретизации ($F_s/2$). Таким образом, формула для расчета `Wn`:
Wn = f_cutoff / (Fs / 2)
где `f_cutoff` — наша частота среза из ТЗ (1.5 кГц), а `Fs` — частота дискретизации, которую мы зададим на следующем шаге. Крайне важно не забывать про эту нормализацию, иначе фильтр будет рассчитан на совершенно неверную частоту среза.
Результатом работы функции являются два вектора, b
и a
, — это коэффициенты полиномов числителя и знаменателя передаточной функции цифрового фильтра. Именно они и есть наш спроектированный фильтр, готовый к использованию.
Мы спроектировали наш цифровой фильтр. Следующий шаг — подготовить виртуальную лабораторию в MATLAB для проведения эксперимента.
Шаг 5. Готовим рабочее пространство и скрипт в MATLAB
Теперь создадим .m-файл (скрипт) в MATLAB, который станет нашей рабочей средой. Хорошей практикой является начинать скрипт с команд, которые очищают рабочее пространство от предыдущих вычислений.
clear
clc
close all
Эти команды соответственно очищают все переменные из памяти, очищают командное окно и закрывают все графические окна.
Далее определим базовые параметры симуляции. Ключевой из них — частота дискретизации Fs. Согласно теореме Котельникова (Найквиста-Шеннона), она должна быть как минимум вдвое выше самой высокой частоты в нашем сигнале. Поскольку спектр шума теоретически бесконечен, мы выберем ее с большим запасом, например, Fs = 50 кГц. Это обеспечит высокую точность моделирования.
Зададим все константы в виде переменных:
% Параметры симуляции
Fs = 50000; % Частота дискретизации (Гц)
T = 0.1; % Длительность симуляции (секунды)
t = 0:1/Fs:T-1/Fs; % Вектор времени
% Параметры сигнала и фильтра из ТЗ
f_signal = 1000; % Частота полезного сигнала (1 кГц)
f_cutoff = 1500; % Частота среза фильтра (1.5 кГц)
n = 2; % Порядок фильтра
Теперь, имея все данные, мы можем выполнить расчет из предыдущего шага прямо в скрипте. Рассчитываем нормализованную частоту `Wn` и вызываем функцию `butter`, чтобы получить коэффициенты нашего фильтра `b` и `a`.
% Расчет и проектирование фильтра
Wn = f_cutoff / (Fs / 2);
[b, a] = butter(n, Wn);
Среда готова, фильтр спроектирован. Теперь нужно создать «материал» для нашего эксперимента — исходный чистый сигнал и зашумленный сигнал.
Шаг 6. Моделируем информационный сигнал и добавляем к нему шум
На этом этапе мы программно создадим сигналы, которые будем использовать в нашем исследовании. Сначала сгенерируем чистый синусоидальный сигнал с параметрами из нашего ТЗ (амплитуда 1 В, частота 1 кГц).
% Генерация чистого сигнала
A = 1; % Амплитуда
signal = A * sin(2*pi*f_signal*t);
Далее создадим помеху. Для этого используем функцию `randn`, которая генерирует значения, распределенные по нормальному (гауссовскому) закону. Умножив результат на коэффициент `noise_power`, мы можем регулировать мощность шума.
% Генерация белого шума
noise_power = 0.5; % Мощность шума
noise = noise_power * randn(size(t));
Теперь самый важный шаг — создание «грязного» сигнала. В реальном мире аддитивные помехи просто суммируются с полезным сигналом. Мы моделируем этот процесс путем простого поэлементного сложения двух массивов: сигнала и шума.
% Создание зашумленного сигнала
signal_noisy = signal + noise;
Чтобы наглядно оценить, что мы получили, необходимо визуализировать все три сигнала. Построим их на отдельных графиках. Это позволит увидеть, как исходная плавная синусоида «тонет» в хаотических колебаниях шума. Этот зашумленный сигнал и является объектом, который мы должны «очистить».
У нас есть «пациент» — зашумленный сигнал. Пришло время применить «лекарство» — наш спроектированный ФНЧ.
Шаг 7. Пропускаем зашумленный сигнал через фильтр
Это кульминационный момент нашей практической работы. У нас есть зашумленный сигнал (`signal_noisy`) и цифровой фильтр, представленный коэффициентами `b` и `a`. Для выполнения процесса фильтрации в MATLAB используется функция `filter`.
% Фильтрация зашумленного сигнала
signal_filtered = filter(b, a, signal_noisy);
Эта функция принимает на вход три аргумента: коэффициенты передаточной функции (`b` и `a`) и входной сигнал (`signal_noisy`), который нужно обработать. На выходе мы получаем новый массив данных — `signal_filtered`, который и является результатом работы нашего ФНЧ.
На концептуальном уровне функция `filter` реализует математическую операцию, теоретической основой которой служит свертка (конволюционный интеграл). Она последовательно «прогоняет» входной сигнал через цифровую структуру фильтра, вычисляя каждое значение выходного сигнала на основе текущего и предыдущих значений входного сигнала и предыдущих значений выходного сигнала.
Чтобы немедленно оценить результат, выведем на один график два сигнала: зашумленный `signal_noisy` (до фильтрации) и отфильтрованный `signal_filtered` (после). Уже на этом этапе должен быть виден результат: резкие, хаотичные выбросы шума должны исчезнуть, и из-под них проявится сглаженная синусоидальная форма исходного сигнала.
Мы получили результат. Но в инженерной и научной работе получение результата — это лишь половина дела. Теперь его нужно всесторонне проанализировать.
Шаг 8. Анализируем результаты, сравнивая сигналы до и после
Это самый важный аналитический раздел курсовой работы, где мы должны доказать эффективность нашего фильтра, используя как визуальные, так и количественные метрики.
Анализ во временной области
Первый шаг — это внимательное сравнение графиков `signal_noisy` и `signal_filtered` во времени. Визуально мы должны отметить, что высокочастотные колебания, вносимые шумом, практически полностью исчезли. Форма отфильтрованного сигнала стала гораздо более гладкой и приблизилась к исходной синусоиде. Это качественное подтверждение того, что ФНЧ выполнил свою основную задачу — подавил высокочастотные компоненты.
Анализ в частотной области
Это ключевой и самый наглядный метод анализа. Чтобы увидеть, что именно произошло с частотами, нам нужно перейти от временного представления сигнала к частотному. Для этого используется быстрое преобразование Фурье (FFT), которое в MATLAB реализуется функцией `fft`.
Мы должны выполнить преобразование Фурье для двух сигналов: зашумленного (до фильтрации) и отфильтрованного (после). Затем построим их спектры на одном графике. Анализируя этот график, мы должны увидеть следующую картину:
- В спектре зашумленного сигнала будет виден четкий пик на частоте 1 кГц — это наш полезный сигнал. Вокруг него будет видна широкая «полка» — это спектр белого шума, который равномерно распределен по всем частотам.
- В спектре отфильтрованного сигнала пик на частоте 1 кГц останется практически неизменным. А вот шумовая полка после частоты 1.5 кГц (нашей частоты среза) должна резко обрываться. Это наглядно демонстрирует, как фильтр «срезал» высокочастотную часть шума, оставив невредимым полезный сигнал.
Количественная оценка: Отношение сигнал/шум (SNR)
Визуальный анализ нужно подкрепить цифрами. Главный количественный показатель качества сигнала — это отношение сигнал/шум (Signal-to-Noise Ratio, SNR). Он показывает, насколько мощность полезного сигнала превышает среднюю мощность шума. Наша цель — доказать, что SNR на выходе фильтра значительно выше, чем на входе.
Рассчитав SNR для `signal_noisy` и `signal_filtered` (например, как отношение мощности пика сигнала к средней мощности шума в остальной части спектра), мы получим конкретные значения в децибелах (дБ). В результате правильной фильтрации мы можем ожидать улучшение показателя SNR на 15 дБ и более, что является весомым доказательством эффективности проделанной работы.
Мы полностью выполнили поставленные задачи: спроектировали фильтр, провели эксперимент и проанализировали его результаты. Осталось оформить наши выводы и подготовить работу к сдаче.
Шаг 9. Пишем заключение и оформляем работу по стандартам
Заключение — это финальная часть работы, где необходимо кратко и емко подвести итоги, сделав выводы на основе проведенного анализа. Выводы должны четко коррелировать с задачами, которые мы поставили во введении.
Пример формулировки выводов:
В ходе выполнения курсовой работы была успешно решена задача исследования прохождения зашумленного сигнала через фильтр нижних частот. Был спроектирован цифровой фильтр Баттерворта 2-го порядка с частотой среза 1.5 кГц. Моделирование в среде MATLAB показало, что данный фильтр эффективно подавляет высокочастотный белый шум, сохраняя при этом информационный гармонический сигнал с частотой 1 кГц. Это подтверждается как визуальным анализом временных и частотных характеристик сигналов до и после фильтрации, так и количественной оценкой, которая показала значительное улучшение отношения сигнал/шум. Цели и задачи курсовой работы полностью достигнуты.
После написания выводов остается лишь правильно скомпоновать и оформить пояснительную записку. Стандартная структура курсовой работы обычно выглядит следующим образом:
- Титульный лист (оформляется по требованиям вуза).
- Содержание (с указанием всех разделов и страниц).
- Введение (где были сформулированы цели и задачи).
- Теоретическая часть (Шаг 2 нашей статьи).
- Практическая (расчетная) часть (Шаги 3-7: ТЗ, расчет фильтра, описание модели).
- Анализ результатов (Шаг 8: графики и их подробное описание, расчет SNR).
- Заключение (сформулированные выводы).
- Список использованных источников.
- Приложения (при необходимости, сюда выносится полный листинг кода MATLAB и крупные графики).
На финальном этапе обязательно проверьте все детали: нумерацию страниц, подписи к рисункам и таблицам, нумерацию формул и соответствие оформления требованиям методических указаний вашей кафедры и ГОСТ.
Список использованной литературы
- Баскаков С.И. Радиотехнические цепи и сигналы: учебник для вузов: рек. М-вом образования РФ / Баскаков С. И. — 5-е изд., стер. — М.: Высш. шк., 2005. — 462 с.
- Баскаков С.И. Радиотехнические цепи и сигналы: руководство к решению задач : учеб. пособие : рек. М-вом образования РФ / Баскаков С.И. — 2-е изд., перераб. и доп. — М.: Высш. шк., 2002. – 214 с.
- Булгаков О.М. Радиотехнические цепи и сигналы: Методические рекомендации / О.М. Булгаков, В.П. Удалов. — Воронеж: Воронежский институт МВД России, 2013. — 64 с.
- Гоноровский С.И. Радиотехнические цепи и сигналы: Учеб. пособие для вузов / С.И. Гоноровский. – 5-е изд. – М.: Дрофа, 2006. – 719 с.