Проектирование цифрового фильтра нижних частот
Определение порядка аналогового фильтра Баттерворта. Величины разрядной сетки для хранения весовых коэффициентов. Анализ программных особенностей при моделировании работы цифрового фильтра низких частот 8 порядка с заданной частотой дискретизации.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 05.03.2014 |
Размер файла | 187,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Задание
Спроектировать цифровой ФНЧ.
Граница полосы пропускания .
Граница полосы затухания .
Уровень ослабления в полосе затухания - не хуже - 35 дб.
1. Частота дискретизации
2. Определение значений цифровых частот
.
.
3. Коэффициент частотного преобразования
.
4. Определение порядка аналогового фильтра Баттерворта
.
.
Минимальное значение, удовлетворяющее этому неравенству n = 8.
5. Определение передаточной функции для ЦФНЧ:
.
Идеальная АЧХ будет иметь вид:
,
при:
.
.
Так как возможны проблемы, связанные с ошибками округления, то принято решение реализовать с помощью каскадной формы.
Отсюда имеем коэффициенты:
Табл. 1. Для первого фильтра в каскаде
a10 = 0.2136794622 |
b10 = 1 |
|
a11 = 0.4273589244 |
b11 = -0.8562909114 |
|
a12 = 0.2136794622 |
b12 = 0.7110087604 |
Табл. 2. Для второго фильтра в каскаде
a20 = 0.1686507829 |
b20 = 1 |
|
a21 = 0.3373015658 |
b21 = -0.6758447025 |
|
a22 = 0.1686507829 |
b22 = 0.3504478341 |
Табл. 3. Для третьего фильтра в каскаде
a30 = 0.1452275905 |
b30 = 1 |
|
a31 = 0.290455181 |
b31 = -0.5819794964 |
|
a32 = 0.1452275905 |
b32 = 0.1628898584 |
Табл. 4. Для четвертого фильтра в каскаде
a40 = 0.1350748354 |
b40 = 1 |
|
a41 = 0.2701496708 |
b41 = -0.5412937337 |
|
a42 = 0.1350748354 |
b42 = 0.08159307546 |
6. Идеальная АЧХ
Рис. 1
Рис. 2
7. Величины разрядной сетки для хранения весовых коэффициентов
Табл. 5. 8 разрядов
a10 = 0.2136794622 |
0.00110111 |
0.21484375 |
|
a11 = 0.4273589244 |
0.01101101 |
0.42578125 |
|
a12 = 0.2136794622 |
0.00110111 |
0.21484375 |
|
b10 = 1 |
1 |
1 |
|
b11 = -0.8562909114 |
0.11011011 |
-0.85546875 |
|
b12 = 0.7110087604 |
0.10110110 |
0.71093750 |
|
a20 = 0.1686507829 |
0.00101011 |
0.16796875 |
|
a21 = 0.3373015658 |
0.01010110 |
0.33593750 |
|
a22 = 0.1686507829 |
0.00101011 |
0.16796875 |
|
b20 = 1 |
1 |
1 |
|
b21 = -0.6758447025 |
0.10101101 |
-0.67578125 |
|
b22 = 0.3504478341 |
0.01011010 |
0.35156250 |
|
a30 = 0.1452275905 |
0.00100101 |
0.14453125 |
|
a31 = 0.290455181 |
0.01001010 |
0.28906250 |
|
a32 = 0.1452275905 |
0.00100101 |
0.14453125 |
|
b30 = 1 |
1 |
1 |
|
b31 = -0.5819794964 |
0.10010101 |
-0.58203125 |
|
b32 = 0.1628898584 |
0.00101010 |
0.16406250 |
|
a40 = 0.1350748354 |
0.00100011 |
0.13671875 |
|
a41 = 0.2701496708 |
0.01000101 |
0.26953125 |
|
a42 = 0.1350748354 |
0.00100011 |
0.13671875 |
|
b40 = 1 |
1 |
1 |
|
b41 = -0.5412937337 |
0.10001011 |
-0.54296875 |
|
b42 = 0.08159307546 |
0.00010101 |
0.08203125 |
Табл. 6. 12 разрядов
a10 = 0.2136794622 |
0.001101101011 |
0.213623046875 |
|
a11 = 0.4273589244 |
0.011011010110 |
0.427246093750 |
|
a12 = 0.2136794622 |
0.001101101011 |
0.213623046875 |
|
b10 = 1 |
1 |
1 |
|
b11 = -0.8562909114 |
0.110110110011 |
-0.856201171875 |
|
b12 = 0.7110087604 |
0.101101100000 |
0.710937500000 |
|
a20 = 0.1686507829 |
0.001010110011 |
0.168701171875 |
|
a21 = 0.3373015658 |
0.010101100110 |
0.337402343750 |
|
a22 = 0.1686507829 |
0.001010110011 |
0.168701171875 |
|
b20 = 1 |
1 |
1 |
|
b21 = -0.6758447025 |
0.101011010000 |
-0.675781250000 |
|
b22 = 0.3504478341 |
0.010110011011 |
0.350341796875 |
|
a30 = 0.1452275905 |
0.001001010011 |
0.145263671875 |
|
a31 = 0.290455181 |
0.010010100110 |
0.290527343750 |
|
a32 = 0.1452275905 |
0.001001010011 |
0.145263671875 |
|
b30 = 1 |
1 |
1 |
|
b31 = -0.5819794964 |
0.100101010000 |
-0.582031250000 |
|
b32 = 0.1628898584 |
0.001010011011 |
0.162841796875 |
|
a40 = 0.1350748354 |
0.001000101001 |
0.135009765625 |
|
a41 = 0.2701496708 |
0.010001010011 |
0.270263671875 |
|
a42 = 0.1350748354 |
0.001000101001 |
0.135009765625 |
|
b40 = 1 |
1 |
1 |
|
b41 = -0.5412937337 |
0.100010101001 |
-0.541259765625 |
|
b42 = 0.08159307546 |
0.000101001110 |
0.081542968750 |
8. Идеальная АЧХ и АЧХ схем с 8 и 12 разрядами
Рис. 3
Рис. 4
DB(v(5)) -идеальная; DB(v(9)) - 8 разрядов; DB(v(13)) - 12 разрядов;
Для того чтобы фильтр удовлетворял заданию, нужно чтобы он отвечал следующим условиям:
- в полосе пропускания не будет отличаться от нормального значения 3 дБ не более чем на 0.1дБ.
- в полосе затухания будет не менее заданного значения -35 дБ.
Разница на границе полосы пропускания:
8 разрядов: |-3,063|-|-3,032|= 0,031 дБ - соответствует условию
12 разрядов: |-3,033|-|-3,032|= 0,001 дБ - соответствует условию
Разница на границе полосы затухания:
8 разрядов: |-38,323|-|-38,213|= 0,11 дБ - соответствует условию
12 разрядов: |-38,207|-|-38,213|= -0,006 дБ - соответствует условию
9. Разница между идеальной АЧХ и схем с 8 и 12 разрядами
Рис. 5
10. Структурная схема реализации фильтра
Рис. 6
11. Программная реализация
Программа выполняет моделирование работы цифрового фильтра низких частот 8 порядка с частотой дискретизации Fd=132 кГц и максимальной частотой входного непрерывного сигнала Fmax. По результатам обработки выводятся графики входного аналогового сигнала и выходного цифрового сигнала, полученного в соответствии с заданием на проектирование цифрового фильтра.
unit uFilter;
interface
uses Generics.Collections;
type
TMyFilter = class
private
faCof, fbCof, fX, fY: TList<Extended>;
public
constructor Init(aaCof, abCof: TList<Extended>);
function GetValue(ax: Extended): Extended;
end;
implementation
function TMyFilter.GetValue(ax: Extended): Extended;
var
i, n: integer;
tmps1, tmps2: Extended;
begin
n := fX.Count;
for i := 0 to n - 2 do
begin
fX.Items[i] := fX.Items[i + 1];
end;
fX.Items[n - 1] := ax;
n := fY.Count;
for i := 0 to n - 2 do
begin
fY.Items[i] := fY.Items[i + 1];
end;
tmps1 := 0;
n := faCof.Count;
for i := 0 to n - 1 do
begin
tmps1 := tmps1 + faCof.Items[i] * fX.Items[n - 1 - i];
end;
tmps2 := 0;
n := fbCof.Count;
for i := 0 to n - 1 do
begin
tmps2 := tmps2 + fbCof.Items[i] * fY.Items[n - 1 - i];
end;
fY.Items[n] := tmps1 - tmps2;
result := fY.Items[n - 1];
end;
constructor TMyFilter.Init(aaCof, abCof: TList<Extended>);
var
i, n: integer;
begin
faCof := TList<Extended>.Create();
fbCof := TList<Extended>.Create();
fX := TList<Extended>.Create();
fY := TList<Extended>.Create();
n := aaCof.Count;
for i := 0 to n - 1 do
begin
faCof.Add(aaCof.Items[i]);
fX.Add(0);
end;
n := abCof.Count;
for i := 0 to n - 1 do
begin
fbCof.Add(abCof.Items[i]);
fY.Add(0);
end;
fY.Add(0);
end;
end.
unit ugenerator;
interface
uses classes;
type
TGenerator = class
private
fFreq, fFreqDiscrete, fAmpl: Extended;
public
constructor Init(aF, aA, aFd: Extended);
function GetValue(aX: Extended): Extended;
function GetTime(aX: Extended): Extended;
end;
implementation
function TGenerator.GetTime(aX: Extended): Extended;
begin
Result := aX / fFreqDiscrete;
end;
function TGenerator.GetValue(aX: Extended): Extended;
begin
Result := fAmpl * cos(2 * Pi * fFreq * GetTime(aX));
end;
constructor TGenerator.Init(aF, aA, aFd: Extended);
begin
fFreq := aF;
fFreqDiscrete := aFd;
fAmpl := aA;
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uFilter, TeEngine, ExtCtrls, TeeProcs, Chart, StdCtrls, Series,
ugenerator, Generics.Collections, Math;
type
TForm1 = class(TForm)
Chart: TChart;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Series1: TLineSeries;
Series2: TLineSeries;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
s1: TChartSeries;
F, Fd, x, y1, y2, ymax, Ampl: Extended;
i, n, n1: integer;
Generator: TGenerator;
F1, F2, F3, F4: TMyFilter;
aCof, bCof: TList<Extended>;
YWST: TChartSeries;
begin
Ampl := 1;
F := strToFloat(Edit1.Text);
Fd := strToFloat(Edit2.Text);
aCof := TList<Extended>.Create();
bCof := TList<Extended>.Create();
YWST := TChartSeries.Create(self);
// filter 1
aCof.Clear;
aCof.Add(0.21484375);
aCof.Add(0.42578125);
aCof.Add(0.21484375);
bCof.Clear;
bCof.Add(-0.85546875);
bCof.Add(0.71093750);
F1 := TMyFilter.Init(aCof, bCof);
// filter 2
aCof.Clear;
aCof.Add(0.16796875);
aCof.Add(0.33593750);
aCof.Add(0.16796875);
bCof.Clear;
bCof.Add(-0.67578125);
bCof.Add(0.35156250);
F2 := TMyFilter.Init(aCof, bCof);
// filter 3
aCof.Clear;
aCof.Add(0.14453125);
aCof.Add(0.28906250);
aCof.Add(0.14453125);
bCof.Clear;
bCof.Add(-0.58203125);
bCof.Add(0.16406250);
F3 := TMyFilter.Init(aCof, bCof);
// filter 4
aCof.Clear;
aCof.Add(0.13671875);
aCof.Add(0.26953125);
aCof.Add(0.13671875);
bCof.Clear;
bCof.Add(-0.54296875);
bCof.Add(0.08203125);
F4 := TMyFilter.Init(aCof, bCof);
Generator := TGenerator.Init(F, Ampl, Fd);
Chart.Series[0].Clear;
Chart.Series[1].Clear;
n := Round((Fd / F) * 10);
n1 := Round((Fd / F) * 9);
for i := 0 to n do
begin
x := Generator.GetTime(i) - 10 / F;
y1 := Generator.GetValue(i);
y2 := F4.GetValue(F3.GetValue(F2.GetValue(F1.GetValue(y1))));
Chart.Series[0].AddXY(x, y1);
Chart.Series[1].AddXY(x, y2);
if i > n1 then
begin
YWST.AddXY(x, y2);
end;
end;
ymax := (YWST.MaxYValue - YWST.MinYValue) / 2;
Label2.Caption := 'Ослабление: ' + FloatToStr(20 * Log10(ymax / Ampl)) + 'dB';
end;
end.
аналоговый баттерворт разрядный программный
Вывод: В качестве аналогового прототипа использовался фильтр Баттерворта. Расчеты показали, что нам необходим фильтр 8-го порядка. При использовании 8-разрядной сетки фильтр удовлетворяет заданным условиям.
Размещено на Allbest.ru
...Подобные документы
Расчет цифрового и аналогового фильтра-прототипа. Структурные схемы и реализационные характеристики фильтра. Синтез цифрового фильтра в системе программирования MATLAB. Частотные и импульсные характеристики цифрового фильтра, карта его нулей и полюсов.
курсовая работа [564,8 K], добавлен 24.10.2012Аналитическое выражение передаточной функции аналогового фильтра. Построение структурной схемы реализации цифрового фильтра прямым и каноническим способами. Определение реализационных характеристик фильтра. Проверка коэффициентов передаточной функции.
курсовая работа [604,4 K], добавлен 24.10.2012Характеристика фильтра низких частот. Фильтр Баттерворта, Чебышева и Бесселя. Определение порядка фильтра и количества звеньев. Структурная схема фильтра низких частот каскадного типа восьмого порядка. Основные номиналы элементов для четвертого звена.
контрольная работа [172,8 K], добавлен 29.05.2012Способы решения задач синтеза. Этапы расчета элементов фильтра нижних частот. Определение схемы заданного типа фильтра с минимальным числом индуктивных элементов. Особенности расчета фильтр нижних частот Чебышева 5-го порядка с частотой среза 118 кГц.
контрольная работа [525,0 K], добавлен 29.06.2014Разработка общего алгоритма функционирования цифрового фильтра нижних частот. Разработка и отладка программы на языке команд микропроцессора, составление и описание электрической принципиальной схемы устройства. Быстродействие и устойчивость фильтра.
курсовая работа [860,6 K], добавлен 28.11.2010Выделение полезной информации из смеси информационного сигнала с помехой. Математическое описание фильтров. Характеристика фильтра Баттерворта и фильтра Чебышева. Формирование шаблона и определение порядка фильтра. Расчет элементов фильтра высоких частот.
курсовая работа [470,3 K], добавлен 21.06.2014Проект фильтра низких частот в морском исполнении. Электрические и конструкторские расчеты катушки индуктивности, конденсатора. Амплитудно-частотная характеристика фильтра Баттерворта. Эскизная компоновка элементов на плате. Защита от влажности, коррозии.
курсовая работа [1,4 M], добавлен 09.06.2016Разработка математической модели цифрового фильтра нижних частот. Структурная и электрическая принципиальная схемы системы с обоснованием выбора элементов. Время выполнения программы работы цифрового фильтра. Оценка инструментальной погрешности системы.
курсовая работа [3,3 M], добавлен 13.06.2016Расчет цифрового фильтра нижних частот с конечной импульсной характеристикой. Синтез фильтра методом окна (параболического типа). Свойства фильтра: устойчивость, обеспечение совершенно линейной фазочастотной характеристики. Нахождение спектра сигнала.
курсовая работа [28,6 K], добавлен 07.07.2009Испытание синтезированного нерекурсивного и рекурсивного цифрового фильтра стандартными и гармоническими сигналами. Расчет реакции фильтра на четырехточечный входной сигнал. Получение системной функции и частотных характеристик цифрового фильтра.
курсовая работа [3,0 M], добавлен 19.05.2015Фильтры верхних частот с многопетлевой обратной связью и бесконечным коэффициентом усиления. Проект фильтра Баттерворта верхних частот на основе каскадного соединения звеньев, состоящих из резисторов, конденсаторов, ОУ; схема, расчет, анализ АЧХ фильтра.
курсовая работа [2,3 M], добавлен 22.06.2012Расчет аналогового фильтра нижних частот и основных характеристик фильтра. Граничная частота полосы непропускания. Реализация передаточных функций фильтров. Денормированные значения емкостей. Полиномиальные фильтры Баттерворта, Чебышева и Гаусса.
контрольная работа [234,6 K], добавлен 20.03.2013Общая характеристика и принцип действия фильтров нижних частот. Схема простейшего низкочастотного фильтра. Схематическое изображение пассивного RC-фильтра нижних частот и его амплитудно-частотная характеристика. Области применения данных фильтров.
презентация [3,2 M], добавлен 16.12.2013Аппроксимация амплитудно-частотной характеристики фильтра. Определение передаточной функции фильтра нижних частот в области комплексной частоты. Схемотехническое проектирование устройства и его конструкторская реализация в виде узла с печатным монтажом.
курсовая работа [330,8 K], добавлен 09.06.2015Структурная схема и расчет устойчивости цифрового фильтра. Расчет X(jkw1) и H(jkw1) с помощью алгоритмов БПФ и ОБПФ. Определение мощности собственных шумов синтезируемого фильтра. Реализация заданной характеристики H(Z) на сигнальном процессоре 1813ВЕ1.
контрольная работа [144,2 K], добавлен 28.10.2011Основные типы фильтров, их достоинства и недостатки. Синтез фильтра верхних частот (ФВЧ) с аппроксимацией амплитудно-частотной характеристики (АЧХ) полиномом Баттерворта. Выбор схемы для каскадов общего фильтра. Методика его настройки и регулирования.
курсовая работа [753,3 K], добавлен 29.08.2010Функционирование рекурсивного цифрового фильтра нижних частот. Определение его быстродействия, импульсной и переходной характеристик. Составление и описание структурной и принципиальной схемы устройства. Разработка и отладка программы на языке ассемблера.
курсовая работа [323,8 K], добавлен 05.03.2011Применение схемы фильтра второго порядка Саллена-Ки при реализации фильтров нижних частот, верхних частот и полосовых. Возможность раздельной регулировки добротности полюсов и частот среза как главное достоинство звеньев фильтров по заданной схеме.
реферат [614,8 K], добавлен 21.08.2015Цифровой фильтр с заданными характеристиками: рабочие коэффициенты, передаточная функция, параметры и структура. Программная и аппаратная реализация спроектированного фильтра, его тестирование. Особенности режимов работы фильтра в полосе пропускания.
контрольная работа [1,9 M], добавлен 19.09.2012Разработка фильтра высоких частот с характеристикой Чебышева при неравномерности АЧХ 3 дБ второго порядка. Расчет принципиальной схемы, выбор компонентов. Выбор резисторов и конденсаторов из диапазона стандартных значений. Переходная характеристика схемы.
контрольная работа [251,1 K], добавлен 10.12.2015