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

В этом примере показано, как вычислить ответ временного интервала простого полосового фильтра. Восемь шагов, вовлеченных в вычисление ответа временного интервала простого полосового фильтра,

  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 p. 331.

Рисунок 1: полосовой фильтр Баттерворта создается из двух полуразделов.

Сгенерируйте значения компонента для полосового фильтра с более низкой частотой среза на 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: числа Узла добавляются к полосовому фильтру Баттерворта.

Создайте 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 портами

Чтобы извлечь 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 object. The axes object with title Rational Fit Approximation contains 2 objects of type line. These objects represent data, fit.

Создайте входной сигнал, чтобы протестировать полосовой фильтр

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

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

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 objects. Axes object 1 with title Input contains an object of type line. Axes object 2 with title Noisy Input contains an object of type line. Axes object 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 objects. Axes object 1 with title Transfer function of Bandpass filter contains an object of type line. This object represents filter transfer function. Axes object 2 with title Filter characteristic and noisy input spectrum. contains 2 objects of type line. These objects represent input+noise, output.

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

Похожие темы