exponenta event banner

Ответ полосового фильтра

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

  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 объекты, узлы в цепи нумеруются. Это показано на рис. 1.

Рис. 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.

Связанные темы