Реакция полосно-пропускающего фильтра

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

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

  2. Используйте circuit, capacitor, и inductor объекты с add функция для программного создания схемы Баттерворта.

  3. Используйте setports функция для определения схемы как сети с 2 портами.

  4. Используйте sparameters функция для извлечения S-параметров 2-портовой сети в широкой частотной области значений.

  5. Используйте s2tf функция для вычисления передаточной функции напряжения от входа до выхода.

  6. Используйте rational объект для генерации рациональных подгонок, которые захватывают идеальную RC схему с очень высокой степенью точности.

  7. Используйте randn функция для создания шума в порядок для создания шумного входа волны напряжения.

  8. Используйте timeresp function вычислить переходный процесс на шумный вход напряжения.

Проектирование полосно-пропускающего фильтра с использованием параметров изображения

Проект параметра изображения является средой для аналитического вычисления значений последовательных и параллельных компонентов в пассивных фильтрах. Для получения дополнительной информации о параметрах изображений смотрите «Полный беспроводной проект» Коттера У. Сайра, McGraw-Hill 2008 стр. 331.

Фигура 1: Полосовой фильтр Butterworth, выполненный из двух половинных секций.

Сгенерируйте значения компонентов для полосно-пропускающего фильтра с меньшей частотой отсечения 3 д Б 2,4 ГГ ц и верхней частотой отсечения 3 д Б 2,5 ГГ ц.

Ro = 50;
f1C = 2400e6;
f2C = 2500e6;
Ls = (Ro / (pi*(f2C - f1C)))/2;         % Ls1 and Ls2
Cs = 2*(f2C - f1C)/(4*pi*Ro*f2C*f1C);   % Cs1 and Cs2
Lp = 2*Ro*(f2C - f1C)/(4*pi*f2C*f1C);   % Lp1 and Lp2
Cp = (1/(pi*Ro*(f2C - f1C)))/2;         % Cp1 and Cp2

Программно создайте схему

Перед построением схемы используйте inductor и capacitor объекты, узлы в схеме пронумерованы. Это показано на рисунок.

Фигура 2. Номера узлов добавлены к полосно-пропускающему фильтру Butterworth.

Создайте circuit объект и заполните его inductor и capacitor объекты, использующие add функция.

ckt = circuit('butterworthBPF');

add(ckt,[3 2],inductor(Ls));      % Ls1
add(ckt,[4 3],capacitor(Cs));     % Cs1
add(ckt,[5 4],capacitor(Cs));     % Cs2
add(ckt,[6 5],inductor(Ls));      % Ls2

add(ckt,[4 1],capacitor(Cp));     % Cp1
add(ckt,[4 1],inductor(Lp));      % Lp1
add(ckt,[4 1],inductor(Lp));      % Lp2
add(ckt,[4 1],capacitor(Cp));     % Cp2

Извлечение S-параметров из 2-Port сети

Чтобы извлечь S-параметры из объекта схемы, сначала используйте setports функция для определения схемы как сети с 2 портами.

freq = linspace(2e9,3e9,101);

Используйте sparameters функция для извлечения S-параметров на интересующих частотах.

setports(ckt,[2 1],[6 1])
S = sparameters(ckt,freq);

Подгонка передаточной функции схемы к рациональной функции

Используйте s2tf функция для генерации передаточной функции из объекта S-параметра.

tfS = s2tf(S);

Используйте rational объект для подгонки данных передаточной функции к рациональной функции.

fit = rational(freq,tfS);

Проверьте рациональное приближение

Используйте freqresp функция для проверки, что рациональное приближение соответствия имеет разумное поведение вне обеих сторон установленной частотной области значений.

widerFreqs = linspace(2e8,5e9,1001);
resp = freqresp(fit,widerFreqs);

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

figure
semilogy(freq,abs(tfS),widerFreqs,abs(resp),'--','LineWidth',2)
xlabel('Frequency (Hz)');
ylabel('Magnitude');
legend('data','fit');
title('Rational Fit Approximation');

Figure contains an axes. The axes with title Rational Fit Approximation contains 2 objects of type line. These objects represent data, fit.

Создайте входной сигнал для тестирования полосно-пропускающего фильтра

Для тестирования полосно-пропускающего фильтра, разработанного методом Image Parameter, синусоидальный сигнал на 2,45 ГГц восстанавливается из шумного входного сигнала. Входной сигнал шума генерируется включением нулевого среднего случайного шума и блокирующего устройства на 2,35 ГГц к входному сигналу.

Создайте вход и зашумленный входной сигнал с 8192 выборок.

fCenter = 2.45e9;
fBlocker = 2.35e9;
period = 1/fCenter;
sampleTime = period/16;
signalLen = 8192;
t = (0:signalLen-1)'*sampleTime; % 256 periods
input = sin(2*pi*fCenter*t);     % Clean input signal
rng('default')
noise = randn(size(t)) + sin(2*pi*fBlocker*t);
noisyInput = input + noise;      % Noisy input signal

Вычисление переходного процесса на входной сигнал

Используйте timeresp функция для вычисления аналитических решений пространства состояний.

output = timeresp(fit,noisyInput,sampleTime);

Просмотр входного сигнала и фильтрации во временном интервале

Постройте график входного сигнала, шумного входного сигнала и полосы фильтра выхода в окне рисунка.

xmax = t(end)/8;
figure
subplot(3,1,1)
plot(t,input)
axis([0 xmax -1.5 1.5])
title('Input')

subplot(3,1,2)
plot(t,noisyInput)
axis([0 xmax floor(min(noisyInput)) ceil(max(noisyInput))]);
title('Noisy Input');
ylabel('Amplitude (volts)');

subplot(3,1,3)
plot(t,output)
axis([0 xmax -1.5 1.5]);
title('Filter Output');
xlabel('Time (sec)');

Figure contains 3 axes. Axes 1 with title Input contains an object of type line. Axes 2 with title Noisy Input contains an object of type line. Axes 3 with title Filter Output contains an object of type line.

Просмотр входного сигнала и фильтрации в частотном диапазоне

Наложение шумного входа и фильтрующей характеристики в частотный диапазон объясняет, почему операция фильтрации успешна. И сигнал блокировщика на 2,35 ГГц, и большая часть шума значительно ослаблены.

NFFT = 2^nextpow2(signalLen); % Next power of 2 from length of y
Y = fft(noisyInput,NFFT)/signalLen;
samplingFreq = 1/sampleTime;
f = samplingFreq/2*linspace(0,1,NFFT/2+1)';
O = fft(output,NFFT)/signalLen;

figure
subplot(2,1,1)
plot(freq,abs(tfS),'b','LineWidth',2)
axis([freq(1) freq(end) 0 1.1]);
legend('filter transfer function');
title('Transfer function of Bandpass filter');
ylabel('Magnitude');

subplot(2,1,2)
plot(f,2*abs(Y(1:NFFT/2+1)),'g',f,2*abs(O(1:NFFT/2+1)),'r','LineWidth',2)
axis([freq(1) freq(end) 0 1.1]);
legend('input+noise','output');
title('Filter characteristic and noisy input spectrum.');
xlabel('Frequency (Hz)');
ylabel('Magnitude (Volts)');

Figure contains 2 axes. Axes 1 with title Transfer function of Bandpass filter contains an object of type line. This object represents filter transfer function. Axes 2 with title Filter characteristic and noisy input spectrum. contains 2 objects of type line. These objects represent input+noise, output.

Чтобы вычислить и отобразить этот ответ полосного фильтра с помощью объектов RFCKT, смотрите Ответ полосного фильтра с использованием объектов RFCKT.

Похожие темы