Пропускная способность фильтра с использованием объектов RFCKT

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

  1. Выберите значения индуктивности и емкости с помощью классического метода проекта параметров изображения.

  2. Использование rfckt.seriesrlc, rfckt.shuntrlc, и rfckt.cascade объекты для программного создания схемы Butterworth как 2-портовой сети.

  3. Использование analyze для извлечения S-параметров 2-портовой сети в широкой частотной области значений.

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

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

  6. Создайте шумную форму входа напряжения.

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

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

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

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

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

Ro = 50;
f1C = 2400e6;
f2C = 2500e6;

Ls = (Ro / (pi*(f2C - f1C)))/2;
Cs = 2*(f2C - f1C)/(4*pi*Ro*f2C*f1C);

Lp = 2*Ro*(f2C - f1C)/(4*pi*f2C*f1C);
Cp = (1/(pi*Ro*(f2C - f1C)))/2;

Программно создайте схему 2-Port качестве сети

Базовые блоки L и C формируются путем выбора соответствующих значений с rfckt.shuntrlc объект, показанный на фигуре 2 или на rfckt.seriesrlc объект, показанный на фигура. Затем стандартные блоки соединяются вместе с rfckt.cascade как показано на фигура.

Фигура 2: Сеть с 2 портами, созданная rfckt.shuntrlc объект

Фигура 3. Сеть с 2 портами, созданная rfckt.seriesrlc объект

Фигура 4. Соединение 2-портовых сетей с rfckt.cascade объект

Seg1 = rfckt.seriesrlc('L',Ls,'C',Cs);
Seg2 = rfckt.shuntrlc('L',Lp,'C',Cp);
Seg3 = rfckt.shuntrlc('L',Lp,'C',Cp);
Seg4 = rfckt.seriesrlc('L',Ls,'C',Cs);

cktBPF = rfckt.cascade('Ckts',{Seg1,Seg2,Seg3,Seg4});

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

The analyze функция извлекает S-параметры из схемы по заданному вектору частот. Этот пример предоставляет набор частот, который охватывает полосу пропускания фильтра и анализирует с 50-Ohm по умолчанию ссылкой, импедансом источника и импедансами нагрузки. Далее, s2tf функция вычисляет передаточную функцию напряжения для S-параметрической модели схемы. Наконец, мы генерируем высокоточное рациональное приближение, используя rationalfit функция. Получившееся приближение соответствует сети точности машины.

freq = linspace(2e9,3e9,101);
analyze(cktBPF,freq);
sparams = cktBPF.AnalyzedResult.S_Parameters;
tf = s2tf(sparams);
fit = rationalfit(freq,tf);

Проверьте, что рациональная подгонка имеет тенденцию к нулю

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

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

figure
semilogy(freq,abs(tf),widerFreqs,abs(resp),'--','LineWidth',2)
xlabel('Frequency (Hz)')
ylabel('Magnitude')
legend('data','fit')
title('The rational fit behaves well outside the fitted frequency range.')

Figure contains an axes. The axes with title The rational fit behaves well outside the fitted frequency range. contains 2 objects of type line. These objects represent data, fit.

Конструкция входной сигнал для тестирования Полосы прохождения фильтра

Этот полосно-пропускающий фильтр должен быть способен восстановить синусоидальный сигнал на частоте 2,45 ГГц, который шумит благодаря включению нулевого среднего случайного шума и блокирующего устройства на частоте 2,35 ГГц. Следующий код MATLAB создает такой сигнал из 4096 выборок.

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

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

The 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(tf),'b','LineWidth',2)
axis([freq(1) freq(end) 0 1.1])
legend('filter transfer function')
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 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.

Похожие темы