Моделирование цифрового фильтра верхних частот
Цифровой фильтр с заданными характеристиками: рабочие коэффициенты, передаточная функция, параметры и структура. Программная и аппаратная реализация спроектированного фильтра, его тестирование. Особенности режимов работы фильтра в полосе пропускания.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 19.09.2012 |
Размер файла | 1,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Задание
1. Спроектировать цифровой фильтр с заданными характеристиками.
(определить коэффициенты, передаточную функцию и т.д.)
2. Построить АЧХ и ФЧХ цифрового фильтра.
3. Выбрать структуру цифрового фильтра, его параметры (разрядность регистров памяти, АЛУ и др.) и оценить влияние ошибок округления коэффициентов.
4. Разработать программную или аппаратную реализацию спроектированного фильтра. Провести его тестирование.
5. Сделать выводы по работе.
8 кГц, 4 кГц, =19 кГц
=-33дБ.
Расчеты
1) =2*=2*19=38000 Гц
=2*pi*/=6.28*8000/38000=1,322105
=2*pi*/=6.28*4000/38000=0,661053
2) С==0,777793
== 0,777793 /0,343113=2,266871
Найдём n по формуле 10Lg(1+)>=33дБ
35,543>33при n=5
3) Фильтр Баттерворта 5-го порядка обеспечивает требуемое ослабление в полосе затухания. Определим передаточную функцию K(z) цифрового фильтра:
K(p)=1/Bn(p), где Bn(p)-полином степени n. Для n=5
Bn(p)=
Используем билинейное преобразование p=
K(p)=,
K(z)=
Делаем соответствующие математические преобразования в Maple 11 и получаем:
K(z)= ((0.269699-0.809097*z^(-1)+0.809097*z^(-2)-0.269699*z^(-3))/(z^3-0.503807*z^2+0.586409*z-0.0673772))*((0.349231*(z-1)^2)/(z^2-0.275919*z
+0.121006))
K(z)=
4) Построение АЧХ исходной схемы ЦФВЧ.
5) Выбор величины разрядной сетки, для хранения весовых коэффициентов.
4 разряда
Десятичная с.с. |
Двоичная с.с. |
Десятичная с.с. |
|
0.269699 (а01,а04) |
0.0100 |
0.25 |
|
0.809097 (а02-а03) |
0.1100 |
0.75 |
|
0.503807 (б01) |
0.1000 |
0.5 |
|
0.586409 (б02) |
0.1001 |
0.5625 |
|
0.0673772 (б03) |
0.0001 |
0.0625 |
|
0.349231 (а11,а13) |
0.0101 |
0.3125 |
|
0.698462 (а12) |
0.1011 |
0.6875 |
|
0.275919 (б11) |
0.0100 |
0.25 |
|
0.121006 (б12) |
0.0001 |
0.0625 |
АЧХ схемы с 4 разрядами.
8 разряда
Десятичная с.с. |
Двоичная с.с. |
Десятичная с.с. |
|
0.269699 (а01,а04) |
0.01000101 |
0.26953125 |
|
0.809097 (а02-а03) |
0.11001111 |
0.80859375 |
|
0.503807 (б01) |
0.10000000 |
0.5 |
|
0.586409 (б02) |
0.10010110 |
0.5859375 |
|
0.0673772 (б03) |
0.00010001 |
0.06640625 |
|
0.349231 (а11,а13) |
0.01011001 |
0.34765625 |
|
0.698462 (а12) |
0.10110010 |
0.6953125 |
|
0.275919 (б11) |
0.01000110 |
0.2734375 |
|
0.121006 (б12) |
0.00011110 |
0.1171875 |
АЧХ схемы с 8 разрядами.
16 разряда
Десятичная с.с. |
Двоичная с.с. |
Десятичная с.с. |
|
0.269699 (а01,а04) |
0.0100010100001010 |
0.269683837890625 |
|
0.809097 (а02-а03) |
0.1100111100100000 |
0.80908203125 |
|
0.503807 (б01) |
0.1000000011111001 |
0.503799438476563 |
|
0.586409 (б02) |
0.1001011000011110 |
0.586395263671875 |
|
0.0673772 (б03) |
0.0001000100111111 |
0.0673675537109375 |
|
0.349231 (а11,а13) |
0.0101100101100111 |
0.349227905273438 |
|
0.698462 (а12) |
0.1011001011001110 |
0.698455810546875 |
|
0.275919 (б11) |
0.0100011010100010 |
0.275909423828125 |
|
0.121006 (б12) |
0.0001111011111010 |
0.121002197265625 |
АЧХ схемы с 16 разрядами.
АЧХ исходной схемы и схем 4, 8, 16.
6) Разница между АЧХ исходной схемы и АЧХ схемы с 4 разрядами.
Разница в полосе пропускания 5,598-2.996=2,602
Разница в полосе затухания 37,153-35,520=1,633
Разница между АЧХ исходной схемы и АЧХ схемы с 8 разрядами.
Разница в полосе пропускания 3,072-2.996=0.076
Разница в полосе затухания 35,611-35.520=0.091
Разница между АЧХ исходной схемы и АЧХ схемы с 16 разрядами.
Разница в полосе пропускания 2.996-2.996=0
Разница в полосе затухания 35.520-35.518=0.002
Разница между АЧХ исходной схемы и АЧХ схем 4,8,16 разрядами.
Для того чтобы фильтр удовлетворял заданию, нужно чтобы он отвечал следующим условиям:
- в полосе пропускания не будет отличаться от нормального значения 3 дБ не более чем на 0,01 дБ.
- в полосе затухания будет не менее заданного значения -33дБ.
Как видно из графиков наиболее подходящее значение разрядной сетки равно 16 разрядов.
7) Структурная схема реализации фильтра.
Коэффициенты |
|
0.269699 (а01,а04) |
|
0.809097 (а02-а03) |
|
0.503807 (б01) |
|
0.586409 (б02) |
|
0.0673772 (б03) |
|
0.349231 (а11,а13) |
|
0.698462 (а12) |
|
0.275919 (б11) |
|
0.121006 (б12) |
Каноническая форма реализации фильтра:
Вывод
В данном курсовом проекте требовалось построить аналоговый ВЧ-фильтр и путём билинейного Z-преобразования перевести его в цифровую форму. Расчёт показал, что для удовлетворения требований задания необходимо и достаточно применить фильтр Баттерворта 5 порядка. Для цифровой реализации фильтра потребовалось осуществить выбор разрядной сетки для хранения коэффициентов передаточной функции. При 16-и разрядах отклонения укладываются в отведённый диапазон (как видно по графику).
8) Программная реализация цифрового фильтра верхних частот.
Программа выполняет моделирование работы цифрового фильтра высоких частот 6 порядка. По результатам обработки выводятся графики входного аналогового сигнала и выходного цифрового сигнала, полученного в соответствии с заданием на проектирование цифрового фильтра.
Пример работы программы представлен ниже:
program Filter1;
uses
Forms,
UFilterOne in 'UFilterOne.pas' {Form1},
UGenerator in 'UGenerator.pas',
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
unit UFilterOne;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, StdCtrls,
ComCtrls, Spin, Ugenerator, Series,Math;
type
TForm1 = class(TForm)
Button1: TButton;
BitBtn1: TBitBtn;
Label2: TLabel;
SpinEdit3: TSpinEdit;
Label7: TLabel;
Memo2: TMemo;
Label8: TLabel;
Chart1: TChart;
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 a,c:real;
k: tGen;
i,j:integer;
f1: Tfilter;
x,y,y1,h: real;
res: Comp;
begin
a:=38;
c:=StrToInt(SpinEdit3.text);
K:=tgen.Init1(c,a);
F1:=Tfilter.Init2;
Chart1.Series[0].Clear;
Chart1.Series[1].Clear;
for i:=0 to 200 do begin
Chart1.Series[0].AddXY(k.getTime(i),k.getValue(i));
Chart1.Series[1].AddXY(k.getTime(i),F1.getValueP(k.getValue(i)));
end;
for i:=1 to 380 do begin
if x<=k.getValue(i) then
x:=k.getValue(i);
y:=f1.getValueP(k.getValue(i));
if i>20 then
if y1<=y then
y1:=y;
res:=20*log10(abs(y1/x));
memo2.Lines.Add(FloatToStr(res));
end;
end;
end.
unit UGenerator;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, StdCtrls,
ComCtrls, Spin, Math;
Type
TGen = class (TObject)
Protected
Fample: real; {Амплитуда}
FVhod: real; {Частота входного сигнала}
Fdec: real; {Частота дескретизации}
Public
Constructor Init1(aVhod,adec: real);
Function getValue(ax: integer): real;
Function getTime(ax: integer): real;
end;
type
TFilter = class (Tobject)
Protected
a01, a02, a03, b01, b02: Real;
a11, a12, a13, b11, b12: Real;
a21, a22, a23, b21, b22: Real;
e01,e02,e03,e04,e05,e06,e07,e08,e09,e10,
e11,e12,e13,e14,e15,e16,e17,e18,e19,e20,
e21,e22,e23,e24,e25,e26,e27,x1, x2,y1,y2: real;
Public
Constructor Init2;
Function getValueP(aX: Real) :Real;
end;
implementation
Constructor TFilter.Init2;
begin
Inherited Create;
a01:=0.562495; a02:=-0.562495; b01:=-0.12499;
a11:=0.47947; a12:=-2*0.47947; a13:=0.47947; b11:=0.378817; b12:=-0.539061;
a21:=0.349231; a22:=-2*0.349231; a23:=0.349231; b21:=0.275919; b22:=-0.121006;
e01:=0;e02:=0;e03:=0;e04:=0;e05:=0;e06:=0;e07:=0;e08:=0;e09:=0;e10:=0;e11:=0;
e12:=0;e13:=0;e14:=0;e15:=0; x1:=0; x2:=0;y1:=0;y2:=0;
end;
Constructor TGen.Init1(aVhod,adec: real);
begin
inherited Create;
Fample:=1;
Fvhod:=aVhod;
Fdec:=adec;
end;
Function TGen.getValue(aX: Integer): Real;
begin
Result := fAmple * sin(2*Pi * (Fvhod*1000) * getTime(aX));
end;
Function TGen.getTime(aX: Integer): Real;
begin
Result := ax/(fdec*1000);
end;
Function TFilter.getValueP(aX: Real): Real;
begin
x2:=x1;
x1:=ax;
y1:=a01*x1+a02*x2-b01*y1;
e03:=e02;
e06:=e03*a13;
e02:=e01;
e05:=e02*a12;
e01:=y1;
e04:=e01*a11;
e09:=e08;
e11:=e09*b12;
e08:=e07;
e10:=e08*b11;
e07:=e04+e05+e06+e10+e11;
e14:=e09*a23;
e13:=e08*a22;
e12:=e07*a21;
e17:=e16;
e19:=e17*b22;
e16:=e15;
e18:=e15*b21;
e15:=e12+e13+e14+e18+e19;
Result:=e15;
end;
end.
Вывод:
В данной программе был реализован цифровой фильтр верхних частот, в начале временного отчета была произведении задержка на 20 временных единиц, чтобы не попасть в зону переходных процессов, при расчете ослабления.
Список литературы
1 Пронин А.С. Лекции - “ Спецпроцессоры в цифровой обработке и передаче информации ”.
2 Витязев В.В. - “Цифровая частотная селекция сигналов”. Радио и связь. 1993г.
3 http://model.exponenta.ru - Проектирование цифровых фильтров.
Размещено на Allbest.ru
Подобные документы
Расчет цифрового и аналогового фильтра-прототипа. Структурные схемы и реализационные характеристики фильтра. Синтез цифрового фильтра в системе программирования MATLAB. Частотные и импульсные характеристики цифрового фильтра, карта его нулей и полюсов.
курсовая работа [564,8 K], добавлен 24.10.2012Изучение сущности цифровой фильтрации - выделения в определенном частотном диапазоне с помощью цифровых методов полезного сигнала на фоне мешающих помех. Особенности КИХ-фильтров. Расчет цифрового фильтра. Моделирование работы цифрового фильтра в MatLab.
курсовая работа [2,0 M], добавлен 21.09.2010Фильтры на основе операционных усилителей. Расчет полосового фильтра на операционных усилителях. Электрическая схема активного фильтра верхних и нижних частот. Усиление в полосе пропускания фильтра. Коэффициент прямоугольности для уровней затухания.
курсовая работа [195,1 K], добавлен 19.11.2010Разработка общего алгоритма функционирования цифрового фильтра нижних частот. Разработка и отладка программы на языке команд микропроцессора, составление и описание электрической принципиальной схемы устройства. Быстродействие и устойчивость фильтра.
курсовая работа [860,6 K], добавлен 28.11.2010Расчет цифрового фильтра нижних частот с конечной импульсной характеристикой. Синтез фильтра методом окна (параболического типа). Свойства фильтра: устойчивость, обеспечение совершенно линейной фазочастотной характеристики. Нахождение спектра сигнала.
курсовая работа [28,6 K], добавлен 07.07.2009Испытание синтезированного нерекурсивного и рекурсивного цифрового фильтра стандартными и гармоническими сигналами. Расчет реакции фильтра на четырехточечный входной сигнал. Получение системной функции и частотных характеристик цифрового фильтра.
курсовая работа [3,0 M], добавлен 19.05.2015Разработка структурной и электрической принципиальной схем фильтра верхних частот. Выбор элементной базы. Электрические расчеты и выбор электрорадиоэлементов схемы. Уточнение частотных искажений фильтра, моделирование в пакете прикладных программ.
курсовая работа [1,1 M], добавлен 13.10.2017Расчет эллиптического фильтра высоких частот Золотарева–Кауэра. Определение неравномерности затухания в полосе пропускания. Связь коэффициента отражения с неравномерностью затухания. Нормирование и преобразование величин. Расчет АЧХ и ФЧХ фильтра.
курсовая работа [145,5 K], добавлен 09.01.2015Аналитическое выражение передаточной функции аналогового фильтра. Построение структурной схемы реализации цифрового фильтра прямым и каноническим способами. Определение реализационных характеристик фильтра. Проверка коэффициентов передаточной функции.
курсовая работа [604,4 K], добавлен 24.10.2012Разработка математической модели цифрового фильтра нижних частот. Структурная и электрическая принципиальная схемы системы с обоснованием выбора элементов. Время выполнения программы работы цифрового фильтра. Оценка инструментальной погрешности системы.
курсовая работа [3,3 M], добавлен 13.06.2016